本帖最后由 学习让我快乐啊 于 2018-5-9 17:16 编辑
MySQL
概述SQLSQL分类DDL:数据定义语言
DCL:数据控制语言
DML:数据操纵语言
DQL:数据查询语言
对数据库操作创建数据库
查看数据库
修改数据库
删除数据库
其他操作
对表进行操作
Java中的类型 | SQL中的类型 | byte/short/int/long | tinyint/smallint/int/bigint | float | float | double | double | boolean | boolean | char/String | char/varchar | Date | date/time/datetime/timestamp | File(文件类型) | Blob(二进制的文件)/text(文档) |
单表约束
创建表
查看表
查看数据库下的所有表:show tables; 查看某个表的结构信息:desc 表名;
删除表
修改表
添加列:alter table 表名 add 列名 类型(长度) 约束; 修改列类型,长度和约束:alter table 表名 modify 列名 类型(长度) 约束; 删除列:alter table 表名 drop 列名; 修改列名称:alter table 表名 change 旧列名 新列名 类型(长度) 约束; 修改表名:rename table 表名 to 新的表名; 修改表的字符集:alter table 表名 character set 字符集;
对记录进行操作添加表的记录
向表中插入某些列:insert into 表名(列名1,列名2,列名3...) values(值1,值2,值3...) 向表中插入所有列:insert into 表名 values(值1,值2,值3...) 注意:
值的类型与数据库中表列的类型一致 值的顺序与数据库中表列的顺序一致 值的最大长度不能超过列设置最大长度 值的类型是字符串或者是日期类型,使用单引号引起来
修改表的记录
删除表的记录
查看表的记录
总结:
多表
约束的作用约束是用来保证数据的完整性 单表约束 主键约束 唯一约束 非空约束 多表约束外键约束:用来保证数据完整性(多表之间)。 添加外键约束在员工表上添加外键alter table employee add foreign key (dno)references dept(did); 设置外键为非空alter table employee modify dno int not null; 多表设计之表关系的介绍一对多的关系一对多的例子: 一个部门下可以有多个员工,一个员工只能属于某一个部门。 在多的一方创建外键指向一的一方的主键 多对多的关系多对多的例子: 一个学生可以选择多门课程,一门课程可以被多个学生选择。 需要创建中间表,中间表中至少两个字段,分别作为外键指向多对多双方的主键 一对一的关系 一对一的例子: 一个公司可以有一个注册地址,一个注册地址只能对一个公司。 唯一外键对应 假设是一对多,在多的一方创建外键指向一的一方的主键,将外键设置为unique (不推荐使用)主键对应将两个表的主键建立对应关系即可 多表查询连接查询
交叉连接 cross join(任意两表之间均可查询)
内连接 inner join(inner可省略)(存在外键约束的两表之间可以查询)
根据关联条件去匹配两个表中的记录,如果匹配成功则返回记录,否则不返回 显式内连接:select * from表1 inner join 表2 on 关联条件; 隐式内连接(较常用):select * from 表1,表2 where 关联条件;
外连接 outer join(outer 可省略)(存在外键约束的两表之间可以查询)
内连接与外连接的区别
内连接查询出的是两个表的交集 外连接查询的是左表或右表的全部加上交集
子查询
带in的子查询 例:select * from classes where cid in (SELECT cno FROM student WHERE birthday > '1991-01-01'); 带exists的子查询 例:select * from classes where exists (SELECT cno FROM student WHERE birthday > '1991-01-01'); 带any的子查询 例:SELECT * FROM classes WHERE cid > ANY (SELECT cno FROM student ) 带all的子查询 例:SELECT * FROM classes WHERE cid > ALL (SELECT cno FROM student)
事务
概述事务的特性(ACID特性)事务的隔离
|