当前位置:首页 > IT技术 > 数据库 > 正文

SQL基础
2021-09-13 10:26:37

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()

返回某列之和

 
where子句的操作符

操作符

说明

=

等于

<>

不等于

!=

不等于

>

大于

<

小于

>=

大于等于

<=

小于等于

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/

开通会员,享受整站包年服务立即开通 >