第3章 t-sql语言

上传人:今*** 文档编号:107023965 上传时间:2019-10-17 格式:PPT 页数:143 大小:1.26MB
返回 下载 相关 举报
第3章 t-sql语言_第1页
第1页 / 共143页
第3章 t-sql语言_第2页
第2页 / 共143页
第3章 t-sql语言_第3页
第3页 / 共143页
第3章 t-sql语言_第4页
第4页 / 共143页
第3章 t-sql语言_第5页
第5页 / 共143页
点击查看更多>>
资源描述

《第3章 t-sql语言》由会员分享,可在线阅读,更多相关《第3章 t-sql语言(143页珍藏版)》请在金锄头文库上搜索。

1、第3章 T-SQL语言,计算机系 胡骏,背景,SQL是结构化查询语言(Structured query language)英文的缩写,读为sequel。目前所使用的SQL3。通过语言可以对数据库对象进行查询和更新(添加、删除、修改)。 SQL语言既是自含式语言,又是嵌入式语言。 用户可以在终端键盘上直接键入SQL命令对数据库进行操作,还能够嵌入到高级语言(例如C、COBOL、FORTRAN、PL/1)程序中,供程序员设计程序时使用,背景,T-SQL语言的组成部分 数据定义语言(Data Definition language, DDL) 数据操纵语言(Data Manipulation lan

2、guage, DML) 数据控制语言(Data Control Language, DCL) 系统存储过程(System stored Procedure) 附加的语言元素,背景,数据定义、数据操纵、数据控制的核心功能只用了10个动词,3.1SQL Server 2000 的数据类型,SQL的数据类型分为7类26种 数值数据类型、字符数据类型、日期和时间数据类型、文本和图像数据类型、货币数据类型、二进制数据类型、特殊数据类型。 注意整数、字符数据类型,习题,1. 下面哪一个不是SQL Server 2000的基本数据类型 () A.VARIANT B.VARCHAR C.VARBINARY D

3、.NVARCHAR 2.smallint是SQL Server 2000的数据类型。(),3.2 数据定义语言,数据库包括若干个对象,要完成对这若干个对象的创建、修改、删除,可以使用 create alter drop 判断: 数据定义语言只能对表进行创建、修改、删除操作。(),3.2 数据定义语言之Create,/*下面的例子将创建学生表。*/ CREATE TABLE 学生 ( 学号 char(10) NOT NULL, /*学号字段*/ 姓名 char(8) NULL, /*姓名字段*/ 性别 char(2) NULL, /*性别字段*/ 年龄 int NULL, /*年龄字段,int数

4、据类型后不能指定大小*/ 系 varchar(20) NULL/*系别字段*/ ),3.2.1 数据定义语言之Create,练习 请同学们参阅P4页表0-1,写出相应的创建语句。 答案 见录像,创建表的进阶,若想在创建表的过程中指定主键,对程序稍作修改即可。 CREATE TABLE 学生 ( 学号 char(10) NOT NULL PRIMARY KEY, 姓名 char(8) NULL, 性别 char(2) NULL, 年龄 int NULL, 系 varchar(20) NULL ),创建表的进阶,若想在创建表的过程中指定学号的范围如:200800-200899并设定为主键,对程序稍

5、作修改即可。 CREATE TABLE 学生 ( 学号 char(10) NOT NULL PRIMARY KEY constraint 约束 check (学号 like 20080-90-9), 姓名 char(8) NULL, 性别 char(2) NULL, 年龄 int NULL, 系 varchar(20) NULL ),结果图,约束的作用,在创建表的过程中加入约束给出输入表中数据的规则。效果见录像,练习,请同学们参阅P4页表0-1,写出相应的创建语句。并设定图书编号为主键,且其范围在112266-556699之间。,创建视图,视图相当于ACCESS 2003中的查询对象 Crea

6、te view 学生年龄视图 as select 姓名,年龄 from 学生 go 效果见录像,创建存储过程,存储过程相当于ACCESS 2003 中的宏对象 Create procedure 打印 as print 你好! go 运行存储过程 exec 打印 运行结果见录像,3.2.2 数据定义语言之alter,修改学生表,增加一个班号列 程序清单如下: ALTER TABLE 学生 ADD 班号 CHAR(6) not null 修改结果见录像,3.2.3 数据定义语言之drop,删除学生表 程序清单如下: DROP table 学生,3.3 数据操纵语言,数据操纵语言是指用来查询、添加、

7、修改和删除数据库中数据的语句,这些语句包括SELECT、INSERT、UPDATE、DELETE等。 其中INSERT、UPDATE、DELETE操作对象只能是表或视图中的数据。,3.3.1数据操纵语言之SELECT,SELECT ALL | DISTINCT TOP expression PERCENT WITH TIES INTO new_table FROM ,.n WHERE GROUP BY ALL group_by_expression ,.n WITH CUBE | ROLLUP HAVING ORDER BY order_expression ASC|DESC COMPUTE

8、AVG|COUNT|MAX|MIN|SUM (expression) ,.n BY expression ,.n ,3.3.1数据操纵语言之SELECT,参数说明如下: SELECT子句用于指定所选择的要查询的特定表中的列,它可以是星号(*)、表达式、列表、变量等。 INTO子句用于指定所要生成的新表的名称。 FROM子句用于指定要查询的表或者视图,最多可以指定16个表或者视图,用逗号相互隔开。 WHERE子句用来限定查询的范围和条件。 GROUP BY子句是分组查询子句。 HAVING子句用于指定分组子句的条件。 ORDER BY子句可以根据一个列或者多个列来排序查询结果,在该子句中,既可以

9、使用列名,也可以使用相对列号。 ASC表示升序排列,DESC表示降序排列。 COMPUTE子句使用集合函数在查询的结果集中生成汇总行。 COMPUTE BY子句用于增加各列汇总行。,Select语句简单应用,1. Select * from 学生 where 学号=200801 2. Select 学号,姓名 from 学生 where 学号=200701 3. Select 学生.学号,学生.姓名 from 学生 where 学号=200701,Select语句简单应用,在查询的过程中可以对字段名进行修改例如: select 学号 as sno from 学生,子查询,在WHERE子句中包含

10、一个形如SELECT-FROM-WHERE的查询块,此查询块称为子查询或嵌套查询,包含子查询的语句称为父查询或外部查询。 当子查询的返回值只有一个时,可以使用比较运算符(=, , =, =, !=)将父查询和子查询连接起来。,子查询,例子:查询电子商务班中与庞伟英语考的一样的所有考生的姓名。 select 姓名 from 电子商务成绩表 where 大学英语=(select 大学英语 from 电子商务成绩表 where 姓名=庞伟) 结果见录像,子查询练习,请查询电子商务成绩表中管理学与肖毅考的一样同学的姓名。,小技巧之select 参数简单应用,SELECT ALL | DISTINCT

11、TOP expression PERCENT INTO new_table FROM ,.n ,小技巧之select 参数简单应用,ALL 指定在结果集中可以显示重复行。ALL 是默认设置。 DISTINCT 指定在结果集中只能显示唯一行。为了 DISTINCT 关键字的用途,空值被认为相等。 TOP n PERCENT 指定只从查询结果集中输出前 n 行。n 是介于 0 和 4294967295 之间的整数。如果还指定了 PERCENT,则只从结果集中输出前百分之 n 行。当指定时带 PERCENT 时,n 必须是介于 0 和 100 之间的整数。 如果查询包含 ORDER BY 子句,将输

12、出由 ORDER BY 子句排序的前 n 行(或前百分之 n 行)。如果查询没有 ORDER BY 子句,行的顺序将任意。,DISTINCT&ALL参数,若想从电子商务成绩表中查询大学英语分数且不重复可用distinct参数 select distinct 大学英语 from 电子商务成绩表 效果见录像 若想从电子商务成绩表中查询大学英语分数但可重复可用all参数,或不写 select all 大学英语 from 电子商务成绩表 效果见录像,TOP n PERCENT参数,若想查询电子商务成绩表中前10条大学英语的成绩则可用top 10参数 select top 10 大学英语 from 电子

13、商务成绩表 效果见录像 若想查询电子商务成绩表中前10%条大学英语的成绩则可用top 10 PERCENT参数 select top 10 PERCENT 大学英语 from 电子商务成绩表 效果见录像,INTO 参数,是指将查询出来的结果导入到一个新表中。 不要认为是将查询结果导入到另一个已有的表当中!能够将一个表中的结果导入到另一个已有的表中的命令是insert。 判断:select 子句中的Into参数就是将查询的结果导入到一个表中。(),INTO 参数,将电子商务成绩表中学生的姓名与大学英语分数导入到一个新表中,新表名称位电子商务班大学英语成绩表: select 姓名, 大学英语 in

14、to 电子商务班大学英语成绩表 from 电子商务成绩表 运行结果见录像,3.3.1 数据操纵语言之Select,练习 1.请写出从电子商务成绩表中查询大学英语前10条不重复记录的语句。 2.请写出从电子商务成绩表中查询与庞伟英语考的一样的前10位考生的姓名并导入到一个新表中的语句。,3.3.2 数据操纵语言之Insert,INSERT语句用于向数据库表或者视图中加入一行数据。INSERT语句的语法形式如下: INSERT INTO table_or_view (column_list) VALUES(data_values) 其中,table_or_view是指要插入新记录的表或视图;col

15、umn_list是可选项,指定待添加数据的列; VALUES子句指定待添加数据的具体值。,3.3.2 数据操纵语言之Insert,在学生表中加入一段记录 insert into 学生(学号,姓名,性别,年龄,系) values (200813,张三,男,18,计算机) 如果你不想按照表字段的顺序添加记录可以按照以下程序运行可以达到同样的效果。 insert into 学生(姓名,学号,性别,年龄,系) values (张三, 200813,男,18,计算机) 效果见录像,3.3.2 数据操纵语言之Insert,在进行数据插入操作时须注意以下几点: (1)必须用逗号将各个数据分开,字符型数据要用

16、单 引号括起来。 (2)INTO子句中没有指定列名,则新插入的记录必须在每个属性列上均有值,且VALUES子句中值的排列顺序要和表中各属性列的排列顺序一致。 (3)将VALUES子句中的值按照INTO子句中指定列名的顺序插入到表中。 (4)对于INTO子句中没有出现的列,则新插入的记录在这些列上将取空值,,不指定字段名的插入记录方法,insert into 学生 values (200813,张三,男,18,计算机) 效果见录像,练习,请你向P4页图书表中插入一条记录 图书编号:550365 分类号:TP5/13 书名:ACCESS 2003实用教程 作者:李四 出版单位:华中科技大学出版社 单价:28 备注:无,3.3.3 数据操纵语言之

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号