SQL 基础语法详解:包含查询、插入、删除、更新等常用操作示例和技巧分享

注意:sql的语句是不区分大小写的

 MySQL安装:百度网盘下载

原数据表

需要这张表做跟着操作的可以下载导入到自己的数据库: users.sql

导入方法如下:

SQL的SELECT查询语句 

-- SELECT 语句用于从表中查询数据。执行的结果被存储在一个结果表中(称为结果集)。语法格式如下:
-- 这是注释
-- 从 FROM 指定的【表中】,查询出【所有的】数据,*表示【所有列】
-- SELECT * FROM 表的名称

-- 从 FROM 指定的【表中】,查询出指定的 列名称(字段),的数据
-- SELECT 列名称 FROM 表的名称

-- 从 users 表中查询所有列的数据 注意:星号 * 是选取所有的列的快捷方式  users 是要查询的表名
-- SELECT * FROM users

-- 从users 表中查询指定的列 注意:多个列之间,使用英文逗号进行分隔
SELECT username,password FROM users

 SQL的 INSERT INTO插入语句

-- INSERT INTO 语句用于向数据表中插入新的数据行,语法格式如下:
-- 注意:列和值要一一对应,多个列和多个值之间,使用英文的逗号分隔
-- INSERT INTO 表名称(列1,列2,...) VALUES(值1,值2,...)

-- INSERT INTO 示例
-- 向 users 表中,插入一条 username 为 tony stark,password 为 098123 的用户数据,示例如下:
INSERT INTO users (username,password) VALUES('tony stark','098123')

-- 如果要插入条数据,就不用指定列名直接写要插入的数据即可,不过需要注意的是数据的个数和列名是一一对应的
-- INSERT INTO users VALUES(6,'李银河','123456',1)

SQL 的 WHERE(限定条件)子句

-- WHERE 子句用于限定选择的标准。在 SELECT、UPDATE、DELETE 语句中,皆可使用 WHERE 子句来限定选择的标准。

-- 查询语句中的 WHERE条件
-- SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

-- 更新语句中的 WHERE 条件-- 
-- UPDATE 表名称 SET 列=新值 WHERE 列 运算符 值

-- 删除语句中的 WHERE 条件
-- DELETE FROM 表名称 WHERE 列 运算符 值

-- WHERE 子句示例
-- 可以通过 WHERE 子句来限定 SELECT 的查询条件:
-- 1.查询 status 为 1 的所有用户
-- SELECT * FROM users WHERE status = 1

-- 2.查询 id 大于 2 的所有用户
-- SELECT * FROM users WHERE id > 2

-- 3.查询 username 不等于 张三 的所有用户
SELECT * FROM users WHERE username <> '张三'

 SQL 的 ORDER BY排序子句

-- 语法
-- ORDER BY 语句用于根据指定的列对结果集进行排序。
-- ORDER BY 语句默认按照升序对记录进行排序。
-- 如果您希望按照降序对记录进行排序,可以使用 DESC 关键字

-- 1.ORDER BY 子句 - 升序排序
-- 对 users 表中的数据,按照 status 字段进行升序排序,示例如下:
--  注意:如下两条 SQL 语句是等价的
--        因为 ORDER BY 默认是进行升序排序,其中,ASC 关键字代表升序排序
-- SELECT * FROM users ORDER BY status
-- SELECT * FROM users ORDER BY status ASC

-- 2.ORDER BY 子句 – 降序排序
-- 对 users 表中的数据,按照 id 字段进行降序排序,示例如下:
--  SELECT * FROM users ORDER BY id DESC

-- 3.ORDER BY 子句 – 多重排序
-- 对 users 表中的数据,先按照 status 字段进行降序排序,再按照 password 的字母顺序,进行升序排序,示例如下
 SELECT * FROM users ORDER BY status DESC ,password ASC
-- 多重排序 总结:在多重排序是会优先以前面写的排序方法进行排序,然后在前面的基础上再次排序,
-- 第一次排序是大范围的,其它是范围排序
-- (比如李四这一行的status 是1 其他的都是0,执行完第一次降序排序李四这一行会排在第一行。第二次升序排序
-- 李四这一行的password 的字母大于其它行的,排序顺序也不会变)

SQL 的 DELETE 删除语句

-- DELETE 语句用于删除表中的行。语法格式如下:
-- 语法解读:
-- 从指定的表中,根据 WHERE 条件,删除对应的数据行
-- DELETE FROM 表的名称 WHERE 列的名称 = 值

-- 从 users 表中,删除 id 为 40 的用户,示例如下
-- 注意:初学者经常忘记提供更新 WHERE 条件,这样会导致整张表的数据都会被删除,一定要慎重
 DELETE FROM users WHERE id = 40

SQL 的 COUNT() 函数用于返回查询结果的总数据条数

-- COUNT(*) 函数用于返回查询结果的总数据条数,语法格式如下:
-- SELECT COUNT(*) FROM 表的名称

-- 查询 users 表中 status 为 0 的总数据条数:
SELECT COUNT(*) FROM users WHERE status = 0

--  使用 AS 为列设置别名
-- 如果希望给查询出来的列名称设置别名,可以使用 AS 关键字,示例如下:
-- SELECT COUNT(*) AS total FROM users WHERE status = 0

-- SELECT username AS unname,password AS upwd FROM users

 SQL 的 AND(与)和 OR(或)运算符

-- 语法
-- AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
-- AND 表示必须同时满足多个条件,相当于 JavaScript 中的 && 运算符,例如 if (a !== 10 && a !== 20)
-- OR 表示只要满足任意一个条件即可,相当于 JavaScript 中的 || 运算符,例如 if(a !== 10 || a !== 20)

-- AND 运算符示例
-- 使用 AND 来显示所有 status 为 0,并且 id 小于 3 的用户:
-- SELECT * FROM users WHERE status=0 AND id<3

-- OR 运算符示例
-- 使用 OR 来显示所有 status 为 1,或者 username 为 zs 的用户:
SELECT * FROM users WHERE status=1 OR username ='张三'

 SQL 的 UPDATE修改语句

-- Update 语句用于修改表中的数据。语法格式如下:
-- 1.用 UPDATE 指定要更新哪个表中的数据
-- 2.用 SET 指定列对应的新值
-- 3.用 WHERE 指定更新的条件
-- UPDATE 表的名称 SET 列的名称 = 新值 WHERE 列的名称 = 某值

-- UPDATE 示例 - 更新某一行中的一个列
-- 把 users 表中 id 为 6 的用户密码,更新为 888888。示例如下:
-- UPDATE users SET password = '88888888' WHERE id = 6

-- UPDATE 示例 - 更新某一行中的若干列
-- 把 users 表中 id 为 2 的用户密码和用户状态,分别更新为 admin123 和 1。示例如下:
-- 多个被更新列之间,使用英文逗号分隔
--  WHERE 后面跟着的是更新条件
-- 注意:初学者经常忘记提供更新 WHERE 条件,这样会导致整张表的数据都会被更新,一定要慎重
UPDATE users SET password = 'abc123',status=1 WHERE id = 2
 

联合查询语句:union select

 例:一开始我先查一下“张三”

SELECT * FROM users WHERE username='张三'

然后加上联合查询查一下“李四”:union SELECT * FROM users WHERE username='李四'

SELECT * FROM users WHERE username='张三' union select * FROM users WHERE username='李四'

排序分页

结果排序

演示

-- 按照年龄进行升序排序 (默认就是ASC升序排序)
-- SELECT * FROM student ORDER BY age ASC
-- 加限制条件,只排序年龄大于18的
-- SELECT * FROM student WHERE age > 18 ORDER BY age ASC
--  DESC 降序排序    ASC 升序排序
SELECT * FROM student WHERE age > 18 ORDER BY age DESC

结果分页限制

演示

-- limit ?,?'  // ? 开始查询的索引 , ? 要查多少条数据
-- SELECT * FROM student WHERE age > 18 ORDER BY age LIMIT 3   # 年龄大于18的前3条数据
-- SELECT * FROM student ORDER BY age  LIMIT 0,3  # 从第一条数据开始查3条数据
-- 查询年龄大于18 、按照年龄进行分组、按照年龄进行升序排序、只取前3条数据 
SELECT * FROM student WHERE age > 18 GROUP BY age ORDER BY age  LIMIT 3;  

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狗蛋的博客之旅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值