SQL语句学习

一些最重要的 SQL 命令

  • SELECT - 从数据库中提取数据  DISTINCT 关键词用于返回唯一不同的值。
  • UPDATE - 更新数据库中的数据
  • DELETE - 从数据库中删除数据
  • INSERT INTO - 向数据库中插入新数据
  • CREATE DATABASE - 创建新数据库
  • ALTER DATABASE - 修改数据库
  • CREATE TABLE - 创建新表
  • ALTER TABLE - 变更(改变)数据库表
  • DROP TABLE - 删除表
  • CREATE INDEX - 创建索引(搜索键)
  • DROP INDEX - 删除索引

SQL通配符:

1、‘%’,替代多个字符。

2、‘_’,替代一个字符。

3、‘regexp’,操作正则表达式。

SQL  between 操作符    常用为  between   ‘’  and  ‘’    表示在什么什么之间。

SQL  order by   用于对结果集进行排序   ASC|DESC。

GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组

在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。

HAVING 子句可以让我们筛选分组后的各组数据,跟于group by后。

 

  • INNER JOIN 关键字在表中存在至少一个匹配时返回行。  常用搭配是 inner join    on  
  • LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。
  • RIGHT JOIN 关键字从右表(table2)返回所有的行,即使左表(table1)中没有匹配。如果左表中没有匹配,则结果为 NULL。
  • FULL OUTER JOIN 关键字只要左表(table1)和右表(table2)其中一个表中存在匹配,则返回行.
  • FULL OUTER JOIN 关键字结合了 LEFT JOIN 和 RIGHT JOIN 的结果。
  • UNION 操作符合并两个或多个 SELECT 语句的结果。
  • 通过 SQL,您可以从一个表复制信息到另一个表。  SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中。
  • 通过 SQL,您可以从一个表复制信息到另一个表。  INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。

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

-----------------------------------------------------------------------------------------------------------------

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

视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。

您可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,也可以呈现数据,就像这些数据来自于某个单一的表一样。

注释:视图总是显示最新的数据!每当用户查询视图时,数据库引擎通过使用视图的 SQL 语句重建数据。

------------------------------------------------------------------------------------------------------------------

SQL 函数

1、SQL Aggregate 函数

SQL Aggregate 函数计算从列中取得的值,返回一个单一的值。

有用的 Aggregate 函数:

  • AVG() - 返回平均值
  • COUNT() - 返回行数
  • FIRST() - 返回第一个记录的值
  • LAST() - 返回最后一个记录的值
  • MAX() - 返回最大值
  • MIN() - 返回最小值
  • SUM() - 返回总和

2、SQL Scalar 函数

SQL Scalar 函数基于输入值,返回一个单一的值。

有用的 Scalar 函数:

  • UCASE() - 将某个字段转换为大写
  • LCASE() - 将某个字段转换为小写
  • MID() - 从某个文本字段提取字符,MySql 中使用
  • SubString(字段,1,end) - 从某个文本字段提取字符
  • LEN() - 返回某个文本字段的长度
  • ROUND() - 对某个数值字段进行指定小数位数的四舍五入
  • NOW() - 返回当前的系统日期和时间
  • FORMAT() - 格式化某个字段的显示方式

快速参考地址:https://www.runoob.com/sql/sql-quickref.html

和:https://www.w3school.com.cn/sql/index.asp

快速参考函数:https://blog.csdn.net/qq_33730348/article/details/79865553

-------------------------------------------------------------------------------------------------

IF(expr1,expr2,expr3)

例:

SELECT IF(sva=1,"男","女") AS s FROM table_name 
WHERE sva != '';

判断expr1是否为true,如果是则为expr2,不是则为expr3

 

IFNULL(expr1,expr2)

如果

expr1不为空(null)则为expr1,如果为空则为expr2.

-------------------------------------------------------------------------------------------------

数据类型描述
CHARACTER(n)字符/字符串。固定长度 n。
VARCHAR(n) 或
CHARACTER VARYING(n)
字符/字符串。可变长度。最大长度 n。
BINARY(n)二进制串。固定长度 n。
BOOLEAN存储 TRUE 或 FALSE 值
VARBINARY(n) 或
BINARY VARYING(n)
二进制串。可变长度。最大长度 n。
INTEGER(p)整数值(没有小数点)。精度 p。
SMALLINT整数值(没有小数点)。精度 5。
INTEGER整数值(没有小数点)。精度 10。
BIGINT整数值(没有小数点)。精度 19。
DECIMAL(p,s)精确数值,精度 p,小数点后位数 s。例如:decimal(5,2) 是一个小数点前有 3 位数,小数点后有 2 位数的数字。
NUMERIC(p,s)精确数值,精度 p,小数点后位数 s。(与 DECIMAL 相同)
FLOAT(p)近似数值,尾数精度 p。一个采用以 10 为基数的指数计数法的浮点数。该类型的 size 参数由一个指定最小精度的单一数字组成。
REAL近似数值,尾数精度 7。
FLOAT近似数值,尾数精度 16。
DOUBLE PRECISION近似数值,尾数精度 16。
DATE存储年、月、日的值。
TIME存储小时、分、秒的值。
TIMESTAMP存储年、月、日、小时、分、秒的值。
INTERVAL由一些整数字段组成,代表一段时间,取决于区间的类型。
ARRAY元素的固定长度的有序集合
MULTISET元素的可变长度的无序集合
XML存储 XML 数据

 CONCAT(,,)

用于拼接like的%比如CONCAT(tem.`name`,'%') 

CONCAT_WS(separator,str1,str2,…)

是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。但是CONCAT_WS()不会忽略任何空字符串。 (然而会忽略所有的 NULL)。

= 与  is 

在判断表中是否有null值的时候用is判断, = 无法判断

SELECT - 从数据库中提取数据 DISTINCT 关键词用于返回唯一不同的值。

UPDATE - 更新数据库中的数据

DELETE - 从数据库中删除数据

INSERT INTO - 向数据库中插入新数据

CREATE DATABASE - 创建新数据库

ALTER DATABASE - 修改数据库

CREATE TABLE - 创建新表

ALTER TABLE - 变更(改变)数据库表

DROP TABLE - 删除表

CREATE INDEX - 创建索引(搜索键)

DROP INDEX - 删除索引

SQL通配符:

 

1、‘%’,替代多个字符。

 

2、‘_’,替代一个字符。

 

3、‘regexp’,操作正则表达式。

 

SQL between 操作符 常用为 between ‘’ and ‘’ 表示在什么什么之间。

 

SQL order by 用于对结果集进行排序 ASC|DESC。

 

GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组

 

在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。

 

HAVING 子句可以让我们筛选分组后的各组数据,跟于group by后。

 

 

 

INNER JOIN 关键字在表中存在至少一个匹配时返回行。 常用搭配是 inner join on  

LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。

RIGHT JOIN 关键字从右表(table2)返回所有的行,即使左表(table1)中没有匹配。如果左表中没有匹配,则结果为 NULL。

FULL OUTER JOIN 关键字只要左表(table1)和右表(table2)其中一个表中存在匹配,则返回行.

FULL OUTER JOIN 关键字结合了 LEFT JOIN 和 RIGHT JOIN 的结果。

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

通过 SQL,您可以从一个表复制信息到另一个表。 SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中。

通过 SQL,您可以从一个表复制信息到另一个表。 INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。

 

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

 

-----------------------------------------------------------------------------------------------------------------

 

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

 

视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。

 

您可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,也可以呈现数据,就像这些数据来自于某个单一的表一样。

 

注释:视图总是显示最新的数据!每当用户查询视图时,数据库引擎通过使用视图的 SQL 语句重建数据。

 

------------------------------------------------------------------------------------------------------------------

 

SQL 函数

1、SQL Aggregate 函数

 

SQL Aggregate 函数计算从列中取得的值,返回一个单一的值。

 

有用的 Aggregate 函数:

 

AVG() - 返回平均值

COUNT() - 返回行数

FIRST() - 返回第一个记录的值

LAST() - 返回最后一个记录的值

MAX() - 返回最大值

MIN() - 返回最小值

SUM() - 返回总和

2、SQL Scalar 函数

 

SQL Scalar 函数基于输入值,返回一个单一的值。

 

有用的 Scalar 函数:

 

UCASE() - 将某个字段转换为大写

LCASE() - 将某个字段转换为小写

MID() - 从某个文本字段提取字符,MySql 中使用

SubString(字段,1,end) - 从某个文本字段提取字符

LEN() - 返回某个文本字段的长度

ROUND() - 对某个数值字段进行指定小数位数的四舍五入

NOW() - 返回当前的系统日期和时间

FORMAT() - 格式化某个字段的显示方式

快速参考地址:https://www.runoob.com/sql/sql-quickref.html

 

和:https://www.w3school.com.cn/sql/index.asp

 

快速参考函数:https://blog.csdn.net/qq_33730348/article/details/79865553

 

-------------------------------------------------------------------------------------------------

 

IF(expr1,expr2,expr3)

例:

 

SELECT IF(sva=1,"男","女") AS s FROM table_name 

WHERE sva != '';

判断expr1是否为true,如果是则为expr2,不是则为expr3

 

 

 

IFNULL(expr1,expr2)

如果

 

expr1不为空(null)则为expr1,如果为空则为expr2.

 

-------------------------------------------------------------------------------------------------

 

数据类型 描述

CHARACTER(n) 字符/字符串。固定长度 n。

VARCHAR(n) 或

CHARACTER VARYING(n) 字符/字符串。可变长度。最大长度 n。

BINARY(n) 二进制串。固定长度 n。

BOOLEAN 存储 TRUE 或 FALSE 值

VARBINARY(n) 或

BINARY VARYING(n) 二进制串。可变长度。最大长度 n。

INTEGER(p) 整数值(没有小数点)。精度 p。

SMALLINT 整数值(没有小数点)。精度 5。

INTEGER 整数值(没有小数点)。精度 10。

BIGINT 整数值(没有小数点)。精度 19。

DECIMAL(p,s) 精确数值,精度 p,小数点后位数 s。例如:decimal(5,2) 是一个小数点前有 3 位数,小数点后有 2 位数的数字。

NUMERIC(p,s) 精确数值,精度 p,小数点后位数 s。(与 DECIMAL 相同)

FLOAT(p) 近似数值,尾数精度 p。一个采用以 10 为基数的指数计数法的浮点数。该类型的 size 参数由一个指定最小精度的单一数字组成。

REAL 近似数值,尾数精度 7。

FLOAT 近似数值,尾数精度 16。

DOUBLE PRECISION 近似数值,尾数精度 16。

DATE 存储年、月、日的值。

TIME 存储小时、分、秒的值。

TIMESTAMP 存储年、月、日、小时、分、秒的值。

INTERVAL 由一些整数字段组成,代表一段时间,取决于区间的类型。

ARRAY 元素的固定长度的有序集合

MULTISET 元素的可变长度的无序集合

XML 存储 XML 数据

 CONCAT(,,)

用于拼接like的%比如CONCAT(tem.`name`,'%') 

 

CONCAT_WS(separator,str1,str2,…)

是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结mysql果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。但是CONCAT_WS()不会忽略任何空字符串。 (然而会忽略所有的 NULL)。

 

= 与 is 

在判断表中是否有null值的时候用is判断, = 无法判断

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yzzzjj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值