-- SQL 语言可以分为三类
-- DML: 数据操纵语言。(对标的 - 增 删 改 查)
-- DDL:数据定义语言。(表的创建,删除,修改)
-- DCL: 数据控制语言。(commit,rollback)
命令行查看数据库 (也可以在客户端图形化界面操作)
-- 查看数据库
SHOW DATABASES;-- 选择数据库
USE test; -- test:数据库的名字-- 查看表
SHOW TABLES;
SELECT first_name -- select 表的列名(可以有多个,多个之间用","分开)
FROM employees; -- from 表名
SELECT first_name,salary
FROM employees
SELECT first_name,SALARY
FROM employees7t
SELECT * -- 代表所有的列
FROM employees;
SELECT first_name "first name", salary ss
FROM employees
SELECT first_name AS fn
FROM employees
DESC employees;
注意:
【1 】语法:
SQL 语言大小写不敏感。
SQL 可以写在一行或者多行
关键字不能被缩写也不能分行
各子句一般要分行写。
使用缩进提高语句的可读性。
【2】别名
重命名一个列。
便于计算。
紧跟列名,也可以在列名和别名之间加入关键字‘AS’,别名使用双引号,以便在别名中包含空格或特殊的字符并区分大小写。
【3】关于字符串
日期和字符只能在单引号中出现。
每当返回一行时,字符串被输出一次。
【1】比较运算
【2】其他运算
过滤和排序数据
【1】过滤
-- where + 过滤条件
-- 需求:查询90 好部门的所有员工
SELECT *
FROM employees
WHERE department_id=90 -- 注意:不是 ==
-- 需求:查询薪水大于5000的所有员工
SELECT first_name,salary
FROM employees
-- 注意: where 只能放在from 的后面
WHERE salary>5000
-- 需求:查询薪水不等于5000的员工
SELECT salary
FROM employees
WHERE salary <> 5000
SELECT salary
FROM employees
WHERE salary!=5000
【2】between and (使用 BETWEEN 运算来显示在一个区间内的值)
-- 需求: 查询薪水在7000-8000的所有员工
SELECT *
FROM employees
WHERE salary BETWEEN 7000 AND 8000;
【3】 and (相当于java中的 与(&&) )or (相当于java中的或(||))
SELECT *
FROM employees
-- and 相当于java中的 与(&&)
WHERE salary <= 8000 AND salary>=7000
【4】 in (使用 IN运算显示列表中的值。)
-- 需求: 查询部门为70 或者 80 或者 90的员工
SELECT *
FROM employees
WHERE department_id = 70 OR department_id=80 OR department_id=90
SELECT *
FROM employees
WHERE department_id IN(70,80,90)
【5】like 用于模糊查询
使用 LIKE 运算选择类似的值
选择条件可以包含字符或数字:
% 代表零个或多个字符(任意个字符)。
_ 代表一个字符。
-- 需求: 查找员工姓名中包含a 字母的员工
SELECT first_name
FROM employees
WHERE first_name LIKE ‘%a%‘;
SELECT first_name
FROM employees
WHERE first_name LIKE ‘a%‘;
-- 需求: 查找姓名中第二个字母为a的员工
SELECT first_name
FROM employees
WHERE first_name LIKE ‘_a%‘
【6】ESCAPE 转义字符
回避特殊符号的:使用转义符。例如:将[%]转为[$%]、[_]转为[$_],然后再加上[ESCAPE ‘$’] 即可。
【7】NULL 使用 IS (NOT) NULL 判断空值。
-- 需求:查找奖金率为Null 的员工
SELECT commission_pct ,first_name
FROM employees
WHERE commission_pct IS NULL
-- 需求: 查找奖金率不为null的员工
SELECT commission_pct,first_name
FROM employees
WHERE commission_pct IS NOT NULL
【8】 排序: order by
ASC(ascend): 升序
DESC(descend): 降序
ORDER BY 子句在SELECT语句的结尾。
-- 需求: 按照工资进行排序
SELECT salary
FROM employees
ORDER BY salary ASC -- 升序
SELECT salary
FROM employees
ORDER BY salary DESC -- 降序
-- 二级排序,在manager_id 相同的情况下,salary 进行降序
SELECT manager_id ,salary
FROM employees
ORDER BY manager_id,salary DESC
-- 需求: 将员工部门为90好部门的员工的薪水按照降序排序
SELECT department_id , salary
FROM employees
WHERE department_id = 90
ORDER BY salary DESC
-- 按照别名进行排序
SELECT salary s
FROM employees
ORDER BY s DESC
原文:https://www.cnblogs.com/wushaopei/p/11732793.html