SQL的增删改查有哪些?

Posted 宾有为

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL的增删改查有哪些?相关的知识,希望对你有一定的参考价值。

SQL离不开增删改查,本篇文章中部分SQL可能并不属于“增删改查”范围,所以,本篇文章仅代表个人想法将“增删改查”进行汇总

一、增

数据库
  • 创建数据库
CREATE DATABASE 数据库名;
视图
  • 创建单表视图
CREATE VIEW 视图名 AS SELECT 数据表字段 FROM 数据表名;
  • 创建多表视图
CREATE VIEW 视图名 AS SELECT1.字段,2.字段 FROM1,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 表名;

DROP、TRUNCATE、DELETE的区别

三、改

数据库
  • 修改数据库名
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 * FROM1,2 WHERE1.字段 =2.字段
或
SELECT * FROM1 JOIN2 ON1.字段 =2.字段
或
SELECT * FROM1 INNER JOIN2 ON1.字段 =2.字段
-- 多个条件用And相连
SELECT * FROM1 INNER JOIN2 ON 条件1 AND 条件2
  • 左连接 LEFT JOIN
SELECT * FROM 表名1 LEFT JOIN 表名2 ON 连接条件(多条件用ANDOR连接)
  • 右连接 RIGHT JOIN
SELECT * FROM 表名1 RIGHT JOIN 表名2 ON 连接条件(多条件用ANDOR连接)
  • 分组查询 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的增删改查有哪些?的主要内容,如果未能解决你的问题,请参考以下文章

sql 升序降序排列

sql查询降序和升序的问题

如何实现JSP列表升序或者降序

SQL语言中的升序,降序,是怎么会事

SQL Server 索引 - 升序或降序,有啥区别?

sql的增删改查