一、
--练习:
-- 1:DB与DBMS的区别 -- DB:按照一定的数据结构存储数据的仓库 -- DBMS:使用SQL语言管理DB的数据库管理系统 -- 2:修改表中的某一字段名 -- alter table tname rename column oldname to newname -- 3:向表中添加一个新的字段的格式 -- alter table tname add (colName type) -- 4:修改表中某一字段类型的格式 -- alter table tname modify colName type -- 5:查询emp表中的所有人的姓名,首字母大写 select initcap(ename) from emp; -- 6:查看所有员工的职位,使之右对齐 select lpad(job,10,' ') from emp; -- 7:查看所有员工的在职月份,保留整数位 select round(months_between(sysdate,to_date(to_char(hiredate,'yyyy-mm-dd'),'yyyy-mm-dd'))) from emp; -- 8:查看自己40岁的日期 select add_months(to_date('1987-10-12','yyyy-mm-dd'),40*12) from dual;--========================================== 二、日期函数(续) 1:next_day(date,num) 表示查看参数date的下一个周几的日期 date:某一日期 num:范围为1-7,表示周日到周六 2:least(p1,p2,p3,...) 多个参数比较,显示最小的数据 3.greatest(p1,p2,p3,………………) 多个参数比较,显示最大的数据 注意: ①要求:参数为同一类型, ②或者可以默认转换成第一个参数的类型。 ③参数类型基于第一个参数类型,以第一个参数的类型为基准 ④字符串类型比较大小:比较的字符的ascii码的大小。 4:extract( p1分 from p2): 表示从日期p2中提取分量p1 ①日期的分量: year month day hour minute second ②日期类型关键字sysdate和systimestamp,表示当前系统时间 可以从sysdate中提取年月日 可以从systimestamp中提取年月日时分秒 三、空值操作: null:表示空的意思。 1:表中的任何字段,默认情况下都可以为null值。 2:not null表示 非空,是一种约束, 3.设置为非空约束的字段,必须有有效值,不能为空 4:插入数据时,没有赋值的字段都是null值。 reg: insert into emp (empno,ename) values(2001,'张三'); 此记录中,没有赋值的字段都是null值。 reg: insert into emp (empno,ename) values(2002,null); 此记录中,字段ename为null值。 5:修改数据时, (1)当空值为条件时 update emp set ename='张三' where comm is null; (2)当被设置为null时, update emp set ename = null; 6:当空值参与计算时。 null:相当于无穷大 1+null为null null也不等于null reg:计算员工的月收入 select sal+comm from emp; 明显结果有问题。四、空值操作函数:
1)nvl(p1,p2) 表示:如果p1这个字段的值为null,就使用p2 否则使用本身p1 (2)nvl2(p1,p2,p3) 表示:如果p1是null,就使用p2, 如果p2是null,使用p3