达内数据库五天笔记

上传人:第*** 文档编号:32828050 上传时间:2018-02-12 格式:DOC 页数:75 大小:247.50KB
返回 下载 相关 举报
达内数据库五天笔记_第1页
第1页 / 共75页
达内数据库五天笔记_第2页
第2页 / 共75页
达内数据库五天笔记_第3页
第3页 / 共75页
达内数据库五天笔记_第4页
第4页 / 共75页
达内数据库五天笔记_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《达内数据库五天笔记》由会员分享,可在线阅读,更多相关《达内数据库五天笔记(75页珍藏版)》请在金锄头文库上搜索。

1、 达内 Oracle的五天笔记 1.1. SQLPLUS的命令 初始化表的位置: set NLS_LANG=american_america.us7ascii (设置编码才可以使用下面脚本) cd $ORACLE_HOME/rdbms cd demo summit2.sql * 我们目前使用的是oralce 9i 9201 版本 select * from v$version; 恢复练习表命令: sqlplus */* summit2.sql /shell要在这个文件的位置。 登陆oracle的命令: sqlplus 用户名/密码 show user 显示当前登陆的身份. set pause

2、on set pause off 分页显示. oracle中默认日期和字符是左对齐,数字是右对齐 table or view does not exist ; 表或示图不存在 edit 命令用于自动打开vi修改刚修执行过的sql 的命令。 修改方法二: l 3 先定位到行 c /旧串/新串 执行出错时,利用错误号来查错误: !oerr ora 942 (装完系统后会装一个oerr 工具,用于通过错误号来查看错误的具体信息) 想在sql中执行unix命令时,把所有的命令前加一个! 就可以, 或者host( 用于sql 从切换至unix环境中去) /* 初次使用时注意 * 运行角本时的命令: 先切

3、换到unix环境下,cd $oracle_home cd sqlplus cd demo 下面有两个角本 建表语句。 demobld.sql sqlplus nanjing/nanjing demobid.sql 直接运行角本,后面跟当前目录或者是绝对路径 保存刚才的sql语句: save 命令 第二次保存时要替换之前的角本 save 文件名 replace 把刚才保的sql重新放入 buffer中 spool on 开启记录 spool off 关闭记录 spool 文件名 此命令会把所有的操作存在某个文件中去 常见缩写: nls national language support 国家语言

4、支持 1.2. SQL的结构 |DDL 数据库定义 |DML 数据库管理 SQLCommit rollback |DCL 数据库控制 |grant+revoke 权限管理 表分为:系统表(数据字典),用户表 注:知道数据字典可以更便于使用数据库。 1.3. SQL语句 1.3.1. 纵向投影操作 select select * from student; select name|?|id|? EMPLOYEE from employee; select name,salary*13 from employee; NVL function 如果原来的数值是null的话,由指定数值替代。 sele

5、ct last_name,title,salary*NVL(commission_pct,0)/100 COMM from s_emp; 1.3.2. column使用 column(col) columnName clear/format/heading/justify format column salary format $9999999.00 设置数字显示形式 column name fromat a15; 设置字符串显示 15个字符 column salary justify left/right/center 输出格式 column salary heading text 设置显示

6、的字段名 column clear 清除格式 column last_name;显示该字段名所用的格式 column salary justify left format $99,999.00 ( 定义工资的显示形式 ) 1.3.3. order by ORDER BY 排序 升序和降序 ASC 升序(默认) DESC 降序 select * from s_emp order by dept_id , salary desc 部门号升序,工资降序 关键字distinct也会触发排序操作。 select * from employee order by 1; /按第一字段排序 NULL被认为无穷

7、大。order by 可以跟别名。 1.3.4. where 选择操作(横向投影) where 条件一定是根据某个字段来进行过滤操作. select * from s_emp where dept_id=42; 查看部门号为42的所有员工 select * from s_emp where salary1000 查看工资高于1000 的所有员工 select salary from s_emp where first_name=Geroge 找出名字为 Geroge的员工的工资数 select table_name from user_tables where table_name=S_EMP

8、; 查某个具体表名时,表名的字符串必须要为大写 或者采用 upper(table_name) select * from user_talbes where table_name like s_% escape ?使用转义字符对关键字进行转义。 逻辑运算: BETWEEN AND 在什么之间 NOT BETWEEN AND 注意区间: 是一个闭区间 IN( LIST) 在某个集合中 NOT IN (list) 空值会有影响 (等于list 其中任何一个就行, 为提高效率常把比例高的放在前面) LIKE 模糊配置 NOT LIKE 通配比较 IS NULL 是空 AND OR NOT 练习3:(

9、查出s_emp表中所有员工的一年的总收入 ) select first_name , salary*12*( 1+nvl(commission_pct/100 , 0 ) ) year salary from s_emp; nvl函数 专用于处理空值的影响 . 练习4:(找出表名以S_开头的所有表) 对于一些特殊字符,要用到escape转义,并不是一定要用,escape 后面定义是什么字符为转义字符,那就用哪个字符 select table_name from user_tables where table_name like S_% escape ; 1.3.5. 单行函数 单行函数: (d

10、ual 哑表 ) 字符函数: lower 转小写 select lower(SQLPLUS) from dual;对纯字符串处理的时候 upper 转大写 select upper(sqlplus) from dual; initcap 首字符大写 select initcap(tarena) from dual; concat 连接字符串 select concat(first_name , last_name) from s_emp;等效于| substr 求子串 select substr(tarenasd0603 ,1,6) from dual; (取前六个字符) select sub

11、str(tarenasd0603,-2) from dual; (取后两个字符) length 求字符长度 select length(tarena) from dual; nvl 空值函数 两个参数的类型要匹配,统一的,表示:如果有,则返回前面的参数,如果没有就返回后面的参数 eg:select first_name,salary from s_emp where lower(first_name)=george; select first_name , substr(first_name , -2 ) from s_emp; (查出s_emp表中所有用户名字的最后两个字符) 默认的是从左向

12、右,如果是-2则表示从右向左数 练习5: select first_name , salary from s_emp where lower(first_name)=george; 数值函数: round 函数( 四舍五入) select round(45.935, 2) from dual; 不带参数时默认0 位小数 trunc 函数 (截取,不管后面的数字) select trunc(45.995, 1) from dual; 日期函数: oracle数据库中存放时间格式的数据,是以oracle 特定的格式存贮的,占 7个字节,与查询时显示的时间格式无关,具体哪个字节表示什么,我不太清楚,

13、请高 手补充。存贮的时间包括年月日时分秒,最小精度为秒,不存贮秒以下的时间单位。因此在一些前台支持毫秒级的程序(如PB客户端程序)连接到oracle数据库时应注意这点。查询时显示的时间格式,由会话环境决定,或者由用户定义,与数据库无关。 select sysdate from dual; 从伪表查系统时间,以默认格式输出。 sysdate+(5/24/60/60) 在系统时间基础上延迟5秒 sysdate+5/24/60 在系统时间基础上延迟 5分钟 sysdate+5/24 在系统时间基础上延迟5小时 sysdate+5 在系统时间基础上延迟5天 所以日期计算默认单位是天 内置函数: mon

14、ths_between(sysdate,addmonth(sysdate,5)) /两个月有多少天。 add_months(sysdate,-5) 在系统时间基础上延迟5月 add_months(sysdate,-5*12) 在系统时间基础上延迟5年 last_day(sysdate) 一个月最后一天 next_day(sysdate,riday? 下个星期星期几。 round (sysdate,day? 不是四除五入了,是过了中午留下,不过的略掉 trunc(sysdate,onth? 不到一月都省略 例子: 上月末的日期:select last_day(add_months(sysdate

15、, -1) from dual; 本月的最后一秒:select trunc(add_months(sysdate,1),month) - 1/24/60/60 from dual 本周星期一的日期:select trunc(sysdate,day)+1 from dual 年初至今的天数:select ceil(sysdate - trunc(sysdate, year) from dual; 格式转换函数: to_char显示日期: 从数字转化为char to_char(date, 格式) 从日期转化为char to_char(date, fmt ) yyyy 2007 年份 year two tho

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号