什么是DBMS,DBMS就是数据库管理系统
分为关系型DBMS和非关系型DBMS
比如常用的MySQL,SQL Server Oracle和MongoDB,Redis
SQL即结构化查询语言,它只有6个常用动词,增insert删delete查select改update创建create授权grant
SQL可以分为三大类
1、数据定义语言
2、数据操纵语言
3、数据控制语言
中文排序
select name,price from fruit order by convert(name using gbk);
多值子查询
in all any和some
select name,price from fruit where season='夏' and price>all(
select price from fruit where season='秋'
);
select name,price from fruit where season='夏' and price=any(
select price from fruit where season='秋'
);
=any等价于in
<>all等价于not in
四舍五入round
截取小数truncate
获取符号sign 1正数-1负数
向上取整ceil
向上取整floor
类型转换cast
if函数语法
if(条件,值1,值2)
如果条件为真就返加值1,如果条件为假就返回值2
select name as 名称,
if(price>=20,'高价','一般') as 评级
from fruit;
ifnull函数
ifnull(列名,新值)
如果某一列不为null,就显示原值,如果某一列为null,就显示新值
select name as 名称,
ifnull(type,'未知') as 类型
from fruit;
replace语句
在mysql中,如果待插入的数据中包含与已有数据的主键值相同的主键值或unique列值,那么使用insert语句将无法成功插入,而只有使用replace语名才行。
truncate语句属于数据定义语句,一次性删除所有行,并且不在日志里记录,只记录整个数据页的释放操作,所以处理速度快,性能高,使用系统的资源少,执行truncate后自增字段的值被重置为1
delete删除逐行删除,每删除一行就在日志里记录一次,速度慢
create table like 会复制表的完整结构包括主键,自动递增,索引等,只能复制结构,不能复制数据
create table as 不会复制主键,自动递增和索引,可以复制数据
条件检查
mysql8新增的属性
season varchar(10) check(season in('春‘,’夏‘,’秋‘,’冬'))
外键