如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
数据操作语句数据查询(一)查询语句基本结构查询语句基本结构•SELECT<目标列名序列>--需要哪些列(投影)•FROM<表名>--来自于哪些表(笛卡尔积)•[WHERE<行选择条件>]--根据什么条件(选择谓词)•[GROUPBY<分组依据列>]--对查询结果分组•[HAVING<组选择条件>]--筛选满足指定条件的组•[ORDERBY<排序依据列>]--查询结果排序单表查询单表查询•查询仅涉及一个表选择表中若干列选择表中的若干元组对查询结果排序(ORDERBY子句)使用统计函数汇总数据分组统计数据(GROUPBY子句)查询指定列•在SELECT子句的<目标列名序列>中指定要查询的属性•查询全体学生的学号与姓名SELECTSno,SnameFROMStudent•查询列表中的列顺序与表中列定义的顺序无关•如果要查询表中的全部列,可以使用两种方法–在SELECT关键字后面列出所有列名–将<目标列表达式>指定为*(如果列的显示顺序与其在表中定义的顺序相同)查询指定列•含算数表达式的列–SELECTSname,2013-SageFROMStudent;•含字符串常量的列–SELECTSname,'年份',2009–SageFROMStudentOracle常用函数•字符函数功能例子结果全小写LOWER('SQLCourse')sqlcourse全大写UPPER('SQLCourse')SQLCOURSE首字母大写INITCAP('SQLCourse')SqlCourseCONCAT('Good',拼接GoodString'String')取子串SUBSTR('String',1,3)Str求长度LENGTH('String')6Oracle常用函数•字符函数•selectlength('Oracle数据库编程与实践')fromstudent;•selectreplace('aa11bb','1','2')abcdfromstudent;•selecttrim('x'from'xxWORLDxx')abcdfromstudent;Oracle常用函数•数学函数功能例子结果ROUND(45.923,2)45.92四舍五入ROUND(45.923,0)46ROUND(45.923,-1)50TRUNC(45.923,2)45.92截断TRUNC(45.923)45TRUNC(45.923,-1)40余数MOD(1600,300)100Oracle常用函数•日期函数功能例子结果在日期上加指定的月数ADD_MONTHS('11-JAN-94',6)'11-JUL-94'MONTHS_BETWEEN('01-SEP-求两个日期间有多少个月1.977419495','11-JAN-94')下一个星期几是什么时候NEXT_DAY('01-SEP-95','FRIDAY')'08-SEP-95'某月最后一天LAST_DAY('01-SEP-95')'30-SEP-95Oracle常用函数•转换函数功能例子结果TO_CHAR将数字或日期转换为字符串-(hr.employees.hire_date)将字符串转换成数字TO_NUMBER-TO_DATE('10September将字符串转换成日期10-SEP-921992','ddMonthYYYY')指定列别名•[列名|表达式][AS]列别名或•列别名=[列名|表达式]•例:SELECTSname姓名,2009-Sage年份FROMStudent选择表中的若干元组•查询满足条件的元组通过WHERE子句实现查询条件谓词比较运算符=,>,>=,<,<=,<>(或!=)NOT+上述比较运算符确定范围BETWEENAND,NOTBETWEENAND确定集合IN,NOTIN字符匹配LIKE,NOTLIKE空值ISNULL,ISNOTNULL多重条件AND,OR确定范围•BETWEEN…AND…•NOTBETWEEN…AND…•查找属性值在或不在指定范围内的元组–BETWEEN后是范围的下限(低值)–AND后是范围的上限(高值)确定范围•查询年龄在20~23岁之间的学生的姓名、所在系和年龄SELECTSname,Sdept,SageFROMStudentWHERESageBETWEEN20AND23;•等价于SELECTSname,