基本语句
创建数据库:
create database 数据库名;
删除数据库:
drop database 数据库名;
使用数据库:
use 数据库名;
创建表:
create table 表名(字段1 字段类型 约束 字段2 字段类型 约束);
删除表:
delete from 表名 where 条件
更新表:
UPDATE 表名 SET 字段 = 值 WHERE 条件;
插入数据:
insert into 表名(字段1,字段2) values('值1','值2');
约束
非空约束(NOT NULL):指示某列不能存储 NULL 值。
唯一约束(UNIQUE) : 保证某列的每行必须有唯一的值。
主键预约(PRIMARY KEY): NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
外键约束(FOREIGN KEY)保证一个表中的数据匹配另一个表中的值的参照完整性。
检查约束(CHECK):保证列中的值符合指定的条件。
默认约束(DEFAULT) : 规定没有给列赋值时的默认值
模糊查询
查询名字以 李 开始的人:
SELECT * FROM 表名 WHERE name字段 LIKE '李%'
查询名字包含 禹 的的人:
SELECT * FROM 表名 WHERE name字段 LIKE '%禹%'
查询名字的第一个字符之后是 禹 的人:
SELECT * FROM 表名 WHERE name字段 LIKE '_禹%'
查询记录的姓氏以 李 开头,然后是一个任意字符:
SELECT * FROM 表名 WHERE name字段 LIKE '李_%'
查询名字以 李 或 范 或 郭 或 王 开头的人:
SELECT * FROM 表名 WHERE name字段 LIKE '[李范郭王]%'
查询名字不以 李 或 范 或 郭 或 王 开头的人:
SELECT * FROM 表名 WHERE name字段 LIKE '[!李范郭王]%'
聚合函数执行顺序
Where --> Group By --> Having --> Order by
排序
order by 默认升序排序
按升序排序 :
order by 字段 asc
按降序排序 :
order by 字段 desc
字段1升序,字段2降序 :
order by 字段1 asc,字段2 desc
分组
group by 字段名
关联查寻
左连接 :
select * from 表1 left join 表2 on 表1.字段 = 表2.字段
右连接 :
select * from 表1 right join 表2 on 表1.字段 = 表2.字段
内连接 :
select * from 表1 inner join 表2 on 表1.字段 = 表2.字段
三表联查:
SELECT * FROM 表1 a join 表2 b on a.字段1 = b.字段1 join 表3 c on c.字段1 = b.字段2
常用函数
聚合函数(常用于GROUP BY从句的SELECT查询中)
AVG(col)返回指定列的平均值
COUNT(col)返回指定列中非NULL值的个数
MIN(col)返回指定列的最小值
MAX(col)返回指定列的最大值
SUM(col)返回指定列的所有值之和
常用函数网址 :
sql 常用函数总和_Z小胖的博客-CSDN博客_sql语句计算总和
嵌套语句
注意:嵌套语句可以为返回值,也可以为条件
返回值嵌套查询:
select (select 字段1 from 表1 left join 表2 on 表1.字段 = 表2.字段) from 表1 left join 表2 on 表1.字段 = 表2.字段
条件嵌套查询:
select * from 表1 left join 表2 on 表1.字段 = 表2.字段 where in (select 字段1 from 表1 left join 表2 on 表1.字段 = 表2.字段)
关联嵌套查询:
SELECT 字段1,字段2,字段3 FROM (select 字段1,字段2 from 表名 where 条件) a join (select 字段1,字段3 from 表名 where 条件) b on a.字段1 = b.字段1
关键字 in 和not in
字段1 in (select 字段1 from 表名) 等于 字段1 = 字段1
in: 可返回多条查询结果
not in: 查询该条之外的所有数据