复盘一下自己的sql知识储备

一、预备知识

最常见的数据库类型是关系型数据库管理系统,关系型数据库=多张表+各表之间的关系

二、基本语法

1、CREATE TABLE-创建表

CREATE TABLE 表名
(列名称1 数据类型,
  列名称2 数据类型,
...);

常见的数据类型

数据类型描述
integer(size),int(size),smallint(size),tinyint(size)仅容纳整数,在括号内规定的最大位数
decimal(size,d),numeric(size,d)容纳带有小数的数字,size规定数字的最大位数,d规定小数点右侧的最大位数
char(size)容纳固定长度字符串(可容纳字母、数字以及特殊字符),在括号中规定字符串长度
varchar(size)容纳可变长度字符串(可容纳字母、数字以及特殊字符),在括号中规定字符串长度
date(yyyymmdd)容纳日期

2、INSERT INTO-插入数据

INSERT INTO 表名称(列1,列2,列3...) VALUES(值1,值2,值3...);

3、SELECT-查询数据

SELECT 列名称 FROM 表名称;

4、DISTINCT-去除重复值

SELECT DISTINCT 列名称 FROM 表名称;

5、WHERE-条件过滤

SELECT 列名称 FROM 表名称 列 运算符 值;

运算符梳理:

6操作符描述
=等于
<>/!=不等于
>大于
<小于
>=大于等于
<=小于等于
BETWEEN在某个范围内
LIKE

搜索某种模式

AND
OR

6、ORDER BY-排序

SELECT * FROM 表名称 ORDER BY 列1,列2;

# ASC升序,DESC降序

7、UPDATE-更新数据

UPDATE 表名称 SET 列名称=新值 WHERE 列名称=某值;

8、DELETE-删除数据

用于删除表中的行

DELECT FROM 表名称 WHERE 列名称=值;

9、TRUNCATE TABLE-清除表数据

TRUNCATE TABLE 表名称;

10、DROP TABLE-删除表

DROP TABLE 表名称;

三、高级语法

1、LIKE-查找类似值

LIKE操作符用于在WHERE子句中搜索列中的指定模式

A开头:LIKE 'A%'

B结尾:LIKE '%B'

包含C:LIKE '%C%'

不包含D:NOT LIKE '%D%'

SELECT 列名 FROM 表名 WHERE 列名称 LIKE 值;

2、IN-锁定多个值

允许在where语句中规定多个值

SELECT 列名称 FROM 表名称 WHERE 列名称 IN(值1,值2,值3);

3、BETWEEN-选取区间数据

BETWEEN...AND..可选取介于两值之间的数据

SELECT 列名 FROM 表名 WHERE 列名称 BETWEEN 值1 AND 值2;

#不同数据库对于值1和值2的处理方式不同

4、AS-别名

给表或者列起别名

①表别名

SELECT * FROM 表名称 AS 别名;

②列别名

SELECT 列名称 AS 别名 FROM 表名称;

实际使用时,AS可以省略,但是别名要加上" "

5、JOIN-多表关联

用于根据两个或多个表中列的关系,从这些表中查询数据

SELECT 列名 FROM 表名A
INNER/LEFT/RIGHT/FULL JOIN 表名B
ON 表A主键=表B主键

区分各SQL JOIN:

①JOIN:如果表中至少有一个匹配,则返回行

②INNER JOIN:内部连接,返回两表中匹配的行

③LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行

④RIGHT JOIN:即使左表中没有匹配,也从右表中返回所有的行

⑤FULL JOIN:只要其中一个表中存在匹配,就返回行

6、UNION-合并结果集

UNION操作符用于合并两个或多个SELECT语句的结果集

SELECT 列名 FROM 表A
UNION
SELECT 列明 FROM 表B;

UNION操作符默认选取不同的值,如果查询结果需要显示重复的值,使用UNION ALL

7、NOT NULL-非空

NOT NULL约束强制列不接受NULL值。

NOT NULL约束强制字段始终包含值,这意味着如果不向字段添加值就无法插入新纪录或者更新记录。

CREATE TABLE 表
(列 int NOT NULL);

8、VIEW-视图

在SQL中,视图是基于SQL语句的结果集的可视化表。

视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。我们可以向视图中添加SQL函数、WHERE以及JOIN语句,我们也可以提交数据,就像这些来自于某个单一的表。视图总是显示最近的数据,每当用户查询视图时,数据库引擎通过使用SQL语句来重建数据。

CREATE VIEW 视图名 AS
SELECT 列名
FROM 表名
WHERE 查询条件;

四、SQL常用函数学习

1、AVG-平均值

返回指定数列的平均值,NULL不包括在其中。

SELECT AVG(列名) FROM 表名;

2、COUNT-汇总行数

返回指定匹配条件的行数

SELECT COUNT(*) FROM 表名;#返回表中的记录数
SELECT COUNT(DISTINCT 列名) FROM 表名;#返回指定列不同值的数目
SELECT COUNT(列名) FROM 表名;#返回指定列值的数目(NULL不计入)

3、MAX-最大值

返回一列中的最大值,NULL不包括在其中。也可用于文本列,统计一列的最高值。

SELECT MAX() FROM 表名;

4、MIN-最小值

返回一列中的最小值,NULL不包括在其中。也可用于文本列,统计一列的最低值。

SELECT MIN() FROM 表名;

5、SUM-求和

返回数值列的总数(总额)

SELECT SUM(列名) FROM 表名; 

6、GROUP BY-分组

用于结合合计函数,根据一个或多个列对结果进行分组

SELECT 列A,统计函数(列名B)
FROM 表名
WHERE 查询条件
GROUP BY 列名A;

7、HAVING-句尾连接

       由于 WHERE关键字无法与合计函数一起使用,故需要使用HAVING函数

SELECT 列名A,统计函数(列名B)
FROM table_name
WHERE 查询条件
GROUP BY 列名A
HAVING 统计函数(列名B) 查询条件;

 eg:

select lastname,count(city) from persons 
where city='Beijing' 
group by lastname
having count(city) > 1;

8、UCASE/UPPER-大写

把字段的值转化为大写

SELECT upper(列名) FROM 表名;

 9、LCASE/LOWER-小写

把字段转化为小写

SELECT lower(列名) FROM 表名;

10、LEN/LENGTH-获取长度

返回文本字段中值的长度

SELECT length(列名) FROM 表名;

11、ROUND-数值取值

用于把数值字段舍入为指定的小数位数(四舍五入)

SELECT round(列名,精度) FROM 表名;

12、NOW/SYSDATE-当前时间

返回当前的日期和时间

SQL Server数据库,使用getdate()函数来获得当前日期时间

SELECT sysdate FROM 表名;

  • 24
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值