武汉圣伟思信息技术有限公司9ISQL武汉圣伟思信息技术有限公司简单的SELECT语句1-2武汉圣伟思信息技术有限公司目标完成本课后,你应该能够:•描述SELECT语句的功能•正确书写基础的SELECT语句•使用别名•连接字符串•SQL*Plus命令的使用•iSQL*Plus的配置和使用1-3武汉圣伟思信息技术有限公司SELECT语句的功能行列表1表2表1表1连接1-4武汉圣伟思信息技术有限公司基础SELECT语句SELECT*|{[DISTINCT]column|expression[alias],...}FROMtable;SELECT*|{[DISTINCT]column|expression[alias],...}FROMtable;•SELECT定义了选取哪些列•FROM定义了从哪个表选取列1-5武汉圣伟思信息技术有限公司选取表中所有记录SELECT*FROMdepartments;SELECT*FROMdepartments;1-6武汉圣伟思信息技术有限公司选取指定的列SELECTdepartment_id,location_idFROMdepartments;SELECTdepartment_id,location_idFROMdepartments;1-7武汉圣伟思信息技术有限公司书写SQL语句的要求•SQL语句不区分大小写•SQL语句可以分行书写•关键字不能缩写,不能跨行•子句通常写在多行•注释用于提高语句的可读性1-8武汉圣伟思信息技术有限公司列对齐格式•字符型和日期型居左对齐•数值型居右对齐•缺省的列头部显示为大写EMPLOYEE_IDFIRST_NAMEHIRE_DATE---------------------------------------------------------------100Steven17-6月-87101Neena21-9月-89102Lex13-1月–93……….1-9武汉圣伟思信息技术有限公司算术运算符优先级:•先乘除,后加减•同级别运算符,从左至右运算•通过圆括号()强行改变优先级***///+++___1-10武汉圣伟思信息技术有限公司使用算术运算符SELECTlast_name,salary,salary+300FROMemployees;SELECTlast_name,salary,salary+300FROMemployees;1-11武汉圣伟思信息技术有限公司算术运算符优先级年薪加上100元每月增加100元,即全年增加1200元SELECTlast_name,salary,12*salary+100FROMemployees;SELECTlast_name,salary,12*salary+100FROMemployees;SELECTlast_name,salary,12*(salary+100)FROMemployees;SELECTlast_name,salary,12*(salary+100)FROMemployees;1-12武汉圣伟思信息技术有限公司空值NULL•空值是指不确定的、未定义的、未知的值•空值不同于空格和0。空格是字符,0是数值SELECTlast_name,salary,commission_pctFROMemployees;SELECTlast_name,salary,commission_pctFROMemployees;1-13武汉圣伟思信息技术有限公司空值的算术运算•任何包含空值的算术运算结果,都为空•涉及空值算术运算时,需要使用NVL函数转换SELECTlast_name,12*salary*commission_pctFROMemployees;SELECTlast_name,12*salary*commission_pctFROMemployees;1-14武汉圣伟思信息技术有限公司NVL函数使用NVL函数,将空值转换为实际值•可以转换字符型、日期型和数值型•数据类型必须匹配,字符型和日期型需要使用单引号引用---NVL(hire_date,’01-JAN-04’)---NVL(first_name,’NOTRECORD’)---NVL(commission_pct,0)SELECTsalary*NVL(commission_pct,0)FROMemployees;SELECTsalary*NVL(commission_pct,0)FROMemployees;1-15武汉圣伟思信息技术有限公司列的别名列的别名:•为列的头部重命名•主要用于算术运算中•紧跟在列名后书写,中间以空格或AS连接•如果别名包含了空格、指定大小写或特殊格式,需要用双引号“”引用1-16武汉圣伟思信息技术有限公司别名的使用SELECTlast_nameASnameFROMemployees;SELECTlast_nameASnameFROMemployees;NAME---------KingKochharSELECTlast_name“Name”FROMemployees;SELECTlast_name“Name”FROMemployees;Name---------KingKochhar1-17武汉圣伟思信息技术有限公司连接符连接符:•用于连接多列,或将列与其他字符串连接•使用双竖线||作为连接符•连接后的结果列为字符表达式1-18武汉圣伟思信息技术有限公司使用连接符SELECTlast_name||job_idAS“Employees”FROMemployees;SELECTlast_name||job_idAS“Employees”FROMemployees;1-19武汉圣伟思信息技术有限公司字面字符串•字面字符串是包含在SELECT列表中的字符,数值或日期值•数值和日期值的字面值必须使用单引号引用•每行每次返回一行字符串1-20武汉圣伟思信息技术有限公司使用字面字符串SELECTlast_name||’isa’||job_idAS“EmployeeDetails”FROMemployees;SELECTlast_name||’isa’||job_idAS“EmployeeDetails”FROMemployees;1-21武汉圣伟思信息技术有限公司限制重复行的显示可以在SELECT列表中使用DISTINCT关键字,就不会显示重复的行SELECTDISTINCTdepartment_idFROMemployees;SELECTDISTINCTdepartment_idFROMemployees;1-22武汉圣伟思信息技术有限公司SQL*Plus的使用•连接到SQL*Plus•描述表的结构•执行和编辑SQL命令•保存SQL命令到文件中•定义列的格式1-23武汉圣伟思信息技术有限公司连接到SQL*Plus•在WINDOWS环境下:---双击图标---输入用户名和口令•命令行格式:---sqlplus[用户名[/口令]]sqlplushr/hrsqlplushr/hr1-24武汉圣伟思信息技术有限公司描述表的结构使用DESCRIBE命令描述表的结构。包含:列名、非空列(NOTNULL)以及数据类型SQLDESCRIBEemployees;SQLDESCRIBEemployees;NOTNULL列表明该列必须包含数据数据类型列可以显示该列的数据类型和数据长度1-25武汉圣伟思信息技术有限公司SQL*Plus编辑命令A[PPEND]text---向buffer中的命令行后添加文本C[HANGE]/old/new---修改buffer中的命令行文本CL[EAR]BUFF[ER]---清除buffer中的所有命令行DEL---删除buffer中的最后的命令行I[NPUT]text---向buffer中添加命令L[IST]n---显示buffer中所有的命令ntext---替换指定行的文本•••••••1-26武汉圣伟思信息技术有限公司SQL*Plus文件命令•SAVE文件名---把当前的语句存放到文件中•GET文件名---从文件中调用语句•START文件名/@文件名---执行脚本•EDIT文件名---调用文本编辑器编辑命令•SPOOL文件名---将显示结果存放在文件中•EXIT---退出SQL*Plus1-27武汉圣伟思信息技术有限公司COLUMN命令常用选项:•CLE[AR]–清除所有的列格式定义•FOR[MAT]format–使用定义格式更改列格式•HEA[DING]text–设置列的头部•JUS[TIFY]{位置}–定义列的位置,可以居左(left)、居右(right)、居中(center)•NULLtext–转换NULL为指定值COL[UMN][{column|alias}[option]]COL[UMN][{column|alias}[option]]1-28武汉圣伟思信息技术有限公司COLUMN格式类型•字符型和日期型:An设置显示宽度为n•数值型:9单一不含0的整数0强制在数值前用0补足数位$美元标记.小数点,千分位分隔符1-29武汉圣伟思信息技术有限公司COLUMN命令:示例创建列格式COLUMNlast_nameHEADING‘Employee|Name’FORMATA15COLUMNsalaryJUSTIFYLEFTFORMAT$99,999.00COLUMNstart_dateFORMATA8NULL‘NOTHIRED’COLUMNlast_nameHEADING‘Employee|Name’FORMATA15COLUMNsalaryJUSTIFYLEFTFORMAT$99,999.00COLUMNstart_dateFORMATA8NULL‘NOTHIRED’显示last_name的列格式清除last_name的列格式COLUMNlast_nameCOLUMNlast_nameCOLUMNlast_nameCLEARCOLUMNlast_nameCLEAR1-30武汉圣伟思信息技术有限公司9i新工具:iSQL*PlusSQL语句Oracleserver查询结果iSQL*Plus指令Client格式化报表InternetInternetBrowserBrowseriiSQL*PlusSQL*Plus1-31武汉圣伟思信息技术有限公司SQL语句与iSQL*Plus指令的比较SQLSQLstatementsstatementsSQL•一种语言•ANSI标准•关键字不能缩写•语句用来操作数据库中的数据及表定义iiSQL*PlusSQL*Plus•一种环境•只能Oracle适用•关键字可以缩写•命令不允许操作数据库中的值•运行于浏览器•集中安装,不需要在每台机器上执行iiSQL*PlusSQL*Pluscommandscommands1-32武汉圣伟思信息技术有限公司iSQL*Plus概述当你登录进iSQL*Plus,你能够做这些事情:•描述表结构•编辑你的SQL语句•通过iSQL*Plus执行SQL•存储SQL语句到文件或追加SQL语句到文件中•执行存储在文件中的SQL语句•从文本文件中装载指令到iSQL*Plus编辑窗口1-33武汉圣伟思信息技术有限公司登录到iSQL*Plus从Web浏览器:1-34武汉圣伟思信息技术有限公司iSQL*Plus环境345671289101-35武汉圣伟思信息技术有限公司显示表结构使用iSQL*Plus的DESCRIBE命令来显示表结构.DESC[RIBE]tablenameDESC[RIBE]tablename1-36武汉圣伟思信息技术有限公司显示表结构DESCRIBEemployeesDESCRIBEemployees1-37武汉圣伟思信息技术有限公司与脚本文件交互SELECTlast_name,hire_date,salaryFROMemployees;121-38武汉圣伟思信息技术有限公司与脚本文件交互1D:\temp\emp_sql.htm2SELECTlast_name,h