数据库SQL语言
DML:数据操纵语言
《1》基本的SELECT语句
-
SELECT:标识选择哪些列。
-
FROM :标识从哪个表中选择。
SELECT employee_id, last_name,salary FROM employees;
-
选择全部列
SELECT * FROM employess
-
选择特定的列
SELECT employee_id, last_name FROM employees;
-
注 意
-
SQL 语言大小写不敏感。
-
SQL 可以写在一行或者多行
-
关键字不能被缩写也不能分行
-
子句一般要分行写。
-
使用缩进提高语句的可读性。
-
列的别名
-
列的别名设置:SQL中给列起别名时,可以直接空格赋值,也可以使用关键字AS,加“”都可以。
注意如果列名中间有空格 s s, 则需要双引号括起来
SELECT employee_id id, last_name "name",salary AS sal, salary*12(1+commission_pct) sa FROM employees;
-
字符串
- 日期和字符只能在单引号中出现。
- 每当返回一行时,字符串被输出一次。
-
显示表结构
- 使用 DESCRIBE 命令,表示表结构
- DESCRIBE employees;
《2》过滤和排序
- 在查询中过滤行
- 使用WHERE 子句,将不满足条件的行过滤掉。
- WHERE 子句紧随 FROM 子句
SELECT salary
FROM employees;
WHERE salary>8000
-------------------
SELECT employee_id, last_name, job_id, department_id
FROM employees
WHERE department_id = 90 ;
- 比较运算
操作符 | 含义 |
---|---|
= | 等于 (不是 ==) |
> | 大于 |
>= | 大于、等于 |
< | 小于 |
<= | 小于、等于 |
<> | 不等于 (也可以是 !=) |
赋值使用 := 符号
SELECT last_name, salary
FROM employees
WHERE salary <= 3000;
-
其它比较运算
操作符 含义 BETWEEN…AND… 在两个值之间 (包含边界) IN(set) 等于值列表中的一个 LIKE 模糊查询 IS NULL 空值 IS NOT NULL 非空 -
BETWEEN:使用 BETWEEN 运算来显示在一个区间内的值
SELECT last_name, salary FROM employees WHERE salary BETWEEN 2500 AND 3500;
-
IN:使用 IN运算显示列表中的值
SELECT employee_id, last_name, salary, manager_id FROM employees WHERE manager_id IN (100, 101, 201);
-
LIKE:
- 使用 LIKE 运算选择类似的值
- 选择条件可以包含字符或数字:
- % 代表零个或多个字符(任意个字符)。
- _: 代表一个字符。
SELECT first_name FROM employees WHERE first_name LIKE 'S%';
-
LIKE :‘%’和‘_’可以同时使用
- **ESCAPE:**回避特殊符号的:使用转义符。例如:将[%]转为[ %]、[_]转为[ _],然后再加上[ESCAPE ‘$’] 即可。
- 如果使用\表示转义,要省略escape。如果不是\,则要加上escape
-
NULL:使用 IS (NOT) NULL 判断空值。
SELECT last_name, manager_id FROM employees WHERE manager_id IS NULL;
-
逻辑运算
-
AND: 要求并的关系为真。
SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary >=10000 AND job_id LIKE '%MAN%';
-
OR:要求或关系为真
SELECT employee_id, last_name, job_id, salary FROM employees WHERE salary >= 10000 OR job_id LIKE '%MAN%';
-
NOT
SELECT last_name, job_id FROM employees WHERE job_id NOT IN