复习:
SQL中的分类:
DQL:
DDL:
DML:
TCL:
DCL:
_________________________________________
DQL:查询语句
1.简单查询
a.查询一个字段
select 字段名 from 表名;
注意:
a. select 和 from都是关键词
b. 字段名 和 表名 都是标识符
b.查询多个字段
注意: 使用 , 隔开
c.查询所有字段
方式一: 可以把所有的字段名都写上
方式二: 使用 * 表示全部
注意: 这种方式有缺点,查询效率低,可读性差,在实际开发过程中不建议使用
d.给查询的列起别名
使用as 关键词起别名
as 关键字可以省略
e.字段可以结合运算符使用 + - * /
2.条件查询
1).where子句后跟的就是查询条件
2)运算符
> < >= <= = <>
like:模糊查询
占位符:
_: 表示单个任意字符
%: 表示多个任意字符
in(集合)
is null
and 相当于 &&
or 相当于 ||
not 相当于 !
3.普通函数 和 聚合函数(分组函数)
1).聚合函数是所以数据库通用的函数
count():求总数
max():求最大值
min():求最小值
avg():求平均值
sum():求和
2)注意:
a.在mysql中是不支持聚合函数的嵌套使用
但是在oracle中是支持聚合函数的嵌套使用
b.在mysql中支出聚合函数和普通函数的嵌套使用
c.聚合函数会自动将null值排除在外
①.选择不包含非空的列进行计算,则直接计算
②.如果要包含 则需要结合 ifnull()使用
d.聚合函数得出的结构都是单行单列的结果
3)count(*) 和 count(字段名)
count(*):不是统计某个字段中数据的个数,而是统计总记录数.
count(comm):表示统计comm字段中不为null的数据总数量.
4.分组查询
group by: 按照某个字段或者某些字段进行分组
having: 是对分组后的数据在进行再次过滤
注意:
a.执行顺序:
from xx -> group by xx -> avg(sal)
b.where 后不能跟 分组函数
因为执行顺序: from xx -> where 条件 -> group by xx -> avg(sal)
5.分页查询:
1)语法: limit 开始的索引,每页查询的条数
2)公式: 开始的索引 = (当前的页面 - 1) * 每页查询的条数
3)limit 属于mysql中独有的
_______________________________________
约束:
1.什么是约束?
在创建表的时候,可以给表中的一些字段添加上一些约束,来保证表中数据的完整性/有效性.
作用: 为了保证数据的有效!
2.约束的分类:
非空约束: not null
主键约束: primary key (简称PK)
唯一约束: unique
外键约束: foreign key (简称FK)
检查约束: check(mysql不支持,oracle支持)
1)非空约束: not null
特点: 值不能为空
2)主键约束: primary key (简称PK)
特点:非空且唯一
作用: 用来标识唯一
主键类型:
使用代理主键高达8 90%
代理主键: 没有任何业务意义,只需要保证是非空且唯一
自然主键: 在表中本身存在一个非空且唯一的有效字段
自动增长:
varchar: 使用java代码随机生成一套字符串
int: 在数据库内部使用自增长来完成 -> auto_increment
3)唯一约束: unique
特点:
a.值不能为null
b.mysql中可以存在多个null值