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:根据条件返回不同的结果。
相关推荐
唐青枫6 天前
MySQL JSON 实战详解:从存储、查询、更新到 JSON_TABLE 与索引
sql·mysql
掉头发的王富贵8 天前
【StarRocks】极限十分钟入门StarRocks
数据库·sql·mysql
zzzzzz31013 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
云技纵横15 天前
唯一索引 INSERT 死锁实战:5 秒复现交叉插入的 S 锁循环等待
sql·mysql
BD_Marathon17 天前
SQL学习指南——视图
数据库·sql
2601_9620725517 天前
李梦娇常识4600问|题库|打印版
sql·华为od·华为·c#·华为云·.net·harmonyos
HackTwoHub17 天前
Sqli-Scanner SQL注入SKILL自动化挖掘SQL注入,零依赖自动化SQL注入挖掘,赏金猎人
数据库·人工智能·sql·web安全·网络安全·自动化·系统安全
Volunteer Technology17 天前
Flink Table API与SQL(一)
大数据·sql·flink
持敬chijing17 天前
Web渗透之SQL注入-常用sql语句
sql·安全·web安全·网络安全
Theo·Chan17 天前
更换 Kingbase V9 License 踩坑记
sql·信创·kingbase