数据库的SQL语句不区分大小写
查询表中所有数据
SELECT * FROM 表名
查询表中某些字段的数据
SELECT 要查的字段(多个使用逗号分隔) FROM 表名
去除字段中的重复数据
(DISTINCT)
SELECT DISTINCT 字段 FROM 表名
WHERE 子句用于过滤记录。
选取满足某一条件的的数据
(where)
SELECT * FROM 表名 WHERE name=“条件”
下面的运算符可以在 WHERE 子句中使用:
运算符 |
描述
|
---|---|
= | 等于 |
<> | 不等于。注释:在 SQL 的一些版本中,该操作符可被写成 != |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
BETWEEN | 在某个范围内 |
LIKE | 搜索某种模式 |
IN |
指定针对某个列的多个可能值
|
逻辑运算
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录
And:与 同时满足两个条件的值。(两个同时满足)
Select * from emp where sal > 2000 and sal < 3000;
查询 EMP 表中 SAL 列中大于 2000 小于 3000 的值。
Or:或 满足其中一个条件的值(满足其中之一)
Select * from emp where sal > 2000 or comm > 500;
查询 emp 表中 SAL 大于 2000 或 COMM 大于500的值。
Not:非 满足不包含该条件的值。(不满足条件的)
select * from emp where not sal > 1500;
查询EMP表中 sal 小于等于 1500 的值。
逻辑运算的优先级:
() not and or
特殊条件
1.空值判断: is null
Select * from emp where comm is null;
查询 emp 表中 comm 列中的空值。
2.between and (在 之间的值)
Select * from emp where sal between 1500 and 3000;
查询 emp 表中 SAL 列中大于 1500 的小于 3000 的值。
注意:大于等于 1500 且小于等于 3000, 1500 为下限,3000 为上限,下限在前,上限在后,查询的范围包涵有上下限的值。
3.In(查询等于多个条件的数据)
Select * from emp where sal in (5000,3000,1500);
查询 EMP 表 SAL 列中等于 5000,3000,1500 的值。
4.like
Like模糊查询(查询包含条件的所有数据)
Select * from emp where ename like 'M%';
查询 EMP 表中 Ename 列中有 M 的值,M 为要查询内容中的模糊信息。
- % 表示多个字值,_ 下划线表示一个字符;
- M% : 为能配符,正则表达式,表示的意思为模糊查询信息为 M 开头的。
- %M% : 表示查询包含M的所有内容。
- %M_ : 表示查询以M在倒数第二位的所有内容。
ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。(默认按照升序,如果需要按照降序对记录进行排序,您可以使用 DESC 关键字)
升序
SELECT * FROM 表名
ORDER BY 要排序的字段;
ORDER BY 要排序的字段;
降序
SELECT * FROM 表名
ORDER BY 要排序的字段 DESC;
ORDER BY 要排序的字段 DESC;
INSERT INTO 语句用于向表中插入新记录。
INSERT INTO 表名(或者指定字段)
VALUES (数据1,数据2,数据3,...);
VALUES (数据1,数据2,数据3,...);
UPDATE 语句用于更新表中已存在的记录。
UPDATE 表名
SET
字段1
=
'
5000
'
, 字段2
=
'
USA
'
WHERE
根据哪个字段
=
'
菜鸟教程
'
;
DELETE 语句用于删除表中的记录。(当满足WHERE中的条件时进行删除)
DELETE FROM 表名
WHERE 条件1='百度' AND 条件2='CN';
WHERE 条件1='百度' AND 条件2='CN';
SELECT LIMIT用于选取连续的一些数据,多用于分页
查询整张表中的前两条数据
SELECT
*
FROM
表名
LIMIT
2
;
通配符
LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式(多用于模糊查询)
查询表中的name字段以G开头的所有数据( NOT 关键字,可以选取不匹配模式的记录。加于LIKE之前)
SELECT * FROM 表名
WHERE name LIKE 'G%';
REGEXP 或 NOT REGEXP 运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式
选取 name 以 "G"、"F" 或 "s" 开始的所有网站:
SELECT * FROM 表名
WHERE name REGEXP '^[GFs]';
WHERE name REGEXP '^[GFs]';
SQL 语句选取 name 以 A 到 H 字母开头的网站(REGEXP '^[A-H]')
SQL 语句选取 name 不以 A 到 H 字母开头的网站(REGEXP '^[^A-H]')
SELECT * FROM 表名
WHERE name REGEXP '^[A-H]';
WHERE name REGEXP '^[A-H]';
IN 操作符允许您在 WHERE 子句中规定多个值。(字段的值包含XX,IN可以规定多个值,等于规定一个值)
SELECT * FROM 表名
WHERE 字段 IN ('value1','value2');
WHERE 字段 IN ('value1','value2');
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期(不介于两者之间在BETWEEN前面加NOT)
SELECT *
FROM 表名
WHERE column_name BETWEEN value1 AND value2;
FROM 表名
WHERE column_name BETWEEN value1 AND value2;
INNER JOIN两张数据库表关联查询,合并字段(INNER JOIN 与 JOIN 是相同的)
INNER JOIN 关键字在表中存在至少一个匹配时返回行。
SELECT 合并后要显示的所有字段
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;