360。企业管理信息化解决方案提供商赛意信息科技有限公司白金級合作伙伴课程主题讲师:周梦荣日期:2015.3360。企业管理信息化解决方案提供商2019/7/31222Oracle数据库基本访问语句PL/SQL编程基础Oracle数据库高级查询目录360。企业管理信息化解决方案提供商2019/7/31333SQL语句分类数据操作语句(DataManipulationLanguage):DML语句包括:select、insert、delete、update数据定义语句(DataDefinitionLanguage):DDL语句包括:create、alter、drop、truncate事务控制语句(TransactionControlLanguage):TCL语句包括:commit、rollback、savepoint数据控制语句(DataControlLanguage):DCL语句包括:grant、revokeORACLE数据库基本访问语句360。企业管理信息化解决方案提供商2019/7/31444DML语句:select、insert、delete、updateDML语句用途及基础语法:SELECT语句用途:用于查询表或视图的数据;SELECT语句语法:SELECTcolumnsFROMtables[WHEREpredicates];INSERT语句用途:将数据插入到指定表中;INSERT语句语法:INSERTINTOtable(column-1,column-2,...column-n)VALUES(value-1,value-2,...value-n);ORACLE数据库基本访问语句360。企业管理信息化解决方案提供商2019/7/31555DML语句:select、insert、delete、updateDML语句用途及基础语法:UPDATE语句用途:用于更新指定表(符合条件)的数据;UPDATE语句语法:UPDATEtableSETcolumn1=value1,column2=value2…[WHEREpredicates];DELETE语句用途:用于删除指定表(符合条件)的数据;DELETE语句语法:DELETEFROMtables[WHEREpredicates];ORACLE数据库基本访问语句360。企业管理信息化解决方案提供商2019/7/31666DML语句:select、insert、delete、update示例:在SCOTT用户进行如下操作:1、查询emp表的所有员工的所有信息;2、查询emp表的所有员工的工号、姓名、基本薪水;3、查询工号为7839的员工的工号、姓名、基本薪水;4、插入一个员工信息:工号:8000,姓名:SIE,职位:SALESMAN,部门:30;5、将工号为8000的员工的上级领导修改为7920;6、删除工号为8000的员工。ORACLE数据库基本访问语句SELECT*FROMempe;SELECTempno,ename,salFROMemp;SELECTe.empno,e.ename,e.salFROMempeWHEREe.empno=7839;INSERTINTOEMP(empno,ename,job,deptno)VALUES(8000,'SIE','SALESMAN',30);COMMIT;UPDATEempSETMGR=7920WHEREempno=8000;COMMIT;DELETEFROMempWHEREempno=8000;COMMIT;360。企业管理信息化解决方案提供商2019/7/31777DML语句:select、insert、delete、update示例:在SCOTT用户进行如下操作:7、查询20部门的所有员工信息:部门名称,员工姓名,基本薪水;8、统计20部门的员工人数及平均基本薪水;9、查询不含员工的部门信息:部门名称;ORACLE数据库基本访问语句SELECTD.DNAME,E.ENAME,E.SALFROMEMPE,DEPTDWHEREE.DEPTNO=D.DEPTNOANDD.DEPTNO=20;SELECTD.DNAME,COUNT(*)emp_qty,AVG(SAL)avg_salFROMEMPE,DEPTDWHEREE.DEPTNO=D.DEPTNOANDD.DEPTNO=20GROUPBYd.dname;SELECTD.DNAMEFROMDEPTDWHERENOTEXISTS(SELECT1FROMEMPEWHEREE.DEPTNO=D.DEPTNO);360。企业管理信息化解决方案提供商2019/7/31888DML语句:select、insert、delete、update总结select语句是难点,需要多练习,常用select语句的类型有:单表查询、多表查询、子查询、集合操作、树结构查询、聚合函数、分析函数、自定义函数;Insert、delete、update三类改动要想存入库中必须要使用commit语句,放弃改动时要使用rollback语句;Insert时注意数据类型、唯一约束、非空约束等;delete、update使用时,一定要确保WHERE条件的正确性;注意NULL值,判断空用ISNULL,判断不空用ISNOTNULL。ORACLE数据库基本访问语句360。企业管理信息化解决方案提供商2019/7/31999DDL语句:create、alter、drop、truncateDDL语句用途及语法create语句用途:创建数据库对象,如表、视图create语句语法:创建表基本语法:createtabletable_name(column_adatatypenull/notnull,column_bdatatypenull/notnull,……);根据查询语句创建表基本语法:CREATEtabletable_nameasselectquery;创建视图基本语法:create[orreplace]viewview_nameasselectcolumnsfromtablewherepredicates;ORACLE数据库基本访问语句360。企业管理信息化解决方案提供商2019/7/31101010DDL语句:create、alter、drop、truncateDDL语句用途及语法alter语句用途:修改数据库对象,一般用于修改表结构alter语句语法:修改表结构基本语法:增加字段:altertabletable_nameadd…删除字段:altertabletable_namedropcloumn..重命名字段:altertabletable_namerenamecolumn…to…修改表字段(数据类型、NOTNULL约束)altertabletable_namemodify…增加约束:altertabletable_nameaddconstraint…ORACLE数据库基本访问语句360。企业管理信息化解决方案提供商2019/7/31111111DDL语句:create、alter、drop、truncateDDL语句用途及语法drop语句用途:删除数据库对象。drop语句语法:drop对象类型对象名称;ORACLE数据库基本访问语句DDL语句用途及语法truncate语句用途:删除表中所有数据,并释放所占用的空间。使用truncate表删除数据时不需要提交,也不能回滚。删除表中所有数据时使用truncate比delete高效。truncate语句语法:truncatetabletable_name;360。企业管理信息化解决方案提供商2019/7/31121212DDL语句:create、alter、drop、truncateDDL语句用途及语法COMMENT语句用途:给表或表的字段加备注信息COMMENT语句语法:给表加备注语法:commentontabletable_nameis‘备注内容’;给表中某个字段加备注语法:commentoncolumntable.column_nameis'备注内容';RENAME语句用途:重命名数据库对象名称,常用于重命名表名RENAME语句语法:重命名表名语法:RENAMEold_nameTOnew_nameORACLE数据库基本访问语句360。企业管理信息化解决方案提供商2019/7/31131313DDL语句:create、alter、drop、truncate示例:在SCOTT用户下进行如下操作:1、使用基本语法创建sie_emp表ORACLE数据库基本访问语句字段名数据类型Emp_noVARCHAR2(30)Emp_nameVARCHAR2(30)sexCHAR(1)Dept_noVARCHAR2(30)Base_salaryNUMBER--创建表sie_empCREATETABLESIE_EMP(emp_noVARCHAR2(30),emp_nameVARCHAR2(30),sexCHAR(1),dept_noVARCHAR2(30),base_salaryNUMBER);360。企业管理信息化解决方案提供商2019/7/31141414DDL语句:create、alter、drop、truncate示例:在SCOTT用户下进行如下操作:2、创建sie_dept表,采用查询scott.dept表的方式,创建时不拷贝scott.dept表中的数据。ORACLE数据库基本访问语句字段名数据类型dept_nonumber(2)dept_nameVARCHAR2(14)--创建表sie_deptCREATETABLEsie_dept(dept_no,dept_name)ASSELECTdeptno,dnameFROMdeptWHERE1=2360。企业管理信息化解决方案提供商2019/7/31151515DDL语句:create、alter、drop、truncate示例:在SCOTT用户下进行如下操作:3、修改sie_dept表:a、给字段dept_no添加主键约束;b、字段dept_no数据类型修改为VARCHAR2(30);c、字段dept_name修改为NOTNULL约束;d、删除字段dept_name上的NOTNULL约束;e、字段dept_name上增加唯一约束;ORACLE数据库基本访问语句ALTERTABLEsie_deptADDCONSTRAINTsie_dept_pkPRIMARYKEY(dept_no);ALTERTABLEsie_deptMODIFY(dept_noVARCHAR2(30));ALTERTABLEsie_deptMODIFY(dept_nameNOTNULL);ALTERTABLEsie_deptMODIFY(dept_nameNULL);ALTERTABLEsie_deptADDCONSTRAINTsie_dept_uq1UNIQUE(dept_name);360。企业管理信息化解决方案提供商2019/7/31161616DDL语句:create、alter、drop、truncate示例:在SCOTT用户下进行如下操作:4、在sie_emp表的emp_no字段上创建唯一索引;5、修改sie_emp表:a、字段emp_no添加主键约束;b、增加字段职位(job)、上级领导(mgr);c、字段sex更名为gender;e、字段salary增加check约束,salary=1500f、字段dept_no增加外键,参考表SIE_DEPTORACLE数据库基本访问语句CREATEUNIQUEINDEXsie_emp_u1ONsie_emp(emp_no);ALTERTABLEsie_empADDCONSTRAINTsie_emp_pkPRIMARYKEY(emp_no);ALTERTABLEsie_empADD(jobVARCHAR2(30