SQL
语法
SELECT 、FROM、WHERE、GROUP BY、HAVING、ORDER BY、INSERT、UPDATE、DELETE、CREATE、DROP、ALERT、GRANT、REVOKE
SQL分为三种类型
DML(数据操作语言):主要指数据库的查询与更新操作; DDL(数据定义语言):主要指的是数据对象的创建(表,用户); DCL(数据库控制语言):主要是进行权限的管理操作;
SCOTT用户,一共有四张表
命令一:查询一个用户下的所有数据表
SELECT* FROM tab;
命令二:查询一个表的结构
DESC 表名称
1、部门信息表(dept)
No
字段名
类型
描述
1
DEPTNO
NUMBER2(2)
表示部门编号,最多由2位数字组成
2
DNAME
VARCHAR2(14)
表示部门名称,最多由14个字符组成
3
LOC
VARCHAR2(13)
表示部门位置,最多由13个字符组成
2、雇员表(emp)
No
字段名
类型
描述
1
EMPNO
NUMBER(4)
雇员编号,最多有4位数字组成
2
ENAME
VARCHAR2(10)
雇员姓名
3
JOB
VARCHAR2(9)
雇员职位
4
MGR
NUMBER(4)
雇员的领导的编号
5
HIREDATE
DATE
雇佣日期
6
SAL
NUMBER(7,2)
基本工资,小数点最多占2位,整数最多占5位
7
COMM
NUMBER(7,2)
佣金(提成)一般只有销售才有
8
DEPTNO
NUMBER(2)
所属部门的编号
3、工资等级表(salgrade)
No
字段名
类型
描述
1
GRADE
NUMBER
工资等级编号
2
LOSAL
NUMBER
此等级的最低工资
3
HISAL
NUMBER
此等级的最高工资
4、工资表(bonus)
No
字段名
类型
描述
1
ENAME
VARCHAR2(10)
雇员姓名
2
JOB
VARCHAR2(9)
雇员职位
3
SAL
NUMBER
雇员工资
4
COMM
NUMBER
雇员佣金
bonus表中没有任何数据
SQL简单查询
1、SELECT[DISTINCT] 字段名1,字段名2 … * FROM 表名;
SELECT * FROM emp; SELECT ename,job FROM emp;
2、消除重复DISTINCT
SELECT DISTINCT job FROM emp;
3、连接输出列:||
SELECT empno || ename 别名 FROM emp;
SQL限定查询
SELECT*|字段名[别名]… FROM 表名;
1、关系运算符
>、<、>=、<=、<>(!=);
2、逻辑运算符
AND、OR、NOT;
SELECT * FROMemp WHERE NOT sal >2000;
3、范围运算符
BETWEEN…AND;
BETWEEN 最小值(数字,日期) AND 最大值; 闭区间
4、谓词范围
IN、NOT IN;
SELECT * FROM empWHERE empno IN (7369 , 7566 , 9999 ) ;
NOT IN (不能有 null ) 否则不会有任何结果返回 ;
5、空判断
IS NULL、IS NOT NULL;
空不代表 0 ;
6、模糊查询
LIKE;
通配符:
‘_’:匹配任意一位字符; ‘%’:匹配任意的零位、一位或多位字符;
注意:
LIKE可以应用在各种数据类型上,不一定非要是字符串;
SELECT* FROM emp WHERE empno LIKE ‘%9%’ ;
在使用LIKE模糊查询的时候,如果不设置查询关键字,表示查询全部; SELECT * FROM emp WHERE empno LIKE ‘%%’ ;
SQL查询排序(ORDER BY)
(3)SELECT
(1)FROM
(2)WHERE
(4)ORDER BY 字段 [ASC | DESC] , 字段 [ASC |DESC] , … ;
默认ASC排序,升序;DESC降序;