前言
Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统) 应用软件之一。
一、什么是SQL语句
1.SQL
是 结构化查询语言,专门用来访问和处理数据库的编程语言。能够让我们以编程的形式,操作数据库里面的数据
2. 三个关键点:
-
SQL
是一门数据库编程语言 -
使用
SQL
语言编写出来的代码,叫做 SQL 语句 -
SQL
语言只能在关系型数据库中使用(例如MySQL
、Oracle
、SQL Server
)。非关系型数据库(例如Mongodb
)不支持SQL
语言
二、SQL语句能做什么
-
从数据库中查询数据
-
向数据库中插入新的数据
-
更新数据库中的数据
-
从数据库删除数据
-
可以创建新数据库
-
可在数据库中创建新表
-
可在数据库中创建存储过程、视图
三、SQL语句
1.SELECT
语句用于从表中查询数据。执行的结果被存储在一个结果表中(称为结果集)
--语法
SELECT * FROM 表名 //用于查询表中所有的数据
select 列名 from 表名 //用于查询指定的列名的数据
注:SQL语句对大小写不敏感,即 select * from 表名 也可以
2.INSERT INTO
语句用于向数据表中插入新的数据行,语法格式如下
--语法
INSERT INTO 表名 SET 列名1 = '值1', 列名2 = '值2',...
列如:
insert into user set username = '猪八戒', password = '123456'
注:新插入的数据需要加上引号,否则会报错
3.Update
语句用于修改表中的数据。语法格式如下
--语法
update 表名 set 需要更改的列名 = 更改后的值 where 更新的条件
列如:
update user set passwrod = '654321' where id = 1 //修改id为1的用户的密码
注 :更新数据时一定要加where条件,如果不加的话会默认修改整张表的所有数据
4.DELETE 语句用于删除表中的行
--语法
DELETE FROM 表名 WHERE 删除的条件
列如:
delete from user where id = 2 //删除id为2的数据
注:删除数据时一定有要加where条件,如果不加的话会删除整张表里的所有数据
四、Where子句:
1.WHERE
子句用于限定选择的标准。在 SELECT
、UPDATE
、DELETE
语句中,皆可使用 WHERE
子句来限定选择的标准
1.--查询语句中的 where条件
select 列名称 from 表名 where 查询条件
例如: select password from user where id = 1 //查询id为1的用户的密码
2.--更新语句中的where条件
update 表名 set 列 = ‘新值’ where 更新条件
例如:update user set password = '123456' where id = 2 //更新id为2的用户的密码
3.--删除语句中的where条件
delete from 表名 where 删除条件
例如:delete from user where id = 3 //删除id为3的用户数据
2.可在 WHERE
子句中使用的运算符
五、SQL 的 ORDER BY 子句
-
AND
和OR
可在WHERE
子语句中把两个或多个条件结合起来 -
AND
表示必须同时满足多个条件,相当于JavaScript
中的&&
运算符,例如if (a !== 10 && a !== 20)
-
OR
表示只要满足任意一个条件即可,相当于JavaScript
中的||
运算符,例如if(a !== 10 || a !== 20)
and
-- and
-- 使用 AND 来显示所有 status 为 0,并且 id 小于 3 的用户
select * from users where status=0 and id<3
or
-- or
-- 使用 OR 来显示所有 status 为 1,或者 username 为 zs 的用户
select * from users where status=0 or username='zs'
六、SQL 的 ORDER BY 子句
-
语法
-
ORDER BY
语句用于根据指定的列对结果集进行排序 -
ORDER BY
语句默认按照升序对记录进行排序,ASC
关键字代表升序排序 -
如果您希望按照降序对记录进行排序,可以使用
DESC
关键字
-
-
ORDER BY
子句 - 升序排序对
users
表中的数据,按照status
字段进行升序排序
-- 下面这两条 SQL 语句是等价的,
-- 因为 order by 默认进行升序排序
-- 其中,ASC 关键字代表升序排序
-- select * from users order by status
select * from users order by status asc
3.ORDER BY
子句 – 降序排序
对 users 表中的数据,按照 id 字段进行降序排序
-- desc 代表降序排序
select * from users order by status desc
七、ORDER BY 子句 – 多重排序
对 users
表中的数据,先按照 status
字段进行降序排序,再按照 username
的字母顺序,进行升序排序
select * from users order by status desc, username asc
八、SQL 的 COUNT(*) 函数
--语法
SELECT COUNT(*) 表名
例如:
select count(*) from user