1、SQL语句分类:
l DML(数据操作语言):数据的更新与查询操作(SELECT、FROM、INSERT、GROUP BY、HAVING、WHERE、UPDATE、DELETE),在开发之中几乎都是以DML操作为主的。
l DDL(数据定义语言):数据库对象的定义语言,例如:数据表、约束、索引、同义词、用户;数据库设计的时候都必须掌握。
l DCL(数据库控制语言):数据库的权限控制
重点在于DML和DDL的学习上。
2、scott用户表
l 想知道某个用户(模式)所有的数据表:
SELECT * FROM tablename;
l 查询表结构:
DESC tablename
3、简单查询:
SELECT [DISTINCT] * | 列 [别名],列 [别名],…FROM 表名称 [别名];
- DISTINCT 表示消除重复数据
- 如果SELECT子句中出现了 * 表示显示表中所有的数据
- 支持四则运算 例:
SELECT ename,job,sal*12 FROM emp;
4、数据连接:
SELECT 列名||列名 FROM 表名称;
规定格式,考虑两种类型的数据:
- 普通数字:
SELECT 列名||数字 FROM 表名;
- 字符串:
SELECT 列名|| '字符'FROM 表名;
例:编号:XXXXX,姓名:XXXXX
SELECT '编号:'||empno||',姓名:'||ename FROM emp;
5、限定查询:
SELECT [DISTINCT] * | 列 [别名],列 [别名],…FROM 表名称 [别名][WHERE 限定条件(s)];
限定符:
- 关系运算:>、=、<、>=、<=、!=(<>);
- 范围运算:BETWEEN…AND;
- 空判断:IS NULL、IS NOT NULL;
- IN空判断:IN、NOT IN、exists()(复杂查询);
例:
SELECT * FROM emp WHERE empno IN(7369,7566,7788,9999);
在使用NOT IN的时候如果查找的数据范围之中含有Null值,不会有任何查询结果返回,IN操作无此限制。
- 模糊查询:LIKE、NOT LIKE
匹配符号:
“_”匹配任意的一位符号
“%”匹配任意的符号(包含匹配0位、1位、多位)
例:
SELECT * FROM emp WHERE ename LIKE ’A%’; --查找姓名开头为A的信息
SELECT * FROM emp WHERE ename LIKE ’_M%’; --查找姓名第二个字母是M的信息
SELECT * FROM emp WHERE ename LIKE ‘%A%’; --查找姓名中任意位置上存在有字母A的信息
关于LIKE的两点说明:
l 如果在使用LIKE进行限定查询的时候,没有设置任何关键字,那么表示查询全部
例:
SELECT * FROM emp WHERE ename LIKE ‘%%’;
l LIKE可以在任意的数据类型上使用(原生支持)
例:
SELECT * FROM emp WHERE ename LIKE ‘%A%’OR sal LIKE’%1%’OR hiredate LIKE’%81%’;
以上的限定符只能够判断一次,若干个限定符连接,可以使用逻辑运算:AND(与)、OR(或)、NOT(非);
l 与操作表示的所有判断条件都满足时返回真(true);
l 或操作表示若干个判断条件只要有一个满足就返回真(true)。
6、查询排序:
SELECT [DISTINCT] * | 列 [别名],列 [别名],…FROM 表名称 [别名][WHERE 限定条件(s)][ORDER BY排序字段[ASC|DESC],排序字段[ASC|DESC],…];
l 升序:ASC,默认不写排序也是升序;
l 降序:DESC,由高到低进行排序。