MySQL增删改查、去重、排序、匹配、范围等SQL语句

前言

这几年一直在it行业里摸爬滚打,一路走来,不少总结了一些python行业里的高频面试,看到大部分初入行的新鲜血液,还在为各样的面试题答案或收录有各种困难问题

于是乎,我自己开发了一款面试宝典,希望能帮到大家,也希望有更多的Python新人真正加入从事到这个行业里,让python火不只是停留在广告上。

微信小程序搜索:Python面试宝典

或可关注原创个人博客:https://lienze.tech

也可关注微信公众号,不定时发送各类有趣猎奇的技术文章:Python编程学习

BETWEEN语句

选取介于两个值之间的数据范围

  • 语法
SELECT column1, column2....columnN
FROM table_name
WHERE column_name BETWEEN val1 AND val2;
  • 示例
mysql> select * from user where age between 2 and 4;
+-------+------+
| name  | age  |
+-------+------+
| test2 |    2 |
| test3 |    3 |
| test4 |    4 |
+-------+------+

LIKE/REGEXP语句

在 WHERE 子句中搜索列中的指定模式,指定模式由通配符组成

通配符
通配符描述
%替代一个或多个字符,使用like
_仅替代一个字符,使用like
[charlist]字符列中的任何单一字符,使用regexp/not regexp
[^charlist]或者[!charlist]不在字符列中的任何单一字,使用regexp/not regexp
  • 语法
SELECT column1, column2....columnN FROM table_name
WHERE column_name LIKE { PATTERN };
  • 示例
mysql> select * from user where name like 'test%';
+-------+------+
| name  | age  |
+-------+------+
| test1 |    1 |
| test2 |    2 |
| test3 |    3 |
| test4 |    4 |
| test4 |    5 |
+-------+------+
mysql> select * from user where name regexp 'test[23]';
+-------+------+
| name  | age  |
+-------+------+
| test2 |    2 |
| test3 |    3 |
+-------+------+

ORDER BY语句

根据指定的列对结果集进行排序,默认为升序;降序使用DESC关键字

  • 语法
SELECT column-list
FROM table_name
[WHERE condition]
[ORDER BY column1, column2, .. columnN] [ASC | DESC];
  • 示例
mysql> select * from user where name like 'test%' order by age DESC;
+-------+------+
| name  | age  |
+-------+------+
| test4 |    5 |
| test4 |    4 |
| test3 |    3 |
| test2 |    2 |
| test1 |    1 |
+-------+------+
5 rows in set (0.00 sec)

TOP、LIMIT和POWNUM语句

SELECT TOP 子句用于规定要返回的记录的数目。

SELECT TOP 子句对于拥有数千条记录的大型表来说,是非常有用的

MySQL 支持 LIMIT 语句来选取指定的条数数据, Oracle 可以使用 ROWNUM 来选取。

  • mysql语法
SELECT column-list
FROM table_name
LIMIT number;
  • 示例
mysql> select * from user limit 2;
+-------+------+
| name  | age  |
+-------+------+
| test1 |    1 |
| test2 |    2 |
+-------+------+
mysql> select * from user order by age desc limit 2;
+-------+------+
| name  | age  |
+-------+------+
| test4 |    5 |
| test4 |    4 |
+-------+------+

INSERT语句

用于向表中插入新记录

  • 语法
INSERT INTO 
TABLE_NAME (column1, column2, column3,...columnN) 
VALUES (value1, value2, value3,...valueN);

要为表中所有的字段都添加数据,指定顺序不需要明确写出字段名即可

INSERT INTO 
TABLE_NAME 
VALUES (value1,value2,value3,...valueN);
  • 示例
mysql> insert into user (name,age) values ('newtest',100);
Query OK, 1 row affected (0.01 sec)
mysql> select * from user;
+---------+------+
| name    | age  |
+---------+------+
| test1   |    1 |
| test2   |    2 |
| test3   |    3 |
| test4   |    4 |
| test4   |    5 |
| newtest |  100 |
+---------+------+

指明顺序添加,可以不需要维护id,id会自动自增被插入管理

mysql> insert into user  values ('newtest1',101);
Query OK, 1 row affected (0.00 sec)

mysql> select * from user;
+----------+------+
| name     | age  |
+----------+------+
| test1    |    1 |
| test2    |    2 |
| test3    |    3 |
| test4    |    4 |
| test4    |    5 |
| newtest  |  100 |
| newtest1 |  101 |
+----------+------+

UPDATE语句

用以更新表中匹配的某些行记录

UPDATE TABLE_NAME set column1=value1, column2=value2, ... ,columnN=columnN
WHERE CONDITION

比如更新某个表中用户的年纪为新的

update user set age=16

DELETE语句

删除匹配的行记录

DELETE FROM TABLE_NAME
WHERE CONDITION

一般都不会删除表中的一条,这可能由于一些外键约束导致无法维护表的完整性,一般只会对记录设置逻辑删除

比如删除一个账号为test的用户

delete from user where `account`='test'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

李恩泽的技术博客

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

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

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

打赏作者

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

抵扣说明:

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

余额充值