编写基本的SQL SELECT语句
- 列举 SQL SELECT 语句的功能
- 执行基本 SELECT 语句
1.1. SELECT基本语法
SELECT *|{[DISTINCT] column|expression [alias],...} FROM table;
1.2. 选择全部列
SELECT * FROM departments;
1.3. 选择指定列
SELECT department_id, location_id FROM departments;
1.4. 算数表达式
使用算术运算符(+ - * /)可以创建包含数字和日期数据的表达式
1) 使用算数运算符
SELECT last_name, salary, salary + 300 FROM employees;
2) 算数表达式的优先级
SELECT last_name, salary, 12 * salary + 100 FROM employees
/
SELECT last_name, salary, 12 * (salary + 100) FROM employees
/
注 乘除优先于加减
同一优先级运算符从左向右执行。
括号内的运算先执行
1.5. NULL计算
- NULL是无效的、未指定的、未知的或不可预知的值。
- NULL不是0,也不是空格。
SELECT employee_id, commission_pct + 1, commission_pct - 1, commission_pct * 1, commission_pct / 1
FROM employees
WHERE commission_pct IS NULL;
注 NULL值与任何值进行四则运算后,其结果均为NULL。
1.6. 别名
- 重命名一个列标题
- 便于计算
- 紧跟列名用空格隔开(也可以在列名和别名之间加入关键字‘AS’)。
- 如果它包含空格或特殊字符,或者它是区分大小写的,那么需要双引号
SELECT last_name AS NAME, commission_pct comm FROM employees
/
SELECT last_name "Name", salary * 12 "Annual Salary" FROM employees
/
1.7. 连接符
- 把列与列,列与字符连接在一起。
- 用‘||’表示。
- 可以用来“合成”列。
SELECT last_name || job_id AS "Employees" FROM employees
/
SELECT 'drop table ' || tname || ';' AS drop_tab_sql FROM tab WHERE tabtype = 'TABLE'
/
1.8. 引用操作符
输出显示关键字或操作符的内容,用q'[]'包起来
SELECT department_name || ' Department' || q'['s Manager Id: ]' ||
manager_id AS "Department and Manager"
FROM departments;
/
SELECT department_name || ' Department' || '''s Manager Id: ' || manager_id AS "Department and Manager"
FROM departments;
/
注 [ ] , ! ! , : : , { } , ( ) , < > , . . 等都是可以,但切记,要成对出现
1.9. 重复行
默认的情况下,查询会返回所有的行,包含重复行,使用 distinct 关键字可以去除重复行
显示唯一的department_id(显示中去除重复值)
SELECT DISTINCT department_id FROM employees;
显示唯一的 department_id 和 manager_id(显示中去除department_id,manager_id的重复值)
SELECT DISTINCT department_id,manager_id FROM employees;
注 distinct 的结果是不排序的
1.10. 显示表结构
语法:DESC[RIBE] tablename
DESC departments