资源描述:
《关系数据库语言SQL.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、关系数据库语言SQL本章主要内容SQL的主要功能SQL的数据定义功能SQL的数据操纵功能用户访问数据库必须通过DBMS进行;DBMS必须向用户提供访问数据库的语言,用户使用这些语言构成相应的命令;用户向DBMS提交命令,DBMS执行命令;DBMS将执行命令后得到的结果返回给用户。用户DBMSDB现在,所有关系型数据库管理系统(RDBMS)提供给用户访问数据库的语言是SQL;SQL——StructuredQueryLanguage——结构化查询语言SQL不仅提供了对数据查询的语言,而且还提供了数据定义、数据操作、数据
2、控制等语言。SQL概述SQL是最通用的关系数据库操作语言。在1986年被ANSI确认为是关系数据库语言,并发布了一种SQL86标准,之后又推出了SQL89、SQL92标准,现正制定SQL3标准。市场上所有RDBMS都支持SQL标准,但又根据需要进行了扩充。MicroSoft公司对标准SQL也进行了扩展,推出了自己的Transact_SQL,简称T_SQL。SQL语言分为三种子语言,分别是:数据定义语言(DDL)用于定义数据库、表、视图等。主要有CREATE、ALTER、DROP语句。数据操纵语言(DML)用于插入、
3、修改、删除和查询数据。主要有:INSERT、DELETE、UPDATE、SELECT语句。数据控制语言(DCL)用于管理数据库用户对数据库中表、视图等的使用权限。主要有GRANT、REVOKE语句。SQL功能动词数据查询SELECT数据操纵INSERT,UPDATE,DELETE数据定义CREATE,DROP,ALTER数据控制GRANT,REVOKE数据定义1定义数据库CREATEDATABASE<数据库名>[参数1,…参数n](1)CREATEDATABASE为关键字。(2)尖括号“<>”这部分,表示是不可省略
4、的。(3)中括号“[]”这部分,表示是可省略的。如语法中“[参数1…参数n]”表示这些参数能省略。【例1】创建一个学生选课数据库,取名为StudentsInfoCREATEDATABASEStudentsInfo删除数据库DROPDATABASE<数据库名>[,...n]数据库正在使用、正在被恢复时不能被删除删除数据库后,与此数据库有关联的数据库文件和事务日志文件、存储在系统数据库中的关于该数据库的所有信息都会被删除定义表结构表结构:定义表由几个列组成,每个列的列名是什么、该列中存放什么样的数据(由数据类型决定)、
5、该列的长度是多少、列中存放的数据有什么样的约束、表中各列之间有什么样的约束等。语法:CREATETABLE<表名>(<列名><数据类型>[列级完整性约束][,…n][,…n][,表级完整性约束[,…n]])语句说明:(1)<表名>用户给定的标识符。即所要定义的表名。表名最好取有意义的名字,如Students,做到见名知意;同一个数据库中,表名不允许同名。(2)<列名>用户给定的列名,最好取有意义的列名,如Sno,Cno,做到见名知意。(3)<数据类型>:指定该列存放数据的数据类型。各RDBMS所提供的数据类型略有不
6、同语句举例【例2】要在当前数据库StudentsInfo中的定义一个表,表名为Students,表中各列的要求见表3-1。CREATETABLEStudents(SnoCHAR(10)PRIMARYKEY,SnameCHAR(8)NOTNULL,SsexCHAR(1)NOTNULLCHECK(Ssex='F'ORSsex='M'),SageINTNULLSdeptCHAR(20)DEFAULT'Computer')定义该表的SQL语句:【例3】要在当前数据库StudentsInfo中的加入Courses表,表中各列
7、的要求见表3-2。CREATETABLECourses(CnoCHAR(6)PRIMARYKEY,CnameCHAR(20)NOTNULL,PreCnoCHAR(6),CreditsINT)定义该表的SQL语句:【例4】要在当前数据库StudentsInfo中的加入grade表,表中各列的要求见表3-3。CREATETABLEgrade(SnoCHAR(10)NOTNULLREFERENCESStudents(Sno),CnoCHAR(6)NOTNULLREFERENCESCourses(Cno),GradeINT
8、,PRIMARYKEY(Sno,Cno))数据查询数据查询用来描述怎样从数据库中获取所需的数据。数据查询用到的语句就是查询语句,即SELECT语句,它是数据库操作中最基本、最重要的语句之一。SELECT语句的功能就是从一个或多个表或视图(一种虚拟表)中查到满足条件的数据。它的数据源是表或视图,而结果是另一个表。查询语句基本结构语法:SELECT<目标列名表>