一、SQL的分类
DDL:数据定义语言。
例如:CREATE \ ALTER \ DROP \ RENAME \ TRUNCATE清空
DML:数据操作语言。
例如:INSERT \ DELETE \ UPDATE \ SELECT (增删改查)
DCL:数据控制语言。
例如:COMMIT \ ROLLBACK \ SAVEPOINT \ GRANT \ REVOKE (事务和权限)
二、SQL的书写规范
字符串和时间日期类型的数据用(‘’)表示
列的别名尽量使用(“”),不建议省略as
MySQL在Windows环境下大小写不敏感
在Linux环境对大小写敏感:
数据库名、表名、表的别名、字段名、字段别名等都用小写;SQL关键字、函数名、绑定变量等都用大写
注释:
单行注释:# 、–(--后必须包含一个空格)
多行注释:/* 注释文字 */
导入现有的数据表、表的数据:
方式一:source文件的全路径名
方式二:基于具体的图形化界面的工具可以导入数据
三、基本selec语句
select 1 + 1,3 * 2
from DUAL; #dual:伪表
#*:表示表中的所有字段(或列)
SELECT * FROM employees;
–
SELECT employee_id,last_name,salary
FROM employees;
列的别名
#as:全称:alias(别名),可以省略
#列的别名可以使用一对“”引起来,如果别名当中有空格就必须用引号或AS。
SELECT employee_id emp_id,last_name AS lname,department_id
FROM employees;
去除重复行
#正确的:去重的情况
SELECT DISTINCT department_id
FROM employees;
#错误的:行数和列数不一致
SELECT salary,DISTINCT department_id
FROM employees;
空值参与运算
#1.空值:null
#2.null不等同于0,‘ ’,‘null’
#3.空值参与运算,结果一定也为空,可以用IFNULL(列名,0)替换为0
显示表结构
DESCRIBE employees; #显示了表中字段的详细信息
DESC employees;
DESC departments;
过滤数据
#查询90号部门的员工信息
SELECT * FROM employees;
WHERE department_id = 90; #过滤条件
运算符:
<=>:安全等于,为null而生,1 <=> NULL为0,NULL <=> NULL为1.
转义字符:
SELECT last_name FROM employees
WHERE last_name LIKE ‘__a%’;
#查询第二个字符是——且第三个字符是’a’的员工信息