Oracle数据库Sql语句详解

举报
资源描述
NameDateOracleSQL第一章第一章SELECT查询查询本章目标本章目标写一条SELECT查询语句在查询中使用表达式、运算符对空值的处理对查询字段起别名查询字段的连接SELECTSELECT查询基本语法查询基本语法SELECT FROM SQL SQL SELECT SELECT *FROM s_emp FROM s_emp请查询出s_emp表中所有的员工信息:查询指定列查询指定列SQL SQL SELECT SELECT dept_id,salarydept_id,salary FROM s_emp FROM s_emp请查询出s_emp表中所有的员工的部门ID,工资:运用算数表达式运用算数表达式SQL SQL SELECT SELECT salary*12salary*12 FROM s_emp FROM s_emp请查询出s_emp表中所有的员工的年薪:运用算数表达式运用算数表达式括号可以改变运算符运算的优先顺序:SQL SELECT SQL SELECT last_name,salary,12*salary+100last_name,salary,12*salary+100 2 FROM 2 FROM s_emp;s_emp;.Velasquez 2500 30100Velasquez 2500 30100SQL SELECT SQL SELECT last_name,salary,12*(salary+100)last_name,salary,12*(salary+100)2 FROM 2 FROM s_emp;s_emp;.Velasquez 2500 31200Velasquez 2500 31200列别名列别名请查询出s_emp表中所有的员工的姓名:SQL SQL SELECT SELECT firname_name|last_namefirname_name|last_name FROM s_emp FROM s_empSQL SQL SELECT firname_name|last_name SELECT firname_name|last_name “姓名姓名姓名姓名”FROM s_empFROM s_emp请查询出s_emp表中所有的员工的姓名:空值的处理空值的处理请查询出s_emp表中所有的员工的工资:SQL SELECTSQL SELECT last_name,last_name,salary*commission_pct/100salary*commission_pct/100 “工资工资工资工资”2 2 FROM FROM s_emp;s_emp;SQL SQL SELECT SELECT last_name,salary+salary*last_name,salary+salary*NVL(commission_pct,0)NVL(commission_pct,0)/100/100 2 2 FROM FROM s_emp;s_emp;去掉重复行去掉重复行请查询出s_dept表的部门名称:SQL SELECTSQL SELECTnamename 2 FROM 2 FROM s_dept;s_dept;SQL SELECTSQL SELECTDISTINCTDISTINCT name name 2 FROM 2 FROM s_dept;s_dept;去掉多列重复行去掉多列重复行SQL SELECTSQL SELECT DISTINCTDISTINCT dept_id,title dept_id,title 2 FROM 2 FROM s_emp;s_emp;请查询出s_emp表中所有的员工的部门ID及职称:小结小结查询表的全部记录查询指定的列给列起别名NVL函数及字符串连接符重复行的处理DistinctSELECTSELECT DISTINCT*,columnalias,.DISTINCT*,columnalias,.FROMFROM table;table;引言引言第二章第二章 条件查询条件查询本章目标本章目标WHERE条件查询在查询中使用表达式、运算符使用LIKE、BETWEEN、IN进行模糊查询第一章内容回顾第一章内容回顾v对员工表中信息进行查询,具体要求如下:1.查询s_emp表表要求输出员工姓名(firs_name、last_name)和实际工资(基本工资+提成):查询基本语法查询基本语法SELECT FROM WHERE 列名称列名称SELECT*表名表名FROMS_emp过滤条件过滤条件WHEREdept_id=41 v请查询出s_emps_emp表中dept_iddept_id为4141的员工信息:WHEREWHERE条件查询条件查询请查询出s_emp表中last_name为Smith的员工的信息:SELECT*FROM s_emp WHERE last_name=Smith请查询出s_emp表中部门ID为50并且工资大于1500的员工的信息:SELECT*FROM s_emp WHERE salary1500 and dept_id=50WHEREWHERE条件查询条件查询-BETWEEN&IN-BETWEEN&IN请查询出s_emp表中工资在1500到2000之间的员工信息:SELECT*FROM s_emp WHERE salary between 1500 and 2000请查询出s_dept表中region_id为1,3的部门信息:SELECT*FROM s_dept WHERE region_id in(1,3)WHEREWHERE条件查询条件查询-like-like请查询出s_emp表中姓中含有字母a的员工信息:SELECT*FROM s_emp WHERE last_name like%a%请查询出当前用户下所有以s_开头的表:SELECT table_name FROM user_tables WHERE table_name like S_%escape 请查询出s_emp表姓中第二个字母为a的员工信息:SELECT*FROM s_emp WHERE last_name like _a%空值的查询空值的查询v查询出s_emp表中非销售职位的员工信息:SELECT*FROM s_emp WHERE commission_pct is null 课堂练习课堂练习已建立好的S_emp表,对此表中的数据进行模糊查询,具体要求如下:查询一名last_name以“M”开头的员工,他的dept_id好像是3X查询工资在1200至1500之间的员工查询来自部门ID为(41,42,43)的员工查询结果排序查询结果排序v查询出s_emp表将部门ID为41的员工的工资按从高到低排列显示出来:SELECT*FROM s_emp WHERE dept_id=41 ORDER BY salary DESC SQL SELECTSQL SELECTlast_name,dept_id,salarylast_name,dept_id,salary 2 FROM 2 FROM s_emps_emp 3 3 ORDER BYORDER BYdept_id,salary DESC;dept_id,salary DESC;小结小结Where条件查询Betweenand&In&Like 模糊查询对查询结果排序SELECTSELECTDISTINCT*,column alias,.DISTINCT*,column alias,.FROM FROM tabletableWHEREWHEREcondition(s)condition(s)ORDER BYORDER BYcolumn,expr,alias ASC|DESC;column,expr,alias ASC|DESC;第三章第三章 单行函数单行函数本章目标本章目标熟悉各种类型单行函数的使用掌握转换函数的使用两种两种SQLSQL函数函数单行函数CharacterNumberDateConversionSINGLE-ROWSINGLE-ROWFUNCTIONFUNCTION多行函数GroupMULTI-ROWMULTI-ROWFUNCTIONFUNCTION字符函数字符函数LOWER将字符串转换成小写 UPPER将字符串变为大写 INITCAP将字符串的第一个字母变为大写 CONCAT拼接两个字符串,与|相同 SUBSTR取字符串的子串 LENGTH以字符字符给出字符串的长度 NVL以一个值来替换空值 字符函数举例字符函数举例LOWER(SQL Course)sql courseUPPER(SQL Course)SQL COURSEINITCAP(SQL Course)Sql CourseSELECT*FROM s_emp WHERE last_name=PATELSELECT*FROM s_emp WHERE UPPER(last_name)=PATEL字符操作函数字符操作函数CONCAT(Good,String)GoodStringSUBSTR(String,1,3)StrLENGTH(String)6数字函数数字函数ROUND(value,precision)按precision 精度4舍5入TRUNC(value,precision)按precision 截取valueSQLSELECTround(55.5),round(-55.5),trunc(55.5),trunc(-55.5)FROMdual;round(55.5)round(-55.5)trunc(55.5)trunc(-55.5)-56 -56 55 -55SQLSELECTTRUNC(124.16666,-2)trunc1,trunc(124.16666,2)FROMdual;TRUNC1 TRUNC(124.16666,2)-100 124.16Round&TruncRound&Trunc函数函数ROUND(45.923,2)45.92ROUND(45.923,0)46ROUND(45.923,-1)50TRUNC(45.923,2)45.92TRUNC(45.923)45TRUNC(45.923,-1)40日期函数日期函数MONTHS_BETWEEN(date2,date1)给出 Date2-date1的月数ADD_MONTHS增加或减去月份NEXT_DAY(date,day)给出日期date之后下一天的日期LAST_DAY(date)返回日期所在月的最后一天 日期函数日期函数MONTHS_BETWEEN(01-SEP-95,11-JAN-94)19.774194ADD_MONTHS(11-JAN-94,6)11-JUL-94NEXT_DAY(01-SEP-95,FRIDAY)08-SEP-95LAST_DAY(01-SEP-95)30-SEP-95日期函数日期函数ROUND(25-MAY-95,MONTH)01-JUN-95ROUND(25-MAY-95,YEAR)01-JAN-95TRUNC(25-MAY-95,MONTH)01-MAY-95TRUNC(25-MAY-95,YEAR)01-JAN-95转换函数转换函数TO_CHAR(date,fmt)TO_CHAR(date,fmt)TO_CHAR(date,fmt)TO_CHAR(date,fmt)转换日期格式到转换日期格式到转换日期格式到转换日期格式到字符串字符串字符串字符串 用下列格式显示字符为数字:9代表一个数字.0显示前缀零.$根据本地语言环境显示货币.L采用当地货币符号.打印一个小数点.,千位计算法显示.日期格式日期格式DY星期几的缩写Mon,Tue,.DAY星期几的全拼Monday,Tuesday,.D一周的星期几,星期天=1,星期六=71,2,3,4,5,6,7DD一月的第几天,1311,2,.31W一个月的第几周,151,2,3,4,5WW,IW一年的第几周,一年的ISO的第几周1,2
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关搜索

当前位置:首页 > 办公文档 > 解决方案


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