SQL常见命令函数
2022-07-12 18:28:18 1 举报
AI智能生成
SQL常见命令合集
作者其他创作
大纲/内容
基础语言
表创建 CREATE TABLE
用于创建数据库中的表
语法
CREATE TABLE 表名称
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
....
);
(
列名称1 数据类型,
列名称2 数据类型,
列名称3 数据类型,
....
);
数据查询 SELECT
用于在数据表中选取数据
语法
1、SELECT * FROM 表名称;
2、查询指定列:SELECT 列名称 FROM 表名称;
插入数据 INSERT
用于向数据表中插入新的数据行
语法
1、INSERT INTO 表名称 VALUES (值1, 值2,....);
2、插入指定列:INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....);
去重 DISTINCT
当数据表有多行重复数据时,DISTINCT可将其进行去重显示
语法
SELECT DISTINCT 列名称 FROM 表名称;
条件查询 WHERE
可根据自身需要限制where条件,选取指定数据
语法
SELECT 列名称 FROM 表名称 WHERE 列 运算符 值;
例如:SELECT * FROM STUDENT WHERE STD_NAME = '小明';
与或运算符 AND/OR
在 WHERE 子语句中把两个或多个条件结合起来
AND语法
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录
SELECT * FROM 表名称 WHERE 列 运算符 值 AND 列 运算符 值;
例如:SELECT * FROM STUDENT WHERE STD_NAME ='小明' AND STD_CLASS = 01
OR语法
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录
SELECT * FROM 表名称 WHERE 列 运算符 值 OR 列 运算符 值;
例如:SELECT * FROM STUDENT WHERE STD_NAME ='小明' OR STD_CLASS = 01;
排序 ORDER BY
根据指定的列对结果集进行排序,其中默认排序为 升序ASC ,DESC 代表降序
语法
SELECT * FROM 表名称 ORDER BY 列1,列2 DESC;
例如:将学生的学号按降序排列
SELECT * FROM STUDENT ORDER BY STD_ID DESC;
SELECT * FROM STUDENT ORDER BY STD_ID DESC;
更新表 UPDATE
修改、更新表中的数据
语法
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值;
例如:1、更新一行的某一列
例如:2、更新某一行中的若干列
删除表数据 DELETE
用于删除数据表中的行
语法
DELETE FROM 表名称 WHERE 列名称 = 值;
例如1、删除某行
DELETE FROM STUDENT WHERE STD_NAME= '小明';
DELETE FROM STUDENT WHERE STD_NAME= '小明';
例如2、删除所有
DELETE FROM STUDENT
DELETE FROM STUDENT
清除表数据 TRUNCATE TABLE
仅清除表内数据,不删除数据表本身
语法
TRUNCATE TABLE 表名称;
例如:TRUNCATE TABLE STUDENT;
删除表 DROP TABLE
删除表本身(包括表数据、表结构)
语法
DROP TABLE 表名称;
例如:drop table STUDENT;
高级语言
查找类似值 LIKE
用于在 WHERE 子句中搜索列中的指定数据,搭配模糊搜索
语法
SELECT 列名 FROM 表名称 WHERE 列名称 LIKE 值;
例如:查找学生姓名中以小开头的学生
SELECT * FROM STUDENT WHERE STD_NAME LIKE '小%';
SELECT * FROM STUDENT WHERE STD_NAME LIKE '小%';
锁定多值 IN
在 WHERE 子句中规定多个值
语法
SELECT 列名 FROM 表名称 WHERE 列名称 IN (值1,值2,值3);
例如:在学生表中选取名为小明和小方的学生
SELECT * FROM STUDENT WHERE STD_NAME IN ('小方','小明');
SELECT * FROM STUDENT WHERE STD_NAME IN ('小方','小明');
选择区间 BETWEEN
BETWEEN xxx AND 选取介于两个值之间的数据范围,想选择不包括时只需在BETWEEN前加NOT即可
语法
SELECT 列名/ FROM 表名称 WHERE 列名称 BETWEEN 值1 AND 值2;
例如:查询学号介于01和05之间的学生
SELECT * FROM STUDENT WHERE STD_ID BETWEEN 01 AND 05;
SELECT * FROM STUDENT WHERE STD_ID BETWEEN 01 AND 05;
别名 AS
别名查询
语法
表别名:SELECT 列名称 FROM 表名称 AS 别名;
列别名:SELECT 列名称 as 别名 FROM 表名称;
多表关联 JOIN
根据两个或多个表中的列之间的关系进行连接,从这些表中查询数据
JOIN类型
INNER JOIN: 内部连接,返回两表中匹配的行
也叫等值连接, inner join得出同时存在t1表和t2表的数据集,通俗一点说就是求两个表的交集
语法
select t1.c1, t2.c2 from t1 inner join t2 on t1.c3 = t2.c3
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
从左表(t1)取出所有记录,与右表(t2)匹配。如果没有匹配,以null值代表右边表的列
语法
select t1.c1, t2.c2 from t1 left join t2 on t1.c3 = t2.c3
当只需要取出左表中不在右表的数据时:select t1.c1, t2.c2 from t1 left join t2 on t1.c3 = t2.c3 where t1.c3 is nul
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
从右表(t2)取出所有记录,与左表(t1)匹配。如果没有匹配,以null值代表左边表的列
语法
select t1.c1, t2.c2 from t1 right join t2 on t1.c3 = t2.c3
当只需要取出右表中不在左表的部分数据时:select t1.c1, t2.c2 from t1 right join t2 on t1.c3 = t2.c3 where t2.c3 is null
FULL JOIN: 只要其中一个表中存在匹配,就返回行
合并结果集 UNION
用于合并两个或多个 SELECT 语句的结果集
语法
SELECT 列名 FROM 表A
UNION ALL
SELECT 列名 FROM 表B;
UNION ALL
SELECT 列名 FROM 表B;
常用函数
平均值 AVG
返回数值列的平均值
语法
SELECT AVG(列名) FROM 表名;
汇总行数 COUNT
返回匹配指定条件的行数
语法
COUNT(*) :返回表中的记录数
SELECT COUNT(*) FROM 表名;
SELECT COUNT(*) FROM 表名;
COUNT(DISTINCT 列名) :返回指定列的不同值的数目
SELECT COUNT(DISTINCT 列名) FROM 表名;
SELECT COUNT(DISTINCT 列名) FROM 表名;
COUNT(列名) :返回指定列的值的数目(NULL 不计入)
SELECT COUNT(列名) FROM 表名;
SELECT COUNT(列名) FROM 表名;
最大值 MAX
最小值 MIN
最小值 MIN
函数返回一列中的最大值
返回一列中的最小值
返回一列中的最小值
语法
SELECT MAX(列名) FROM 表名;
SELECT MIN(列名) FROM 表名;
求和 SUM
返回数值列的总数(总额)
语法
SELECT SUM(列名) FROM 表名;
分组 GROUP BY
用于结合合计函数,根据一个或多个列对结果集进行分组
语法
SELECT 列名A, 统计函数(列名B) FROM 表名
WHERE 查询条件
GROUP BY 列名A;
WHERE 查询条件
GROUP BY 列名A;
分组筛选 HAVING
将分组 GROUP BY后的数据进行筛选
语法
SELECT 列名A, 统计函数(列名B) FROM 表名
WHERE 查询条件
GROUP BY 列名A
HAVING 统计函数(列名B) 查询条件;
WHERE 查询条件
GROUP BY 列名A
HAVING 统计函数(列名B) 查询条件;
大写 UPPER
小写 LOWER
小写 LOWER
把字段的值转换为大写
把字段的值转换为小写
把字段的值转换为小写
语法
select upper(列名) from 表名;
select lower(列名) from 表名;
select lower(列名) from 表名;
四舍五入 ROUND
用于把数值字段舍入为指定的小数位数
语法
select round(列名,精度) from 表名;
例如:保留两位
select round(1.1314,2) from dual;
select round(1.1314,2) from dual;
获取时间 NOW/SYSDATE
返回当前的日期和时间
语法
select sysdate from 表名;
例如:获取当前时间
select sysdate from dual;
select sysdate from dual;
0 条评论
下一页