SQL(Structured Query Language) 结构化查询语言,是用来访问和处理数据库的编程语言
使用SQL语言编写出来的代码叫做SQL语句
SQL语言只能在关系型数据库(MySQL,Oracle,SQL Sever)中使用。非关系型数据库(Mongodb)不支持SQL语言
在SQL语句中的关键字无所谓大小写,比如SELECT可以写成select
目录
1 一些语法规范
1.1 注释
1.2 语句分隔
2 查询语句
2.1 查询指定表的所有内容
2.2 显示所有行的指定列
2.3 显示指定行的指定列
2.4 对查询结果进行排序
2.4.1 按照单一字段排序
2.4.2 多重排序
2.5 查询数据总数
2.5.1 查询一共有多少行
2.5.2 统计符合条件的有多少行
2.6 给查询出来的列设置别名
3 插入语句
4 更新语句
4.1 更新单个值
4.2 更新表中的所有行
4.3 更新多个值
5 删除语句
6 条件子句
6.1 数字运算符
6.2 条件运算符
7 创建数据库
8 使用数据库
9 查看库中的所有数据表
10 查看数据表字段情况
11 查看所有数据库
12 删除指定的数据库
1 一些语法规范
1.1 注释
注释用 -- 表示,比如
1.2 语句分隔
两个语句之间要使用 分号 分隔,不然会报错
2 查询语句
SELECT语句用于查询数据库中的内容
2.1 查询指定表的所有内容
SELECT * FROM 表名称 查询指定表中的所有数据(所有字段)
运行之前是这样的
运行之后显示出了表中的所有数据
2.2 显示所有行的指定列
SELECT 字段名称 FROM 表名称 查询指定表中的指定字段数据。如果要查询多个列,多个列之间用逗号分割
查询一个列
查询多个列
2.3 显示指定行的指定列
SELECT 字段名称 FROM 表名称 WHERE 条件
查询之前是这样的
我现在想查 status=1 的所有行,只显示username与password
2.4 对查询结果进行排序
2.4.1 按照单一字段排序
ORDER BY 根据指定的列对查询结果排序
如果不给order by顺序是按照主键排序,我们当前的主键是id
我们可以按照status排序
默认情况下 ORDER BY为升序排列,你也可以给关键字ASC表明升序排序
如果改为DESC则代表降序排序
2.4.2 多重排序
比如我们先按照 status 降序排序,然后再按照 username 升序排序
- 虽然结果一样但确实是按照两个条件排的
2.5 查询数据总数
COUNT可以计算符合条件的数据数量
SELECT COUNT(*) FROM 表名称
当前表中有这些数据
2.5.1 查询一共有多少行
如果不加where就是查询表中一共有多少行
2.5.2 统计符合条件的有多少行
如果加了where可以统计一些条件,比如我们现在想统计 status=0 的行数
2.6 给查询出来的列设置别名
可以使用 as 给查询出来的列设置别名
比如我查询出来username这一列,将其命名为name
多个列可以有多个别名
也可以给 count(*) 别名
3 插入语句
INSERT INTO 表名称 (字段名称) VALUES (值)
- 多个字段或值用逗号分隔
- 字段与值的顺序要对应
我们添加后查询一下来验证结果
4 更新语句
4.1 更新单个值
UPDATE 表名称 set 字段名称=新值 where 条件
比如我们现在要将username为Suyu的用户状态置为0
当前该用户的状态是1
运行一下该用户的状态置为0了
4.2 更新表中的所有行
可以不加条件,如果不加条件,那么该表中的指定列的所有行都会改为新值,比如我现在想将status全部改为1
一般很少会更新表中的所有行,所以执行后会把第一行改掉,之后会报错,告诉你此时是安全模式,你需要把他搞成非安全模式
你需要在更新语句之前将安全模式关掉(sql_safe_updates变量置为0)
这样就可以全部修改了
4.3 更新多个值
多个键值用逗号隔开就好
我们现在想将id为7的行中的password改为11111,status改为0
改之前是这样的
5 删除语句
我们一般不会使用真删除,我们会通过更新某一个字段的值来筛选出来我们已删除与未删除的数据,通过更新某一字段的方式达到删除的效果叫做伪删除也叫标记删除
DELETE语句用于删除表中的行
DELETE FROM 表名称 WHERE 列名称=值
比如我们现在想删除id=3的这一行
DELETE语句可以删除多行,下面我们把status为1的行全部删掉
- 如果不加where且取消安全模式就可以删除所有内容
6 条件子句
条件子句是我们上面跟在where后的内容,是用来筛选用的
条件一般来讲都是 条件名 运算符 条件值 这种形式
6.1 数字运算符
常用的数字运算符有下面这些
- 不等于可以写成 !=
6.2 条件运算符
条件运算符常用 and(且) 和 or(或),条件运算符可以将若干个条件连接起来
我们做两个例子,表中的所有数据是这样的
现在我们要查询 status=1 且 id<12 的行
查询 status=1 或 id<12 的行
条件可以无限接很多个且and和or可以组合使用
7 创建数据库
create database [数据库名称] default charset utf8;
8 使用数据库
use [数据库名称];
9 查看库中的所有数据表
show tables;
10 查看数据表字段情况
desc [数据表名称];
11 查看所有数据库
SHOW DATABASES;
12 删除指定的数据库
DROP DATABASE [数据库名称]
比如我想删掉名为chat_robot的数据库
我们查看所有的数据库验证一下
发现名为chat_robot的数据库没有了