- 关系型数据库
● 二维表
● 表中的一行,称为记录,表中的列, 称为字段(属性)
● 行列交叉的单元格的值,叫属性值或字段值。
● ORACLE DB2 Mysql SQL SERVER 关系型数据库 - 常用的指令(可以在命令行执行,也可以在navicat新建查询执行)
查看版本号
select version()显示所有的数据库
show databases;设置当前数据库
use 数据库名查看该数据库下所有的表
show tables查看表结构
desc 表名- 存储引擎
数据库存储、管理和查询等操作的一些规则。
三种数据引擎
1)innoDB存储引擎
● 默认的存储引擎
● 支持外键
● 支持事务
2)MYISAM
● 支持全文检索
● 不支持外键
3)MEMERY
● 内存引擎,在内存中创建表
● 访问速度快
- 字符集
● 数据库中存储数据的编码格式
● 中文一般使用utf8
● 排序规则 utf8_general_ci ci表示大小写字母不敏感
● mysql对于英文字母大小写不敏感 - sql脚本
● .sql作为扩展名的一个文件
● 方便部署数据库 - 数据库的管理
数据库的创建
CREATE DATABASE 数据库名 CHARACTER SET utf8 COLLATE utf8_general_ci
CREATE DATABASE IF NOT EXISTS 数据库名 CHARACTER SET UTF8 COLLATE utf8_general_ci ;数据库的删除
DROP DATABASE 数据库名- E-R图
● ENTITY RELATIONSHIP 实体关系图,数据库逻辑设计阶段产生的一种数据模型。
● 包含三个要素:
- 实体 实体实际对应着数据库中表
- 属性 实际对应着表中的字段
- 关系 表与表之间的关系
● 一对一
● 一对多
● 多对多
- 数据类型
1)数值类型
● BIT 位
● TINYINT 很小整数,-128~127 unsigned 无符号0~255
● BOOLEAN 用TINYINT(1)来表示,0表示false,非零值表示true
● SAMLLINT -32768~32767
● INT 正负21亿多
● BIGINT 很多很多
● FLOAT
● DOUBLE
● DECIMAL
2)字符串类型
● CHAR(n) 固定长度为n的字符串
● VARCHAR(n) 变长字符串,n为最大长度,实际存储的长度,就是字符串的实际长度。
● TEXT 大文本,比如小说的章节内容。
● ENUM 枚举
3)日期类型
● DATE
● DATETIME
● TIME
● YEAR
● TIMESTAMP 时间戳 记忆记录最后一次的更新时间。需要将字段的默认值设置为CURRENT_TIMESTAMP,勾选为时间戳。 - 约束类型
● 往表中插入记录的时候,遵循的一定的规则, 称为约束,作用保证数据的完整性和一致性。
主键约束
● PRIMARY KEY
● 表中的一列或者多列,设置主键约束,表示该列的值,在该表中是唯一的。
● 主键的值不能为NULL,而且必须唯一。
● 语法:
字段名 PRIMARY KEY AUTO_INREMENT● AUTO_INREMENT表示主键自增
唯一性约束
● UNIQUE
● 表示该字段的值在该表中是唯一的,但是取值为NULL
● 表中的多个字段都可以设置唯一性约束
● 语法 :
字段名 UNIQUE非空约束
● NOT NULL
● 该字段的值不能为null
● 语法:
字段名 NOT NULL默认值
● DEFUALT
● 如果表中插入记录时,没有给该字段赋值,则使用默认值。
● 语法:
字段名 DEFAULT 值外键约束
● FOREIGN KEY
● 表中的某个字段,是取自另外一个表中的字段的值,形成的外键约束
● 两个表中关联字段的数据类型要一致。
● 外键约束的策略:
● restrict 、noaction 对于已经形成外键约束的记录,被引用表中的关联的记录不允许被删除。
● set null 对于已经形成外键约束的记录,被引用的表中的记录删除后,主表中关联记录的对应的字段值被置为null
● cascade 对于已经形成外键约束的记录,如果删除或者更新被引用表中的记录,主表的关联记录也会被删除或者更新。
CHECK约束
● mysql不支持这种约束,一般通过枚举或者触发器来实现。
- 表的创建
● 语法
CREATE TABLE 表名(
字段名 数据类型 约束,
字段名 数据类型 约束
)- 表的删除
DROP TABLE 表名- 更改表
● ALTER - SQL语句
● SQL Structed Query Language
● DDL DATA DEFINITION LANGUAGE 数据定义语言
对于数据库或者数据库的组件的结构的操作
CREATE ALTER DROP
特点:不允许事务的回滚。
● DML DATA MANIPULATION LANGUAGE 数据操作语言
表中记录的增删改
INSERT
DELETE
UPDATE
特点:可以进行事务的回滚
● DQL DATA QUERY LANGUAGE 数据查询语言
SELECT
● DCL DATA CONTROL LANGUAGE 数据控制语言
GRANT 授权
REVOKE 回收权限
● TPL TRANSACTION PROCESS LANGUAGE 事务处理语言
COMMIT
ROOLBACK - DML
INSERT 往表中插入记录
● 语法
INSERT INTO 表名(字段列表) VALUES(值列表)● 其中:
● 1、字段列表,值列表两两之间用逗号隔开
● 2、值列表中的值,字符串和日期的常量,需要单引号括起来。
● 3、值的类型要与字段的数据类型相符
● 4、INTO可以省略
● 5、字段列表如果是插入整个表中的字段,可以省略,但值列表的个数与顺序要与定义的表的字段的顺序一样。
● 6、字段也可以写其中的几个,与后面的值的个数对应即可。
● 7、VALUES 关键字也可以使用VALUE,但一般用values
● 批量插入多条记录
● INSERT INTO 表名(字段名) VALUES(值列表1),(值列表2),…,(值列表n)
UPDTAE
● 对表中的记录进行更改
● 语法
UPDATE 表名 SET 字段名1=值1, 字段名2=值2 WHERE子句● where子句用于限定修改的记录。如果不加where子句,默认修改该表中所有的记录。
DELETE
● 用于删除表中的记录
● 语法
DELETE FROM 表 WHERE子句表的截断
● TRUNCATE TABLE 表名
● 表的截断,清空表中所有的记录。
TRUNCATE 和DELETE的区别
● 都可以删除表中的记录。delete既可以删除表中所有的记录,也可以按where条件删除一部分记录,而truncate只能清空表中所有的记录。
● delete属于DML,事务可以回滚,truncate属于DDL,是不可以事务回滚。
- where子句
用于条件限制
关系运算符
● = 等于
● != <> 不等于
● > >=
● < <=
● 注意:关系运算符除了值的比较,还可以比较日期,hiredate>‘1982-1-1’
null值的判断
● IS NULL
● IS NOT NULL
区间的判断
● BETWEEN … AND … 表示取值在某个连续的区间
● WHERE sal BETWEEN 3000 AND 5000 表示筛选工资在3000~5000的记录,并且包含3000和5000两个边界。
● NOT BETWEEN … AND … 表示取值不在某个连续的区间
集合的判断(离散)
● IN 表示取值在集合中
● WHERE deptno IN(10,20,40)
● NOT IN 表示取值不在集合中
逻辑运算符
● 在where子句中拼接多个筛选条件
● && AND 与
● || OR 或
● ! NOT 非
















