您的位置:首页 > 数据库

SQL语句--个人笔记

2019-09-23 22:53 1131 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_43872529/article/details/101231863

SQL的一些基本语句


SQL教程(详解):https://www.w3school.com.cn/sql/index.asp


1.创建表格

/* 首先设置编码格式 */

SET NAMES utfmb4;

/* 取消外键约束,即可以修改表结构 */

SET FOREIGN_KEY_CHECKS= 0;

/*如果存在同名表结构即删除*/

DROP TABLE IF EXISTS `[表名]`;  /* 注意这里需要使用反引号 " ` " */

//创建表结构

CREATE TABLE `[表名]`(

/* 数据用逗号分隔开 */

`字段名` [数据类型](大小)  DEFAULT NULL COMMENT '[注释]'

)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

2.插入数据

INSERT INTO [表名](

/* 填入字段名... */

)
VALUES(

/* 填入字段名对应的值... */

);

其中的字段名代表的就是表格中指定的一类的数据名称


3.选择数据

SELECT [字段名] FROM [表名];

/* 其中[字段名]处可以使用 * 代表所有字段名称 */

/* 使用指定条件进行过滤 */

SELECT * FROM 表名] WHERE [条件]

WHERE的用法相当于筛选器,通过指定的条件过滤数据,然后进行对应的操作


4.修改数据

/* 选定条件下修改指定的数据 */

UPDATE [表名] SET [字段名的修改] WHERE [条件];

如果忽略了WHERE则会修改所有数据


5.删除数据

/* 选定条件下删除指定的数据 */

DELETE FROM [表名] WHERE [条件]

如果忽略了WHERE则会删除表中所有数据


6.数据中字符串的合并

/* 使用 CONCAT 合并字符串并返回 */

SELECT [字段名,CONCAT(字段名1,字段名2,...),...] FROM [表名];

/* 其中CONCAT里的一般是字段名对应的值 */

7.定义字段为别名

/* 使用 AS 定义别名 */

SELECT [字段名] AS [别名] ;

8.清除数据中多余的空格

/* 使用 TRIM() 消除多余空格 */

SELECT TRIM([字段名]);

9.数据的排序

/* 通过指定的排序方法进行排序 */

SELECT * FROM [表名] ORDER BY [字段名] [指定方法]

/* 可以对int型或是double型的数据进行排列

如 ORDER BY price asc :对价格进行升序排列
如 ORDER BY price desc :对价格进行降序排列 */

/* 还可以对varchar型的字符串数据进行排列,对datetime型的时间数据进行排列,
同时可以进行多个字段名的排序 */

需要注意的是 ORDER BY 要放在语句的最后,除了存在 LIMIT 语句


10. 限定数据集的返回

/* 使用 LIMIT 语句限定返回数据的个数 */

SELECT * FROM [表名] LIMIT [num];   /* 返回num个数的数据集 */

SELECT * FROM [表名] LIMIT [num1,num2]; /* 返回从第num1+1数据开始的num2个数的数据集 */

需要注意的是 LIMIT 放在语句的最后


11. 求数据的总数

/* 使用 count() 方法求出数据的总数并返回该值 */

SLECT count(*) FROM [表名];

/* 也可以通过指定的筛选方法求出对应的数据集总数 */

12. 匹配搜索指定内容的数据

/* 通过使用 LIKE 语句进行匹配相关的内容 */

SELECT * FROM [表名] WHERE [字段名] LIKE ['匹配内容'];

匹配的内容可以使用特定的方法进行扩展,比如添加通配符"%"

如:’ 江苏% ’ —— 匹配的可以是 ’ 江苏大学 ’ 、’ 江苏科技大学 ’

(%可以放在任意位置代表扩展的内容)

/* 通过使用 IN 和 NOT IN 语句匹配确定的内容 */

SELECT * FROM [表名] WHERE [字段名] IN([指定内容1],[指定内容2],...);  /* 包含指定内容的搜索 */
SELECT * FROM [表名] WHERE [字段名] NOT IN([指定内容1],[指定内容2],...);  /* 不包含指定内容的搜索 */

13.条件语句 OR、AND、IS 、IS NOT

/* AND语句的实现,相当于与 */

SELECT * FROM [表名] WHERE [条件1] AND [条件2];

/* OR语句的实现,相当于或 */

SELECT * FROM [表名] WHERE [条件1] OR [条件2];

/* IS和IS NOT语句的实现 */

SELECT * FROM [表名] WHERE [条件1] IS NULL;  /* 判断是否为空 */
SELECT * FROM [表名] WHERE [条件1] IS NOT NULL;  /* 判断是否不为空 */

需要注意的是AND的优先级大于OR


14.关联查询

/* 实现表格一和表格二的相关信息的查询 */

SELECT * FROM [表1] AS A,[表2] AS B WHERE [条件];

通常使用 AS 来指定别名,方便操作。

一般情况下避免使用 * 查询,因为表一和表二可能存在相同的字段名,所以使用 **A.[字段名]或者B.[字段名]**来指定一个确定的字段名。


15.分组查询

/* 查找一个字段名的所有种类,即所有分组 */

SELECT [字段名] FROM [表名] GROUP BY [字段名];

/* 可以通过使用 count 来求出每一个分组的数量 */

SELECT [字段名],count([字段名]) AS num FROM [表名] GROUP BY [字段名]

还可以通过 WHERE 等语句来限定条件

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: