数据库基础,select命令

  • Post author:
  • Post category:其他




数据库基础



1.DBMS数据库管理系统

​ 数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称 DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过 DBMS访问数据库中的数据,数据库管理员也通过 dbms 进行数据库的维护工作。它可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。大部分 DBMS 提供数据定义语言 DDL (Data Definition Language)和数据操作语言 DML ,供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。

​ 根据存储模型可将数据库划分为关系型数据库和非关系型数据库。关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。标准数据查询语言 SQL 就是一种基于关系数据库的语言,这种语言执行对关系数据库中数据的检索和操作。



2.SQL语言

​ SQL(Structured Query Language)为数据库的语言,在1974 年由Boyce【博伊斯】和Chamberlin【钱伯林】提出的一种介于关系代数与关系演算之间的结构化查询语言,是一个通用的、功能极强的关系型数据库语言。它包含三部分:DDL、DML、DCL。

命令分类操作:

分类 命令
DDL create:创建;drop:删除;alter:修改;rename:重命名;truncate:截断
DML insert:插入;delete:删除;update:更新;select:查询
DCL grant:授权;revoke:回收权利;commit:提交事务;rollback:回滚事务



3.表



3.1表的结构

​ 表由表名、字段(名称+类型+约束)、记录组成。与java想对应:

DB JAVA
表名 类名
字段名 属性名
字段类型:number char->定长字段 /varchar2 date->可变字段 属性类型:基本数据类型|引用数据类型
字段约束:约束行为->创建表结构时加入,操作数据时生效 方法检查条件
记录:数据 对象:new

其中,约束为表中的字段的值定义一些要求:

主键约束:非空+唯一,代表每一张表中的每一条数据的唯一标识

外键约束:主表:主键

​ 从表:主键、外键。外键字段关联主表中的主键,外键字段的值必须是主表中的主键字段已有的值。

注意:oracle命令不区分大小写,但数据需要区分。



3.2三范式

  • 列不可再分,字段的原子性
  • 添加主键(数据量多,频繁操作的,需要定义主键)
  • 拆分表,消除传递依赖,建立主外键关系



4.SELECT查询语句



4.1语句结构

select * from 数据源;——>查询某张表中所有数据,*不能与其他字段同时存在

一个select查询语句只能得到一个结果集;



4.2去重

select distinct 字段名 from 表名;——>当结果中存在完全重复的数据,可以对结果集中的数据去重。



4.3别名

为结果中的每一个列|字段起别名

select 字段名1 别名,字段2 (as)别名 from 数据源;——>别名如果想要原封不动的显示需要在别名外加””,别名中出现空格需要添加””。表在起别名的时候,不能使用as。

在spl语言中’’代表字符串。

样式:select ename 姓名 from emp;–为字段加别名



4.4字符串拼接

使用||做字符串的连接符

样式:select ‘花名:’||ename 姓名 from emp;–字符串连接



4.5伪列

select可以查询表中没有真实存在的字段

样式:SELECT 111 FROM EMP;



4.6虚表

dual 表中没有数据,只有一个字段

样式:select sysdate from dual;–在虚表中显示当前时间



4.7字段默认值

null为字段的默认值

null与数字进行计算结果还为null

样式:select comm+100,comm from emp;

在这里插入图片描述

null与字符串进行计算结果为字符串

样式:select comm||‘100’,comm from emp;

在这里插入图片描述



4.8nvl函数

nvl(参数1,参数2)当参数1的值为null,nvl的结果为参数2,当参数1不为null,结果就为参数1。

select nvl(null,1) from dual;

在这里插入图片描述



版权声明:本文为weixin_45575912原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。