【教学课件】第二讲SQL语言基础.ppt
《【教学课件】第二讲SQL语言基础.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第二讲SQL语言基础.ppt(73页珍藏版)》请在三一办公上搜索。
1、第二讲 SQL语言基础,本章学习目标 SQL语言是数据库的标准语言。只有理解了SQL才能真正理解关系数据库。本章将介绍怎样使用“结构化查询语言”(SQL)来操作数据库。,内容安排,2.1 SQL简介2.2 SQLPLUS工具2.3 数据查询语言(DQL)2.4 数据操纵语言(DML)2.5 数据定义语言(DDL)2.6 数据控制语言(DCL)2.7 常用函数,2.4 数据操纵语言(DML),数据操纵语言允许用户对数据库中的数据进行insert、update和delete等操作。它只有三个命令:insert 将记录插入到数据库 update 修改数据库的记录 delete 删除数据库的记录,IN
2、SERT,insert 将记录插入到数据库INSERT INTOtable(column,column.)VALUES(value,value.);用SQL*Plus中的变量可以实现交互式的插入,SQL INSERT INTOs_dept(id,name,2region_id)3 VALUES(Enter value for department_id:61Enter value for department_name:AccountingEnter value for region_id:21 row created.,拷贝记录,SQL INSERT INTOhistory(id,last_
3、name,salary,2 title,start_date)3 SELECTid,last_name,salary,4 title,start_date 5 FROMs_emp 6 WHEREstart_date 01-JAN-94;10 rows created.,UPDATE,UPDATEtableSETcolumn=value,column=valueWHEREcondition;,DELETE,DELETE FROMtableWHEREcondition;,注意:在一个会话中执行的DML命令,如果没有提交,在其他会话中将看不到那个未提交的会话中执行的DML命令。除非:(1)在DML命
4、令之后执行了DDL命令或DCL命令(2)用户退出会话(3)终止实例,此时系统会自动发出commit命令使未提交的DML命令提交,2.5 数据定义语言(DDL),DDL数据定义语言用于创建和定义数据库对象,并且将对这些对象的定义保存在数据字典中。部分DDL命令列表如下:SQL命令 功能 create table 创建表 alter table 修改表 drop table 删除表 truncate table 删除表中所有行 create index 创建索引 drop index 删除索引,表,1表的建立 表是存储用户数据的基本结构。建立表主要指定义下列信息:列定义 完整性约束 表所在表空间
5、存储特性 可选择的聚集,CREATE TABLE schema.table(column datatype DEFAULT exprcolumn_constraint,.table_constraint);,Oracle的基本数据类型,数据类型 描述VARCHAR2(n)变长字符CHAR(n)定长字符NUMBER(p,s)变长数字DATE 日期及时间LONG 变长字符(长度可达2G)RAW(n)and LONG RAW 二进制数据CLOB 单字节字符(长度可达4G)BLOB 二进制数据(长度可达4G)BFILE 存储在外部文件中的二进制 数据(长度可达4G),Oracle的完整性约束,Orac
6、le利用完整性约束机制防止无效数据进入基表任何DML执行结果破坏完整性约束,该语句被回滚并返回错误,有效的约束条件NOT NULLUNIQUEPRIMARY KEYFOREIGN KEYCHECK,约束的语法,列级约束 column CONSTRAINT constraint_name constraint_type,表级约束级column,.CONSTRAINT constraint_name constraint_type(column,.),约束表级约束,创建表:实例1,SQL CREATE TABLE s_dept 2(idNUMBER(7)3 CONSTRAINT s_dept_id
7、_pk PRIMARY KEY,4 nameVARCHAR2(25)5 CONSTRAINT s_dept_name_nn NOT NULL,6 region_idNUMBER(7)7 CONSTRAINT s_dept_region_id_fk REFERENCES 8 s_region(id),9 CONSTRAINT s_dept_name_region_id_uk UNIQUE 10(name,region_id);,创建表:实例2,SQL CREATE TABLE s_emp 2(idNUMBER(7)3 CONSTRAINT s_emp_id_pk PRIMARY KEY,4 la
8、st_nameVARCHAR2(25)5 CONSTRAINT s_emp_last_name_nn NOT NULL,6 first_nameVARCHAR2(25),7 useridVARCHAR2(8)8 CONSTRAINT s_emp_userid_nn NOT NULL 9 CONSTRAINT s_emp_userid_uk UNIQUE,10 start_dateDATE DEFAULT SYSDATE,11 commentsVARCHAR2(25),12 manager_idNUMBER(7),13 titleVARCHAR2(25),14 dept_idNUMBER(7)1
9、5 CONSTRAINT s_emp_dept_id_fk REFERENCES 16 s_dept(id),17 salaryNUMBER(11,2),18 commission_pctNUMBER(4,2)19 CONSTRAINT s_emp_commission_pct_ck CHECK 20(commission_pct IN(10,12.5,15,17.5,20);,创建表:实例3,使用CREATE TABLE和AS创建表并且插入记录,CREATE TABLE emp_41AS SELECTid,last_name,userid,start_dateFROMs_empWHEREde
10、pt_id=41;,查看约束信息,查询 USER_CONSTRAINTS 可以获取所有定义的约束的信息,SQL SELECTconstraint_name,constraint_type,2search_condition 3 FROMuser_constraints 4 WHEREtable_name=EMP;,CONSTRAINT_NAME C SEARCH_CONDITION-SYS_C00674 C EMPNO IS NOT NULL SYS_C00675 C DEPTNO IS NOT NULLEMP_EMPNO_PK P.,获取同约束条件相关的列的信息,查询 USER_CONS_C
11、OLUMNS 获取同约束条件相关的列的信息,SQL SELECTconstraint_name,column_name 2 FROMuser_cons_columns 3 WHEREtable_name=EMP;,CONSTRAINT_NAME COLUMN_NAME-EMP_DEPTNO_FK DEPTNOEMP_EMPNO_PK EMPNOEMP_MGR_FK MGRSYS_C00674 EMPNOSYS_C00675 DEPTNO,2表的修改 使用 ALTER TABLE 命令增加列修改列定义缺省值删除列,ALTER TABLE table ADD(column datatype DEF
12、AULT expr,column datatype.);ALTER TABLE table MODIFY(column datatype DEFAULT expr,column datatype.);ALTER TABLEtable_name DROP COLUMN column_name.,增加约束条件,SQL ALTER TABLE emp 2 ADD CONSTRAINT emp_mgr_fk 3 FOREIGN KEY(mgr)REFERENCES emp(empno);Table altered.,使约束失效,在ALTER TABLE子句中使用DISABLE CONSTRAINT子句
13、可以使约束条件失效,SQL ALTER TABLEemp 2 DISABLE CONSTRAINTemp_empno_pk;Table altered.,激活约束条件,使用ENABLE子句激活表中定义的失效的约束条件UNIQUE 或 PRIMARY KEY 索引在激活UNIQUE or PRIMARY KEY 约束时自动创建,SQL ALTER TABLEemp 2 ENABLE CONSTRAINTemp_empno_pk;Table altered.,3.表的删除,删除表的结构、表中的数据、表上所建立的索引、约束、触发器和权限 DROP TABLE table;,3.表的重命名,使用REN
14、AME命令,可以修改表、视图、序列号、同义词的名称 RENAME s-dept TO department;若要使用RENAME命令,必须是数据对象的拥有者,索引,索引是一种数据库对象。在表的索引列上的每一值将包含一项,为行提供直接的快速存取。在下列情况下,Oracle可利用索引改进性能:按指定的索引列的值查找行。按索引列的顺序存取表。,1索引的建立自动 在定义 PRIMARY KEY 或 UNIQUE 约束时,系统自动创建唯一性索引手动 用户创建非唯一性索引提高访问的速度 CREATE INDEX index ON table(column,column.);CREATE INDEX id_
15、idx ON s_emp(id);,2 索引的删除 DROP INDEX index;DROP INDEX id_idx;,3.下列情况不宜创建索引:基表数据较少查询中很少用作条件的列多数查询提取的记录超过2-4%基表经常被更新,视图,视图是一个逻辑表,它允许操作者从其它表或视图存取数据,视图本身不包含数据。视图所基于的表称为基表。视图的作用有:限制数据访问简化查询增强数据独立性同类数据不同显示,ID LAST_NAME FIRST_NAME TITLE DEPT_ID-1 Velasquez Carmen President 50 2 Ngao LaDoris VP,Operations 4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第二 SQL 语言 基础
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5662486.html