3关系数据库标准语言SQL.ppt
《3关系数据库标准语言SQL.ppt》由会员分享,可在线阅读,更多相关《3关系数据库标准语言SQL.ppt(155页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、3关系数据库标准语言关系数据库标准语言SQL电子信息工程系王国庆内容综述内容综述lSQL全称:Structured Query Language(结构化查询语言)lSQL是关系数据库的标准语言。lSQL语言具有综合统一、高度非过程化、面向集合、简捷易学等优点。lSQL语言可以分为四大部分:数据定义、数据查询、数据操作、数据控制。lSQL语言的数据查询功能非常丰富。目录目录l3.1:SQL概述l3.2:数据定义l定义数据库、基本表、索引。l3.3:查询l使用SELECT语句实现单表查询、多表查询、嵌套查询、集合查询。l3.4:数据更新l3.5:视图l3.6:数据控制l3.7:嵌入式SQL3.1:
2、SQL概述概述lSQL全称:Structured Query Language(结构化查询语言)l70年代中期,IBM公司的Sam Jose Research Laboratory(圣约瑟研究实验室)在研制System R关系数据库管理系统中研制并实现了SQL语言。l1986年10月,美国国家标准局ANSI采用SQL作为关系数据库管理系统的标准语言(ANSIX3.135-1986)。1987年国际标准化组织(ISO)通过了这一标准。lSQL成为数据库领域的主流语言,很多DBMS产品都支持SQL语言。SQL的特点:的特点:l综合统一 l高度非过程化l面向集合的操作方式l操作的对象、结果是元组的集
3、合l以同一种语法结构提供两种使用方式l既是自含式语言,又是嵌入式语言l语言简捷,易学易用l核心命令简捷,接近口语,容易学习,容易使用SQL的基本概念的基本概念lSQL包含4个部分:l数据定义语言DDL(Data Definition Language)l数据查询语言DQL(Data Query Language)l数据操纵语言DML(Data Manipulation Language)l数据控制语言DCL(Data Control Language)lSQL支持关系数据库三级模式结构,其中内模式对应于视图、部分基本表,模式对应于基本表,内模式对应于存储文件。3.2:数据定义数据定义lSQL
4、的数据定义功能包括:定义表、定义视图、定义索引。l定义表:create table,drop table,alter tablel定义视图:create view,drop viewl定义索引:create index,drop index 使用使用使用使用CREATE TABLE CREATE TABLE 语句语句语句语句CREATE TABLE 表名表名 (属性列属性列 数据类型数据类型);定义基本表的属性时需要指明各属性的数据类型、长度及与表相关的完整性约束条件。SQL CREATE TABLE dept (deptno NUMBER(2),dname VARCHAR2(14),loc
5、VARCHAR2(13);Table created.Table created.OracleOracle支持的数据类型支持的数据类型支持的数据类型支持的数据类型DatatypeDescriptionVARCHAR2(size)Variable-length character dataCHAR(size)Fixed-length character dataNUMBER(p,s)Variable-length numeric dataDATE Date and time valuesLONG Variable-length character data up to 2 gigabytesCL
6、OBSingle-byte character data up to 4 gigabytesRAW and LONG RAW Raw binary dataBLOBBinary data up to 4 gigabytesBFILEBinary data stored in an external file;up to 4 gigabytesSQL Server2000支持的数据类型支持的数据类型Integers(整型):(整型):bit、int、smallint、bigint、tinyint。Decimal(小数):(小数):decimal、numeric、float、real。Money
7、and small money(货币):(货币):Money、small money Datetime and smalldatetime(日期):(日期):Datetime、smalldatetime。Character Strings(非(非Unicode字符串):字符串):char、varchar、text。Unicode Character Strings(Unicode字符串):字符串):nchar、nvarchar、ntext。Binary Strings(二进制串):(二进制串):binary、varbinary、image。其它:其它:cursor、sql variant,ta
8、ble,timestamp、uniqueidentifier。定义完整性约束定义完整性约束定义完整性约束定义完整性约束CREATE TABLE 表名表名 (属性列属性列 数据类型数据类型 DEFAULT 表达式表达式属性列级属性列级_约束约束,表级表级_约束约束);CREATE TABLE emp(empno NUMBER(4),ename VARCHAR2(10),deptno NUMBER(7,2)NOT NULL,CONSTRAINT emp_empno_pk PRIMARY KEY(EMPNO);NOT NULL NOT NULL 约束约束约束约束 EMPEMP EMPNO ENAME
9、 JOB.COMM DEPTNO 7839 KINGPRESIDENT 10 7698 BLAKEMANAGER 30 7782 CLARKMANAGER 10 7566 JONESMANAGER 20 .NOT NULL NOT NULL 约束约束约束约束(此列中的每一行均不允许此列中的每一行均不允许此列中的每一行均不允许此列中的每一行均不允许NULLNULL值值值值)允许允许允许允许 NOT NULNOT NUL此列中可以包括此列中可以包括此列中可以包括此列中可以包括null null 值值值值NOT NULL NOT NULL 约束约束约束约束UNIQUE UNIQUE 约束约束约束约束
10、 DEPT DEPT DEPTNO DNAME LOC -10 ACCOUNTING NEW YORK 20 RESEARCHDALLAS 30 SALESCHICAGO 40 OPERATIONS BOSTONUNIQUE UNIQUE 约束约束约束约束 50 SALESDETROIT 60BOSTON插入插入插入插入不允许不允许不允许不允许 (DNAME(DNAME-SALES 已经存在已经存在已经存在已经存在)允许允许允许允许 定义约束定义约束定义约束定义约束SQL CREATE TABLE emp(2 empno NUMBER(4),3enameVARCHAR2(10)NOT NULL
11、,4jobVARCHAR2(9),5mgrNUMBER(4),6hiredate DATE,7salNUMBER(7,2),8 commNUMBER(7,2),9deptnoNUMBER(7,2)NOT NULL);SQL CREATE TABLE dept(2 deptno NUMBER(2),3dname VARCHAR2(14),4loc VARCHAR2(13),5CONSTRAINT dept_dname_uk UNIQUE(dname);PRIMARY KEY PRIMARY KEY DEPT DEPT DEPTNO DNAME LOC -10 ACCOUNTING NEW YOR
12、K 20 RESEARCHDALLAS 30 SALESCHICAGO 40 OPERATIONS BOSTONPRIMARY KEYPRIMARY KEY插入插入插入插入 20 MARKETINGDALLAS FINANCENEW YORK不允许不允许不允许不允许 (DEPTNO(DEPTNO-20 20 已已已已经存在经存在经存在经存在)不允许不允许不允许不允许(DEPTNO(DEPTNO 为为为为NULLNULL值值值值)FOREIGN KEYFOREIGN KEY DEPT DEPT DEPTNO DNAME LOC -10 ACCOUNTING NEW YORK 20 RESEARC
13、HDALLAS .PRIMARYPRIMARYKEYKEY EMPEMP EMPNO ENAME JOB.COMM DEPTNO 7839 KINGPRESIDENT 10 7698 BLAKEMANAGER 30 .FOREIGNFOREIGNKEYKEY 7571 FORDMANAGER.200 9 7571 FORDMANAGER.200Insert intoInsert into不允许不允许不允许不允许(DEPTNO(DEPTNO-9 9 不在不在不在不在DEPTDEPT表中存在表中存在表中存在表中存在 允许允许允许允许定义约束定义约束定义约束定义约束SQL CREATE TABLE
14、dept(2 deptno NUMBER(2),3dname VARCHAR2(14),4loc VARCHAR2(13),5CONSTRAINT dept_dname_uk UNIQUE(dname),6CONSTRAINT dept_deptno_pk PRIMARY KEY(deptno);SQL CREATE TABLE emp(2 empno NUMBER(4),3enameVARCHAR2(10)NOT NULL,4jobVARCHAR2(9),5mgrNUMBER(4),6hiredate DATE,7salNUMBER(7,2),8 commNUMBER(7,2),9deptn
15、oNUMBER(7,2)NOT NULL,10CONSTRAINT emp_deptno_fk FOREIGN KEY(deptno)11REFERENCES dept(deptno);练习:练习:例1:建立一个名为example的基本表CREATE TABLE example(A_id smallint identity(1,1)primary key,A_desc varchar(50)not null default new position title not formalized yet,Min_a tinyint not null check(min_a=10),Max_a tin
16、yint not null check(max_a ALTER TABLE dept30 2 ADD (job VARCHAR2(9);Table altered.Table altered.ALTER TABLEdept30MODIFY(ename VARCHAR2(15);Table altered.Table altered.练习练习:SQL ALTER TABLE emp 2 ADD CONSTRAINT emp_mgr_fk 3 FOREIGN KEY(mgr)REFERENCES emp(empno);Table altered.Table altered.SQL ALTER TA
17、BLE emp 2 DROP CONSTRAINT emp_mgr_fk;Table altered.Table altered.SQL ALTER TABLEdept 2 DROP PRIMARY KEY CASCADE;Table altered.Table altered.删除删除DEPT表中的表中的 PRIMARY KEY 约束约束,同时删除相应同时删除相应 EMP.DEPTNO 列的列的FOREIGN KEY 约束约束.练习:l基于教材59页的关系表,作如下修改:l向student表增加“入学时间”列,数据类型为日期型l将年龄的数据类型改为短整型l删除学生姓名必须取唯一值的约束使用使
18、用使用使用Drop TableDrop Table语句语句语句语句SQL DROP TABLE dept30;Table dropped.Table dropped.DROP TABLE student建立和删除索引建立和删除索引(1)l建立索引是加快查询速度的有效手段。l索引可以建立在表的一列或多列上。l系统在存取数据时会自动选择合适的索引,用户不必选择。l聚集索引(cluster)指索引项的顺序与表中记录的物理顺序一致的索引组织。一个基本上最多只能建立一个聚集索引。l唯一索引(unique)指索引中没一索引值只对应唯一的数据记录。使用使用Create Index语句语句CREATE IND
19、EX UNIQUE/CLUSTER 索引名索引名 ON 表名表名 (属性列属性列.);Create cluster index stusname ON student(Sname)Create unique index snocno on SC(Sno ASC,Cno DESC)Drop index stusname3.3:查询查询l查询是数据库管理的核心操作。SQL语言提供了select语句进行数据库的查询。lSelect语句的一般格式:SELECT ALL|DISTINCT.FROM,.WHERE GROUP BY HAVING ORDER BY ASC|DESCSELECTSELECTS
20、ELECTSELECT语句可以实现语句可以实现语句可以实现语句可以实现:选择选择选择选择投影投影投影投影Table 1Table 1Table 2Table 2Table 1Table 1Table 1Table 1连接连接连接连接1.1.1.1.单表查询单表查询单表查询单表查询SELECTDISTINCT*,目标列表达式目标列表达式 别名别名,.FROM表名表名;lSELECT 指明输出什么列lFROM 指明从哪个表查询基本的SELECT 语句:选择全部列选择全部列选择全部列选择全部列 DEPTNO DNAME LOC-10 ACCOUNTING NEW YORK 20 RESEARCH D
21、ALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTONSQL SELECT*FROM dept;选择指定的列选择指定的列选择指定的列选择指定的列 DEPTNO LOC-10 NEW YORK 20 DALLAS 30 CHICAGO 40 BOSTONSQL SELECT deptno,locFROM dept;例例:EMP:EMP表表 使用算术运算符使用算术运算符使用算术运算符使用算术运算符 SQL SELECT ename,sal,sal+300 FROM emp;ENAME SAL SAL+300-KING 5000 5300BLAKE 2850 3150
22、CLARK 2450 2750JONES 2975 3275MARTIN 1250 1550ALLEN 1600 1900.14 rows selected.定义列的别名定义列的别名定义列的别名定义列的别名 SQL SELECT ename AS name,sal salary FROM emp;NAME SALARY-.SQL SELECT ename Name,sal*12 Annual Salary FROM emp;Name Annual Salary-.使用字符连接运算符使用字符连接运算符使用字符连接运算符使用字符连接运算符SQL SELECTename+job AS Employe
23、es FROM emp;Employees-KINGPRESIDENTBLAKEMANAGERCLARKMANAGERJONESMANAGERMARTINSALESMANALLENSALESMAN.14 rows selected.SQL Server2000使用+进行字符连接运算ORACLE使用|进行字符连接运算使用字符连接运算符使用字符连接运算符使用字符连接运算符使用字符连接运算符Employee Details-KING is a PRESIDENTBLAKE is a MANAGERCLARK is a MANAGERJONES is a MANAGERMARTIN is a SALE
24、SMAN.14 rows selected.SQL SELECT ename+is a +job AS Employee DetailsFROM emp;消除重复行消除重复行消除重复行消除重复行SQL SELECT deptno FROM emp;DEPTNO-10 30 10 20.14 rows selected.l默认情况下的选择操作产生了重复行 消除重复行消除重复行消除重复行消除重复行SQL SELECT DISTINCT deptno FROM emp;DEPTNO-10 20 30 l使用DISTINCT参数消除重复行练习练习:l如何对SQL Server2000的实例数据库Nor
25、thwind实现以下查询:1:查询所有订单的详细信息2:查询所有订单的订购日期Select from ordersSelect orderid,orderdate from orders练习练习:3:查询所有订单的订购日期及预计的交货日期(假定通常交货期为30天)Select orderid,orderdate,orderdate+30 from ordersSelect orderid,orderdate,预计的发货日期预计的发货日期,orderdate+30 from ordersSelect orderid,orderdate+30 as 预计的发货日期预计的发货日期 from orde
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 数据库 标准 语言 SQL
限制150内