--创建一个简单的表create table student( name varchar2(20), age number(3));--插入新纪录insert into student values('Tom',18);--查询记录select * from student;--查看表结构(desccribe)命令窗口desc student;--删除表drop table student;SQL语句分类1.Select查询语句2.DML语句(数据操作语言)insert update delete merge3.DDL语句(数据定义语言)create alter drop truncate4.DCL语句(数据控制语言)grant revoke5.事务控制语句commit rollback savepointselect *|{<列名或者字段名>,,,,} from <表名>;算术表达式在SELECT语句中,对NUMBER型数据可以使用算术运算符创建表达式。select name,age,sal,sal*12 from emp;算术运算符+ - * / 运算优先级1.乘除高于加减2.同级从左到右3.用()强行改变运算顺序select empno,ename,sal,sal*12+1000 from emp;select empno,ename,sal,sal*(12+1000) from emp;连接运算符(实际应用较少,目的为了改变现实效果。实际中,会在其他应用中进行此操作。--了解--)连接运算符‘||’可以把列和字符 、或其他表达式连接在一起,得到一个新的字符串,实现‘合成’列的功能。("转义符,代表字符串常量中的单引号 --> SQL)(‘代表字符串常量的分隔标记)用法列举:select ename||'is a'||job from emp;select empno,ename||'"s annual salary is'||sal*12from emp;注意语句的可读性字段别名1.重命名查询结果中的字段,以增强可读性2.如果别命中使用特殊字符,或者是强制大小写敏感、空格、、、使用双引号select <字段名>|<表达式>【【AS】<字段别名>】,,from <表名>;select empno as 员工编号,ename 员工姓名,sal*12 "年薪" from emp;select empno,ename"Ename",sal*12"Anual S alary"from emp;空值(掌握)1.无效的、未指定的、未知的或不可预知的值。2.空值不等于空格或者0。类似相当于null吧在表达式中使用空值1.算术表达式中如果出现空值,则整个表达式结果为空。后果很严重。2.连接表达式中出现的空值被当做一个空的(长度为零的)字符串处理去除重复行1.在缺省情况下,查询结果中包含所有符合条件的记录行,包括重复行。select deptno from emp;(部门编号有可能很多相同)2.使用distinct关键字可从查询结果中清楚重复行select distinct deptno from emp;3.distinct的作用范围是后面所有字段的组合select distinct deptno,job from emp;查询结果排序(掌握)1.查询结果缺省按照记录的插入顺序进行排列2.也可使用order by 子句对查询结果进行排序,排序方式包括升序(asc,缺省)和降序(desc)两种;select empno,ename,sal from emp order by sal;select empno,ename,sal from emp order bu sal desc;3.按多字段排序select deptno,empno,name,sal from emp order bydeptmo(desc),sal(desc);4.使用字段别名排序select empno,ename,sal*12 annsal from emp order byannsal;条件查询(重中之重)select *|{[distinct]<字段名>|<表达式>[<别名>],,,}from <表名> [where <查询条件>];查询语句中使用字符串和日期1.字符串和日期值要用单引号扩起来2.字符串常量内容大小写敏感3.日期值格式敏感,缺省的日期格式是'DD-MON-RR'select * from emp where ename='SMITH';select * from emp where hiredate='02-4月-81';4.获取当前缺省日期格式select sysdate from dual;(dual表是平时学习练习用的表,只有一行一列。真实中是不用的。)比较运算符1. > >= = < <= <>不等于( != 较少用到)2.between(小值)...and(大值)...界于两值之间,包括边界3.in(set) 出现在集合中4.like 模糊(通配)查询1>%表示零或多个字符2>_表示一个字符3>对于特殊符号可以使用escape标识符来查找4>字符串常量中:两个单引号-->一个单引号(插入数据经常用到)select * from emp where ename like '%\_'escape'\';5.判断空值 is (not) null 为空值select * from emp where comm is null;注意:0和null的区别;逻辑运算符(优先级)1.not '非'(高)select * from emp where deptno not in(20,30,40);2.and '与'(中)select * from emp where deptno=20 and sal>2000;3.or '或'(低)select * from emp where deptno=20 or sal>2000;注意:与和或的查询结果差异性,后者比前者条件限制小SQL-->关键字大小写不敏感;运算符优先级(同级:左-->右)1 * /2 + -3 ||4 = > >= < <= <>(不等于 !=)5 is (not) null;like;(not) in6 (not)between...and... 7 not8 and(但是)9 or10 可使用小括号强行改变运算顺序select * from emp where job='SALESMAN' or job='CLERK' and sal>=1280;分析:先=次and后or翻译:工作是文秘但是薪资大于等于1280的记录或者工作是销售员的记录都符合所查条件;select * from emp where (job='SALESMAN' or job='CLERK') and sal>=1280;注意:小括号翻译:查找要求即工作是销售员或文秘但是薪资大于等于1280的记录;比较:后者较之前者条件明显放宽;