sql基础语法及常见函数等

一、SQL语句的种类

1、DDL(Data Definition Language,数据定义语言):

sql 复制代码
CREATE:用于创建数据库和表等对象。
DROP:用于删除数据库和表等对象。
ALTER:用于修改数据库表的结构,如添加、删除或修改列。

2、DML(Data Manipulation Language,数据操纵语言):

sql 复制代码
SELECT:用于从数据库中检索数据。
INSERT INTO:用于向数据库中插入新的数据行。
UPDATE:用于修改数据库表中已存在的数据。
DELETE:用于从数据库表中删除数据。

3、DCL(Data Control Language,数据控制语言):

sql 复制代码
GRANT:用于赋予用户操作权限。
REVOKE:用于取消用户的操作权限。
COMMIT:用于确认对数据库中的数据进行的变更。
ROLLBACK:用于取消对数据库中的数据进行的变更。

二、SQL的基本书写规则

sql 复制代码
1、SQL语句要以分号(;)结尾。
2、SQL语句不区分大小写,但通常为了可读性,关键字大写,表名和列名小写。
3、常数的书写方式是固定的,字符串用单引号括起来,日期也可以用单引号括起来,数字则直接书写。
4、单词需要用半角空格或者换行来分隔,不能使用全角空格。

三、常用SQL语句的语法

1、SELECT语句:

sql 复制代码
基本语法:SELECT 列名1, 列名2, ... FROM 表名;
检索所有列:SELECT * FROM 表名;
去除重复值:SELECT DISTINCT 列名 FROM 表名;

2、WHERE子句:

sql 复制代码
用于筛选满足指定条件的记录。
语法:SELECT 列名1, 列名2, ... FROM 表名 WHERE 条件;

3、AND & OR运算符:

sql 复制代码
AND运算符表示同时满足所有条件。
OR运算符表示满足任一条件。
语法示例:SELECT * FROM 表名 WHERE 条件1 AND 条件2; 或 SELECT * FROM 表名 WHERE 条件1 OR 条件2;

4、ORDER BY关键字:

sql 复制代码
用于对结果集进行排序。
语法:SELECT 列名1, 列名2, ... FROM 表名 ORDER BY 列名1 ASC|DESC, 列名2 ASC|DESC;

5、INSERT INTO语句:

go 复制代码
用于向表中插入新记录。
语法:INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);

6、UPDATE语句:

sql 复制代码
用于修改表中的记录。
语法:UPDATE 表名 SET 列名1 = 值1, 列名2 = 值2, ... WHERE 条件;

7、DELETE语句:

go 复制代码
用于从表中删除记录。
语法:DELETE FROM 表名 WHERE 条件;

四、进阶语法

1、SELECT TOP/LIMIT/ROWNUM子句:

sql 复制代码
用于限制查询结果的记录数。
SQL Server/MS Access:SELECT TOP number|percent 列名 FROM 表名;
MySQL:SELECT 列名 FROM 表名 LIMIT number;
Oracle:SELECT 列名 FROM 表名 WHERE ROWNUM <= number;

2、LIKE操作符:

sql 复制代码
用于在WHERE子句中搜索列中的指定模式。
语法:SELECT 列名 FROM 表名 WHERE 列名 LIKE 模式;

3、IN操作符:

sql 复制代码
允许在WHERE子句中规定多个值。
语法:SELECT 列名 FROM 表名 WHERE 列名 IN (值1, 值2, ...);

4、BETWEEN操作符:

sql 复制代码
用于选取介于两个值之间的数据范围内的值。
语法:SELECT 列名 FROM 表名 WHERE 列名 BETWEEN 值1 AND 值2;

5、SQL别名:

sql 复制代码
可以为表或列指定别名,以便在查询中引用。
列的别名语法:SELECT 列名 AS 别名 FROM 表名;
表的别名语法:SELECT 列名 FROM 表名 AS 别名;

6、SQL连接(JOIN):

sql 复制代码
用于将来自两个或多个表的行结合起来。
常见的连接类型有INNER JOIN、LEFT JOIN、RIGHT JOIN等。

五、常见的函数

1. 聚合函数

聚合函数主要用于对一组值执行计算,并返回单个值。常见的聚合函数包括:

sql 复制代码
AVG(column):返回某列的平均值。
COUNT(column):返回某列的行数(不包括NULL值)。COUNT(*)则返回被选行数,包括NULL值。
MAX(column):返回某列的最大值。
MIN(column):返回某列的最小值。
SUM(column):返回某列数值的总和。

2. 字符串函数

字符串函数用于对字符串数据进行操作。常见的字符串函数包括:

sql 复制代码
CONCAT(str1, str2, ...):将两个或多个字符串连接成一个字符串。
LENGTH(str) 或 LEN(str):返回字符串的长度。
UPPER(str):将字符串转换为大写。
LOWER(str):将字符串转换为小写。
SUBSTR(str, start, length) 或 SUBSTRING(str, start, length):返回字符串的子串。
REPLACE(str, from_str, to_str):将字符串中的子串替换为另一个子串。
TRIM(str):去除字符串两端的空格。

3. 数学函数

数学函数用于执行数学计算。常见的数学函数包括:

sql 复制代码
ROUND(num, decimal_places):将数字四舍五入到指定的小数位数。
ABS(num):返回数字的绝对值。
CEIL(num) 或 CEILING(num):向上取整。
FLOOR(num):向下取整。
MOD(x, y):返回x除以y的余数。
RAND():返回0到1之间的随机浮点数。

4. 日期和时间函数

日期和时间函数用于处理日期和时间数据。常见的日期和时间函数包括:

sql 复制代码
NOW():返回当前的日期和时间。
CURDATE():返回当前的日期。
CURTIME():返回当前的时间。
YEAR(date):返回日期中的年份。
MONTH(date):返回日期中的月份。
DAY(date):返回日期中的天数。
DATE_ADD(date, INTERVAL value unit):将日期加上指定的时间间隔。
DATE_SUB(date, INTERVAL value unit):从日期减去指定的时间间隔。
DATEDIFF(date1, date2):计算两个日期之间的天数差。

5. 转换函数

转换函数用于将一种数据类型转换为另一种数据类型。常见的转换函数包括:

sql 复制代码
CAST(expression AS data_type):将表达式转换为指定的数据类型。
CONVERT(data_type[(length)], expression [, style]):将表达式转换为指定的数据类型,并可选择性地指定样式。

6. 系统函数

系统函数用于返回数据库服务器的系统信息。常见的系统函数包括:

sql 复制代码
VERSION():返回数据库的版本号。
DATABASE():返回当前数据库的名称。
USER() 或 SYSTEM_USER:返回当前数据库用户的名称。

7. 流程控制函数

流程控制函数用于在SQL查询中执行条件逻辑。常见的流程控制函数包括:

sql 复制代码
IF(condition, true_value, false_value):如果条件为真,则返回true_value;否则返回false_value。
CASE WHEN condition THEN result [WHEN ...] [ELSE result] END:根据条件返回不同的结果。
相关推荐
lzhlizihang32 分钟前
【Hive sql 面试题】求出各类型专利top 10申请人,以及对应的专利申请数(难)
大数据·hive·sql·面试题
威哥爱编程2 小时前
SQL Server 数据太多如何优化
数据库·sql·sqlserver
Mephisto.java2 小时前
【大数据学习 | kafka高级部分】kafka的kraft集群
大数据·sql·oracle·kafka·json·hbase
Mephisto.java2 小时前
【大数据学习 | kafka高级部分】kafka的文件存储原理
大数据·sql·oracle·kafka·json
数新网络7 小时前
《深入浅出Apache Spark》系列②:Spark SQL原理精髓全解析
大数据·sql·spark
师太,答应老衲吧9 小时前
SQL实战训练之,力扣:2020. 无流量的帐户数(递归)
数据库·sql·leetcode
NiNg_1_23411 小时前
高级 SQL 技巧详解
sql
全栈开发圈19 小时前
新书速览|Spark SQL大数据分析快速上手
sql·数据分析·spark
WeeJot嵌入式19 小时前
数据库----SQL
数据库·sql
矛取矛求19 小时前
高级sql技巧
数据库·sql·mysql