一.数据类型
二.字段约束
三.DML
四.DQL
五.函数
一.数据类型
1.数值类型
2.字符串类型
3.日期类型
二.字段约束
1.常见约束
非空约束(not null):不能为null
唯一约束(unique):不能重复
主键约束(primary key):非空+唯一,能够唯一标识数据表中的一条数据;
(一张表中只能有一个主键,主键可以是一列,也可以是多个列的组合);
删除主键约束: alter table <tableName> drop primary key;
创建表后再添加主键:alter table <tableName> modify 字段 类型 primary key;
主键自动增长: auto_increment
(自动增长从1开始,自动增长只保证唯一性,不保证连续性)
联合主键 :
外键约束(foreign key):建立不同表之间的关联关系
三.DML
1.插入数据:insert into <tableName>(columnName,columnName,...) values(value1,value2,...);
字段列表可省略,但是values中的值的顺序要与数据表定义的字段保持一致(实际开发中建议不要省略)
2.删除数据:delete from <tableName> [ where columnName< or > or =' ' ; ]
删除操作没有where子句,则表示删除当前数据表中的所有记录
3.修改数据:update <tableName> set columnName='value1',columnName='value2' [ where conditions ];
修改操作没有where子句,则表示修改字段的所有记录
四.DQL
1.单表查询:select columnName[columnName1,columnName2,...] from <tableName>;
(*可以代表所有列,实际开发中不建议使用)
2.多条件查询:where子句中将多个条件用and( or not between...and... )进行连接;
3.like子句:select * from tableName where columnName like 'reg';
在like关键字后的reg表达式中:
%表示任意多个字符
_表示任意一个字符
4.计算列
例:出生年份=当前年份-年龄
select stu_name as 姓名,2023-stu_age as 出生年份 from table;
5.distinct-消除重复行
select distinct columnName from table;
6.order by 排序
单字段排序: 将满足条件的记录按照指定的列的值升序/降序排列
select * from tableName where conditions order by columnName asc|desc;
asc:升序(默认)
desc:降序
多字段排序:先满足第一个排序规则,再按照第二个规则排序
select * from tableName where conditions order by columnName1 asc,columnName2 asc;
7.分组查询
select 分组字段/聚合函数 from table [where 条件] group by 分组列名 [having 条件]
语句执行属性:1.先根据where条件从数据库查询记录 2.对查询记录进行分组 3.执行having对分组后的数据进行筛选
8.分页查询
select ... from ... where ... limit param1,param2
param1 int,表示查询语句结果中的第一条数据的索引(索引从0开始)
param2 int,表示获取的查询记录的条数(如果不够则,返回剩下的所有记录)
五.函数
1.聚合函数
select count(columnName) from table conditions;
count():统计函数,统计满足条件的字段值的个数
max():查询满足条件的记录中指定列的最大值
min():最小值
sum():计算和,指定列的值的总和
avg():求平均值,查询满足条件的记录中指定列的平均值
2.日期函数
向日期类型的列添加数据时,可以通过字符串类型赋值(字符串的格式必须为:yyyy-MM-dd hh:mm:ss)
now / sysdate():获取当前系统时间
3.字符串函数
concat:(column1,column2,...):拼接多列的查询结果
upper(column):将字段的值转化为大写
lower(column):将指定列的值转换成小写
substring(column,start,len)从指定列中截取部分显示,start从1开始