本文共 2563 字,大约阅读时间需要 8 分钟。
DML
:Data Manipulation Language
数据操纵语言,用于查询与修改数据记录,包括如下SQL语句: - INSERT
:添加数据到数据库中 - UPDATE
:修改数据库中的数据 - DELETE
:删除数据库中的数据 - SELECT
:选择(查询)数据DDL
:Data Definition Language
数据定义语言,用于定义数据库的结构,比如创建、修改或删除数据库对象,包括如下SQL语句: - CREATE TABLE
:创建数据库表 - ALTER TABLE
:更改表结构、添加、删除、修改列长度 - DROP TABLE
:删除表 - CREATE INDEX
:在表上建立索引 - DROP INDEX
:删除索引 注意:DDL
无法ROLLBACK
回滚。DCL
:Data Control Language
数据控制语言,用来控制数据库的访问,包括如下SQL语句: - GRANT
:授予访问权限 - REVOKE
:撤销访问权限 - COMMIT
:提交事务处理 - ROLLBACK
:事务处理回退 - SAVEPOINT
:设置保存点 - LOCK
:对数据库的特定部分进行锁定标点符号需要是英文格式下的。
SELECT *|{ [DISTINCT] column|expression [alias],...} FROM table;
SELECT
标识选择哪些列。FROM
标识从哪个表中选择。+
-
*
/
:=
符号=
等于、>
大于、>=
大于等于、<
小于、<=
小于等于、<>
或!=
不等于。BETWEEN … AND …
在两个值之间(包含边界) - IN(set)
等于值列表中的一个 - LIKE
模糊查询 - IS NULL
空值LIKE
选择条件可以包含字符或数字: - %
代表零个或多个字符(任意个字符) - _
代表一个字符 - %
和-
可以同时使用 - 可以使用 ESCAPE
标识符 选择%
和 _
符号ESCAPE
:是回避特殊符号的:使用转义符。例如:将%
转为\%
、_
转为\_
,然后再加上ESCAPE ‘\’
即可NULL
:使用 IS (NOT) NULL
判断空值SELECT last_nameFROM employeesWHERE last_name LIKE '_o%';
SELECT job_idFROM jobsWHERE job_id LIKE 'IT\_%' ESCAPE '\';
SELECT last_name,manager_idFROM employeesWHERE manager_id IS NULL;
优先级 | 运算符 |
---|---|
1 | 算术运算符 |
2 | 连接符 |
3 | 比较符 |
4 | IS [NOT] NULL,LIKE,[NOT] IN |
5 | [NOT] BETWEEN |
6 | NOT |
7 | AND |
8 | OR |
空值即为空。空值是无效的,未指定的,未知的或不可预知的值。空值不是空格或者0。
包含空值的数学表达式的值都为空值。
目的是重命名,简化名称,方便计算。方式如下:
SELECT last_name,commission_pct comm FROM employees;
SELECT last_name AS name,commission_pct comm FROM employees;
SELECT last_name "Name",salary*12 "Annual Salary" FROM employees;
别名使用双引号。
把列与列,列与字符连接在一起,可以用来“合成”列。相当于Java中的“+
”。
SELECT last_name || job_id AS "Employees" FROM employees;
SELECT
列表中的一个字符,数字,日期。SELECT last_name || ' is a ' || job_idAS "Employee Details"FROM employees;
默认情况下,查询会返回全部行,包括重复行。在 SELECT
子句中使用关键字 ‘DISTINCT
’ ,可以删除重复行。
SELECT DISTINCT department_idFROM employees;
DESC[RIBE] tablename
使用WHERE
子句,将不满足条件的行过滤掉。
WHERE
子句紧随 FROM
子句。
SELECT *|{ [DISTINCT] column|expression [alias],...}FROM table[WHERE condition(s)];
ASC
升序;DESC
降序。
ORDER BY
子句在SELECT
语句的结尾。
可以使用不在SELECT
列表中的列排序
SELECT last_name,job_id,department_id,hire_dateFROM employeesORDER BY hire_date DESC;
按别名排序:
SELECT employee_id,last_name,salary*12 annsalFROM employeesORDER BY annsal;
多个列排序:
SELECT last_name,department_id,salaryFROM employeesORDER BY department_id,salary DESC;
转载地址:http://fgiwi.baihongyu.com/