数据库
db 数据库
dba 数据库工程师
存放数据的仓库
分类
对象关系型数据库,将数据(表)以文件方式存储在磁盘上,mysql,oracle,sqlserver
非关系型数据库,也叫nosql,以键值对的形式去存放数据,将数据存储在内存中,redis
mysql和oracle
1.mysql是开源(免费),oracle是收费的
2.mysql没有表空间概念,但是oracle有多个表空间,可以支持分区
3.语句上有稍微的区别
4.orecle中没有专门用来表示整数和小数的数据类型
5.mysql分页是使用limit关键字,oracle使用rowNum这个伪列
6.mysql可以使用auto_incrument对主键实现自增长,而oracle使用的是序列来生成,而且也不叫自增长
7.mysql不支持检查约束
sql
是一种脚本语言,不需要编译,由maysql直接解释运行,通过该语言,可以直接操控mysql
DDL
使用create,alter,drop这样的关键字来操控我们的数据库对象:数据库,表,列
DML
对表中的数据进行增删改
insert,delete,update
注意
1.使用insert语句插入时,必须保证要插的字段类型、数量要和插入的值保持一致
2.delete和drop的区别,delete删除的是数据,不是文件,drop删除整个文件
DQL
数据库执行 DQL 语句不会对数据进行改变,而是让数据库发送结果集给客户端。
查询返回的结果集是一张虚拟表。
结果集
select到from中间的内容就是结果集,是一张虚拟表
注意
如何优化查询速度
1.不要用*
2.不要in语句和not in语句
DQL的顺序
书写顺序:select * from tableName where 条件 group by 分组字段 Having 分组条件 order by 排序规则 limit 分页
limit方言的查询公式
当前页 pageIndex
页面大小 pageSize
LIMIT (pageIndex-1)*pageSize,pageSize
如何确保数据的完整性
注意
主键约束不能为空,且唯一
唯一约束可以为多个null,它只需保证存在的值唯一
连接查询
合并结果集:需要保证结果集字段一样
内连接
外连接
左外连接
右外连接
内连接
内连接是用来把满足某一个条件两个结果集合并起来,并一一对应,
此时两张表中任意一张表中的关联字段在例外一张表关联字段中不存在,
那么该数据则不会显示
外连接
是以一张表为主表,另一张表为匹配表,主表的内容全部显示,然后用匹配表去匹配主表中的内容
在左外连接中,左表为主表,右表为匹配表
在右外连接中,右表为主表,左表为匹配表