前言

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

于是乎,我自己开发了一款面试宝典,希望能帮到大家,也希望有更多的Python新人真正加入从事到这个行业里,让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'