SQL可以分为两部分
1.DDL数据定义语言 DDL= Data Definition Language
SQL中常用的DDL语句:
create database - 创建新的数据库
create table - 创建新的数据库表
alter table - 变更(改变)数据库表
drop table - 删除表
2.DML数据操作语言 DML = Data Manipulation Language
SQL中常用的DML指令:
insert into - 向数据库表中插入数据
insert into 表名称 values (值1,值2,...)
select - 从数据库表中获取数据
select * from 表名 where 指定条件
update - 更新数据库表中的数据
update 表名称 set 列名称 =新值 where 指定条件
delete - 从数据库表中删除数据
delete from 表名 where 指定条件
Alias 简称 as 别名
SQL约束(constraints)
约束用于在插入数据到表中时的规则,可以在创建表时就规定约束(通过 create table语句)
not null 约束强制列不接受null值
unique(唯一的)约束唯一标识数据库表中的每条记录
primary key (主键)拥有自动定义的unique约束
聚集函数
函数 |
说明 |
avg() |
返回某列的平均值 |
count() |
返回某列的行数 |
max() |
返回某列的最大值 |
min() |
返回某列的最小值 |
sum() |
返回某列之和 |
操作符 |
说明 |
= |
等于 |
<> |
不等于 |
!= |
不等于 |
> |
大于 |
< |
小于 |
>= |
大于等于 |
<= |
小于等于 |
between... and ... |
介于两者之间 |
in |
在给定的值之内 |
like |
模糊匹配 |
运算符Between...and
在where子句中使用,选取介于两个值之间的数据范围。
like 模糊匹配
SELECT Brand FROM Perfume WHERE Brand LIKE '%Lg%‘ 中间包含Lg的都会被找出来
SELECT Brand FROM Perfume WHERE Brand LIKE 'Lg%‘ 前面包含Lg的都会被找出来
SELECT Brand FROM Perfume WHERE Brand LIKE '%Lg‘ 后面包含Lg的都会被找出来
in :表示在给定条件范围内的结果;
or: 表示或者关系,在多个条件从句只要符合其中的1个条件即可。
And 并且操作符:可以给where 子句添加多个条件进行过滤。
Not 表示相反:可以在where子句 条件前边添加 Not
关键字,表示相反
Distinct:去重
Order by:根据指定的列对结果集排序,可以接desc降序排列
Limit:用于规定要返回的数目
SELECT Brand, Series, _50ML_双11价 FROM Perfume ORDER BY _50ML_双11价 DESC LIMIT 3;
Ifnull: 函数用于规定如何处理 NULL 值
SELECT 姓名, (测试理论得分 + IFNULL(SQL得分, 0) + QTP得分 + Selenium得分) AS 各科考试总分 FROM 软件测试考试分数表_重制版1 WHERE 姓名 = '李四';
Group by:分组
SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name
Having:只能和GROUP BY绑定使用
SELECT 商场专柜, SUM(销售价格) AS 香水总销售额 FROM 商场专柜销售情况表 GROUP BY 商场专柜 HAVING SUM(销售价格) > 500 ORDER BY 香水总销售额 DESC;
Case:
case 条件 When [val1] then [result1 when [val2] then [result2] else [default] end 如果符合条件1(val1)结果为(result1) 如果符合条件2(val2)结果为(result2) .... 如果以上条件都不符合,则执行else 中的语句。
-- 统计 不及格,良,优 各有多少人 -- 临时表 可以将其它查询的结果作为一个表来使用,数据库中并没有这个表。 SELECT score_level, count(score_level) FROM -- 创建临时表 (SELECT CASE WHEN score< 60 THEN '不及格' WHEN score< 80 THEN '良' WHEN score<=100 THEN '优' ELSE '不合法' END AS score_level from scores1100 ) as templevel -- 临时表结束 -- 分组 GROUP BY templevel.score_level;
检查空值
使用 is null
来检查空值。
SELECT name,python_score FROM score -- 过滤Python成绩为 空的信息 WHERE python_score is NULL;
同样使用 is not null
来过滤非空;
SELECT name,python_score FROM score WHERE python_score is NOT NULL;
本文摘自 :https://www.cnblogs.com/