mysql常用命令

select

1
2
3
4
5
6
7
8
9
SELECT * FROM table_name; # 选取所有内容

SELECT DISTINCT column_name,column_name
FROM table_name; # 一个列可能包含不同的值,该句可以列出不同的值

SELECT column_name,column_name
FROM table_name
WHERE column_name operator value; # OPERATOR部分可以是: =,>,<,between,in,like
# WHERE后可以跟逻辑符号 and,or,not

mysql语句对大小写不敏感,select == SELECT

1
2
3
4
5
6
7
select * from emp where not sal > 1500;

Select * from emp where comm is null;

Select * from emp where sal in (5000,3000,1500);

SELECT * FROM Websites WHERE alexa > 15 AND (country='CN' OR country='USA'); # AND和OR可以结合使用

Like模糊查询

1
Select * from emp where ename like 'M%';

查询 EMP 表中 Ename 列中有 M 的值,M 为要查询内容中的模糊信息。

  • % 表示多个字值,**_** 下划线表示一个字符;
  • M% : 为能配符,正则表达式,表示的意思为模糊查询信息为 M 开头的。
  • %M% : 表示查询包含M的所有内容。
  • %M_ : 表示查询以M在倒数第二位的所有内容。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC; # 默认是升序

INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...); # 这种方式可以向table_name表格中插入一行,可以只向某一列插入,其他自动

UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value; # 用于更新某条记录
# 比如:
UPDATE Websites
SET alexa='5000', country='USA'
WHERE name='菜鸟教程';

DELETE FROM table_name
WHERE some_column=some_value; # 删除某一行记录

高级用法

join

img
1
2
3
4
5
# QL INNER JOIN(简单的 JOIN)。 SQL INNER JOIN 从多个表中返回满足 JOIN 条件的所有行。
SELECT Websites.id, Websites.name, access_log.count, access_log.date
FROM Websites
INNER JOIN access_log
ON Websites.id=access_log.site_id;
  • INNER JOIN:如果表中有至少一个匹配,则返回行
  • LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
  • RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
  • FULL JOIN:只要其中一个表中存在匹配,则返回行

union

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。

1
2
3
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。

SQL UNION ALL 语法

1
2
3
SELECT column_name(s) FROM table1
UNION ALL
SELECT *column_name(s) FROM table2;

注释:UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。

前者只会列出选出的值中不同的一些数据条,后者是所有的都返回。

Count

COUNT() 函数返回匹配指定条件的行数。


SQL COUNT(column_name) 语法

COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):

1
SELECT COUNT(column_name) FROM table_name;

SQL COUNT(*) 语法

COUNT(*) 函数返回表中的记录数:

1
SELECT COUNT(*) FROM table_name;

SQL COUNT(DISTINCT column_name) 语法

COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目:

1
SELECT COUNT(DISTINCT column_name) FROM table_name;

注释:COUNT(DISTINCT) 适用于 ORACLE 和 Microsoft SQL Server,但是无法用于 Microsoft Access。