SQL的增删改查有哪些?
Posted 宾有为
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL的增删改查有哪些?相关的知识,希望对你有一定的参考价值。
SQL离不开增删改查,本篇文章中部分SQL可能并不属于“增删改查”范围,所以,本篇文章仅代表个人想法将“增删改查”进行汇总
一、增
数据库
- 创建数据库
CREATE DATABASE 数据库名;
视图
- 创建单表视图
CREATE VIEW 视图名 AS SELECT 数据表字段 FROM 数据表名;
- 创建多表视图
CREATE VIEW 视图名 AS SELECT 表1.字段,表2.字段 FROM 表1,表2 WHERE 条件;
- 插入一条数据
INSERT INTO 视图名 VALUES (插入值);
- 插入多条数据
INSERT INTO 视图名 (插入子段) VALUES (插入值),(插入值);
数据表
- 创建数据表
CREATE TABLE 表名(
列名称1 数据类型,
列名称2 数据类型,
.......
);
- 增加字段
ALTER TABLE 表名 字段名 字段数据类型;
- 插入一条数据
INSERT INTO 表名 VALUES (插入值);
- 插入对应字段的值
INSERT INTO 表名 (字段) VALUE (插入值);
- 插入多条数据
INSERT INTO 表名 (字段) VALUES (插入值),(插入值);
二、删
数据库
- 删除数据库
DROP DATABASE 表名;
视图
- 删除数据
DELETE FROM 视图名 WHERE 条件;
数据表
- 删除数据表
DROP TABLE 表名;
- 删除字段
ALTER TABLE 表名 DROP COLUMN 字段名;
- 删除数据(记得加上 WHERE 子句,无WHERE子句默认为将该表全部数据删除)
DELETE FROM 表名 WHERE 条件;
- 删除表数据
TRUNCATE TABLE 表名;
三、改
数据库
- 修改数据库名
ALTER DATABASE 原名 MODIFY NAME = 新名;
视图
- 修改视图字段
CREATE OR REPLACE VIEW 视图名 AS SELECT * FROM 数据表名;
或
ALTER VIEW 视图名 AS SELECT * FROM 数据表名;
- 修改视图数据
UPDATE 视图名 SET 需要修改的字段 = '修改后的值';
数据表
- 修改表名
ALTER TABLE 原表名 RENAME TO 新表名;
- 修改字段名
ALTER TABLE 表名 CHANGE 原字段名 新字段名 新字段数据类型;
- 修改字段数据类型
ALTER TABLE 表名 ALTER COLUMN 字段 数据类型;
- 修改表某一字段数据,多字段用逗号分隔(记得添加 WHERE 子句,无WHERE子句默认为修改该字段所有内容)
UPDATE 表名 SET 字段 = '' WHERE 条件;
四、查
数据库
- 查看数据库
SHOW DATABASES;
视图
- 查看视图结构
DESC 视图名;
或
DESCRIBE 视图名;
- 查看创建视图的SQL语句
SHOW CREATE VIEW 视图;
- 查看视图
SELECT * FROM 视图名;
或
SHOW CREATE VIEW 视图名;
或
SHOW TABLE STATUS LIKE '视图名';
数据表
- 查看表结构
DESC 表名;
或
DESCRIBE 表名;
- 查看创建表的SQL语句
SHOW CREATE TABLE 表名;
- 查看表数据
SELECT * FROM 表名;
- 查看指定字段数据
SELECT 指定字段名 FROM 表名;
- 查看符合字段1索引(条件)的数据
SELECT * FROM 表名 WHERE 条件;
- 查看同时符合字段1、字段2索引(条件)的数据,中间用 AND 相连
SELECT * FROM 表名 WHERE 条件1 AND 条件2;
- 查看符合字段1、字段2其中一个索引(条件)的数据,中间用 OR 相连
SELECT * FROM 表名称 WHERE 条件1 OR 条件2;
- 查看符合字段1索引,又要符合字段2、字段3其中一个索引(条件)的数据,用 AND 连接的同时也要将 OR 用括号括起来
SELECT * FROM 表名称 WHERE 条件1 AND (条件2 OR 条件3);
- 内连接 (INNER )JOIN
SELECT * FROM 表1,表2 WHERE 表1.字段 = 表2.字段
或
SELECT * FROM 表1 JOIN 表2 ON 表1.字段 = 表2.字段
或
SELECT * FROM 表1 INNER JOIN 表2 ON 表1.字段 = 表2.字段
-- 多个条件用And相连
SELECT * FROM 表1 INNER JOIN 表2 ON 条件1 AND 条件2
- 左连接 LEFT JOIN
SELECT * FROM 表名1 LEFT JOIN 表名2 ON 连接条件(多条件用AND或OR连接)
- 右连接 RIGHT JOIN
SELECT * FROM 表名1 RIGHT JOIN 表名2 ON 连接条件(多条件用AND或OR连接)
- 分组查询 GROUP BY
SELECT * FROM 表名 GROUP BY 分组查询字段;
- 分组查询 过滤分组数据 GROUP BY + HAVING
SELECT * FROM 表名 GROUP BY TIME HAVING 字段 = '';
- 分组查询,得到分组后的集合 GROUP BY + GROUP_CONCAT
SELECT GROUP_CONCAT(需要集合的字段) FROM images GROUP BY 分组的字段;
- 升序查询 ASC
SELECT * FROM 表名 ORDER BY 升序查询的字段 ASC;
- 降序查询 DESC
SELECT * FROM 表名 ORDER BY 降序查询的字段 DESC;
- 查询返回指定条数 LIMIT
SELECT * FROM 表名 LIMIT 限制返回的条数;
或
SELECT * FROM 表名 LIMIT 限制返回的条数,限制到第几条;
- 模糊查询 LIKE
SELECT * FROM 表名 WHERE 字段 LIKE '%值%';
- 嵌套查询
SELECT * FROM 表名1 WHERE 表名1字段 = (SELECT 表名2字段 FROM 表名2 WHERE 条件);
函数查询
聚合函数
- 查询平均值 AVG
SELECT AVG(字段) FROM 表名;
- 查询表行数 COUNT
SELECT COUNT(*) FROM 表名;
- 查询最大值 MAX
SELECT MAX(字段) FROM 表名;
- 查询最小值 MIN
SELECT MIN(字段) FROM 表名;
- 求和 SUM
SELECT SUM(字段) FROM 表名;
日期函数
- 查询当前日期
-- mysql用法:
SELECT NOW();
-- SQL Server用法:
SELECT GETDATE();
- 查询日期间的差值
-- MYSQL用法:
SELECT DATEDIFF(日期1,日期2);
-- SQL Server
-- 返回格式可以是年、季度、月、日等,具体可参考:https://www.w3school.com.cn/sql/func_datediff.asp
SELECT DATEDIFF(返回格式,日期1,日期2);
- 查询指定日期年份
-- 结果:2021
SELECT YEAR('2021-05-01');
- 查询指定日期月份
-- 结果:5
SELECT MONTH('2021-05-01');
- 查询指定日期天数
-- 结果:1
SELECT DAY('2021-05-01');
- 查询某个日期是星期几
-- 结果:4
SELECT DAYOFWEEK('2021-04-28');
小结:
1、数据表与视图是关联的关系,当视图(数据表)数据删除,相对应的数据表(视图)数据也会删除。
2、关于函数,此处仅仅列举了小部分,还有字符串函数、系统函数、数学函数等没有介绍,有兴趣可去自行了解。
高情商:这些只是在我所了解的SQL的冰山一角,只是简单使用,复杂的SQL我也很少用得上。
低情商:老子只会这些了!
以上是关于SQL的增删改查有哪些?的主要内容,如果未能解决你的问题,请参考以下文章