资源描述:
《2012第6章SQL语言(讲课用).doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、第6章SQL语言6.1SQL概述SQL是结构化查询语言,由四部分构成,分别为数据定义,数据查询,数据操纵和数据控制。6.2SQL的数据定义功能6.2.1创建数据表•命令:CREATE TABLE<表名>[FREE](<字段名1><字段类型>[<字段宽度>[,小数位数]][NULL/NOTNULL][CHECK<表达式>][ERROR<提示信息>][DEFAULT<表达式>][PRIMARYKEY/UNIQUE][,<字段名2>…]•功能:创建数据表结构createtable学生;(学号c(8)primarykeynotnull,;姓名
2、c(8)notnull,;性别c(2)default'男'check性别='男'or性别='女'error'性别必须是男或女',;出生年月dcheck(出生年月<={^1990-01-01})and(出生年月>={^1960-01-01}),;入校总分n(3),;三好生l,;特长m,;照片g)Null子句定义字段可以为空;notnull子句定义字段不能为空值;primarykey子句定义表的主索引;default定义字段的默认值,定义的默认值的类型应和字段的类型相同;check定义字段的有效性规则,有效性规则必须是一个逻辑表达式;er
3、ror定义当表中的记录违反有效性规则时系统提示的出错信息。定义的出错信息必须是字符串表达式,字符串定界符不能省略。•注意:createtable是一条命令,分号(;)是续行号,字段之间用逗号(,)隔开。6.2.2修改数据表•命令:ALTERTABLE<表名>[ADD/ALTER/drop/rename[COLUMN]<字段名><字段类型>[<字段宽度>[,小数位][NULL/NOTNULL][CHECK<表达式>][ERROR<提示信息>][DEFAULT<表达式>][PRIMARYKEY/UNIQUE]•功能:修改基本表结构•例:在
4、“学生”表中增加“电话”字段,并设为候选索引。ALTERTABLE学生;ADDCOLUMN电话C(8)6.2.3 删除数据表•当某个数据表无用时,可将其删除,删除后,该表中的数据和在此表上所建的索引都被删除。•命令:DROP TABLE<表名>•功能:删除数据表。•例:删除表“学生”DROP TABLE 学生6.2SQL的数据查询功能•SQL的查询功能实际上是数据操纵语言(DataManipulationLanguage简称DML)的范畴。•数据查询是对数据库中的数据按指定内容和顺序进行检索输出•数据查询是数据库的核心操作。•SQL语
5、言的数据查询只有一条SELECT语句,但用途最广泛,具有灵活的使用方法和丰富的功能。6.2.1SELCET命令的格式•命令:SELECT[ALL/DISTINCT][TOP<表达式>[PERCENT]][<别名>.]<列表达式>[AS<栏名>][,[<别名>.]<列表达式>[AS<栏名>]…]FROM[<数据库名!>]<表名>[,[<数据库名!>]]<表名>…][INNER/LEFT/RIGHT/FULLJOIN[<数据库名!>]<表名>[ON<连接条件>…]][[INTO<新表名>]/TOFILE<文件名>/TOPRINTER/TO
6、SCREEN]][WHERE<连接条件>[AND<连接条件>…][AND/OR<筛选条件>[AND/OR<筛选条件>…]]][GROUPBY<列名>[,<列名>..]]][ORDERBY<列名>[ASC/DESC][,<列名>[ASC/DESC]…];•功能:实现数据查询。SELECT语句的执行过程:根据WHERE子句的连接和检索条件,从FROM子句指定的基本表或视图中选取满足条件的元组再按SELECT子句中指定的列表达式,选出元组中的属性值形成结果表如有GROUP子句,则将查询结果按照指定<列名>相同的值进
7、行分组如果GROUP子句后有HAVING短语,则只输出满足HAVING条件的元组如果有ORDER子句,查询结果还要按照指定<列名>的值进行排序。•SELECT语句中各子句的使用分为:投影查询、条件查询、分组查询、查询排序、连接查询、子查询。6.3.2投影查询•例6-6:查询学生的情况。SELECT 学号,姓名,入校总分,性别,;出生年月 FROM 学生注:可以重新指定列的顺序。•例6-7:查询学生的全部情况。SELECT * FROM 学生•例6-8:查询入校总分最低的五名学生基本情况,按入校总分由低到高进行排序,同时指定表中的字段在
8、查询结果中的列标题。SELECTTOP5学号AS学生编号,姓名AS学生姓名,;性别AS学生性别,;入校总分AS高考分数;FROM学生ORDERBY入校总分注:top必须和orderby一起使用•例6-9:查询选课学生的学