实验2 T-SQL语言基础

合集下载

实验2 T-SQL简单数据库查询

实验2 T-SQL简单数据库查询

河南工业大学实验报告课程数据库原理及应用_ 实验名称 T-SQL简单数据库查询系别 ____信息科学与工程学院计算机科学系 _______________专业班级 ___ 计科 10 级 04 班 ____ __ 实验报告日期 2012-09-25姓名___ _______ 学号____20104683_______教师审批签字1.实验目的1.牢记SELECT 语句的基本语法格式;2.掌握利用SQL语句进行多表内/外连接查询和嵌套查询的方法;3.掌握GROUP BY子句、HA VING子句、ORDER BY子句的用法;4.掌握(NOT)IN、(NOT)EXISTS等谓词的用法;5.掌握SUM、A VG、COUNT、MAX、MIN等集合函数的用法;2.实验内容及要求对CPXS数据库,完成如下查询任务:根据上述情况完成:1.查询地区在“郑州”的客户编号和客户名称,结果中各列的标题分别指定为:CustomerID和CustomerName。

2.查询价格在1000-2000之间的产品信息。

3.查询产品名称含有“变频”字样的产品情况。

4.按商品编号统计各种产品在国庆黄金周期间的销售单数(记录数)、总销量和销售总额,并对统计结果按照销售总额降序排序。

5.列出购买2种以上产品的客户编号。

6.(结合上题)列出购买2种以上产品的客户编号、客户名称、地区、负责人和电话。

7.统计每个客户在国庆黄金周期间的购物情况(客户编号、名称、消费总金额和最近消费日期),即使某些客户没有消费记录,也要包括其信息。

8.查询在国庆黄金周期间没有任何销售记录的产品编号、名称及库存量。

3.实验过程及结果(说明:要写出相关SQL语句,实验结果可以是运行画面的抓屏,抓屏图片要尽可能的小。

)查询地区在“郑州”的客户编号和客户名称T-SQL语言如下use CPXSselect 客户编号as CustomerID,客户名称as CustomerName from 客户 where 地区='郑州市'运行结果如图1 地区在“郑州”的客户编号和客户名称图1 地区在“郑州”的客户编号和客户名称查询价格在1000-2000之间的产品信息T-SQL语言如下use CPXSselect * from 产品 where 价格between 1000 and 2000运行结果如图2 价格在1000-2000之间的产品信息图2 价格在1000-2000之间的产品信息查询产品名称含有“变频”字样的产品情况T-SQL语言如下use CPXSselect * from 产品 where 产品名称like '%变频%'运行结果如图3 含有“变频”字样的产品情况图3 含有“变频”字样的产品情况查询商品编号统计各种产品在国庆黄金周期间的销售情况查询T-SQL语言如下use CPXSselect count(产品编号) 销售单数,sum(数量) 总销量,sum(销售额) 销售总额from 销售where 销售日期between '2011-10-01'and '2011-10-07'group by 产品编号order by 销售总额desc运行结果如图4 各种产品在国庆黄金周期间的销售情况图4 各种产品在国庆黄金周期间的销售情况列出购买2种以上产品的客户编号T-SQL语言如下use CPXSselect 客户编号 from 销售group by 客户编号having count(产品编号)>=2运行结果如图5 购买2种以上产品的客户编号图5 购买2种以上产品的客户编号列出购买2种以上产品的客户编号、客户名称、地区、负责人和电话T-SQL语言如下use CPXSselect * from 客户 where 客户编号in(select 客户编号from 销售group by 客户编号having count(产品编号)>=2)运行结果如图6 购买2种以上产品的客户信息图6 购买2种以上产品的客户信息统计每个客户在国庆黄金周期间的购物情况T-SQL语言如下use CPXSselect a.客户编号,a.客户名称,sum(销售额) 消费总金额,max(销售日期) 最近消费日期from 客户 a left join 销售 bon a.客户编号=b.客户编号 and 销售日期 between '2011-10-01' and '2011-10-07' group by a.客户编号,客户名称运行结果如图7 客户在国庆黄金周期间的购物情况图7 客户在国庆黄金周期间的购物情况查询在国庆黄金周期间没有任何销售记录的产品编号、名称及库存量T-SQL语言如下use CPXSselect * from 产品where 产品编号 not in (select distinct 产品编号 from 销售 )运行结果如图8 黄金周期间没有销售记录的产品信息图8 黄金周期间没有销售记录的产品信息4.实验中的问题及心得在做第七个小题时总是出现客户·客户名称错误,把客户名称加入到group by分组中就行了,不能熟练记得select语句,多练习。

T-SQL简介及基本语法

T-SQL简介及基本语法

T-SQL简介及基本语法⼀、T-SQL概述SQL Server⽤于操作数据库的编程语⾔为Transaction-SQL,简称T-SQL。

T-SQL与PL/SQL不同,并没有固定的程序结构。

T-SQL包括以下4个部分:DDL:定义和管理数据库及其对象,例如create、alter和drop等。

DML:实现对数据库表各对象的操作,例如insert、update等。

DCL:数据控制语⾔,实现对数据库进⾏安全管理和权限管理等控制,例如grant、revoke、deny等。

附加的语⾔元素。

T-SQL的附加语⾔元素,包括变量、运算符、函数、注释和流程控制语句等。

在T-SQL中,命令和语句的书写是不区分⼤⼩写的。

⼆、T-SQL编程基础1、标识符①T-SQL规则标识符由字母、数字、下划线、@、#、$符号组成,其中字母可以是a-z或A-Z,也可以是来⾃其他语⾔的字母字符。

⾸字符不能为数字和$。

标识符不允许是T-SQL保留字。

标识符内不允许有空格和特殊字符长度⼩于128②界定标识符 对于不符合标识符规则的标识符,则要使⽤界定符⽅括号([])或双引号(“”)将标识符括起来。

如标识符[My Table]、“select”内分别使⽤了空格和保留字select。

2、数据类型在SQL Server中提供了多种系统数据类型。

除了系统数据类型外,还可以⾃定义数据类型。

①系统数据类型(1)精确数字数据类型int 存储整型数值,存储数值范围为-231~231-1。

bigint bigint⽐int能存储更⼤的数值,存储数值范围为-263~263-1。

smallint 数据类型的范围数值⽐int更⼩,在-215~215-1之间。

定义这种数据类型的时候⼀定要⼩⼼,要确定存储的数据不会超过smallint所能存储的数值范围。

tinyint 数据类型的范围数值⽐smallint更⼩,存储从 0 到 255 的整型数据。

decimal/numeric decimal[(p,s)]和numeric[(p,s)]这两种数据类型⽤于存储相同精度和范围的数据(⼩数点的左、右两边存储的数值位数相同),所能存储的数值范围为-1038+1~1038-1。

T-SQL基础教程

T-SQL基础教程
变量声明 DECLA变量赋值 1)用SELECT语句为局部变量赋初始值 select @variable=expression 2)用SET语句为局部变量赋初值 SET @variable=expression
例 Declare @a Datetime,@b Datetime select @a=max(出生日期) from student Set @b=getdate() select @a
1 常量
常量
表示特定数据值的符号 格式:取决于其数据类型,如:
• 数值型:56,12.3,0x12,1E5 • 字符型:’abc’ • 货币型:$12.5
2.SQL Server 变量
和C语言一样,变量分为: 局部变量:
局部变量必须以标记@作为前缀 ,如@age 局部变量的使用也是先声明,再赋值 全局变量: 全局变量必须以标记@ @作为前缀,如@@version 全局变量由系统定义和维护,我们只能读取,不能修改全
7. 查看链接服务器 sp_helplinkedsrvlogin 查看远端数据库用户登录信息 sp_helpremotelogin
全局变量与系统存储过程
9.查看数据库里所有的存储过程和函数 use @database_name sp_stored_procedures 查看存储过程和函数的源代码 sp_helptext '@procedure_name' 查看包含某个字符串@str的数据对象名称 select distinct object_name(id) from syscomments where text like
T_SQL程序设计基础
1.1 T-SQL语言简介
T-SQL语言
SQL( Structure Query Language)语言是关系型数据 库标准应用语言

SQL实验二:数据库查询实验报告

SQL实验二:数据库查询实验报告

实验二数据库的查询实验实验目的和要求(1)掌握SQL Server查询分析器的使用方法,加深对SQL和Transact-SQL语言的查询语句的理解。

(2)熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。

(3)熟练掌握数据查询中的分组、统计、计算和组合的操作方法。

实验内容和原理在实验一定义的“学生成绩数据库”中,使用T-SQL 语句完成以下查询:(1 )求计算机系学生的学号和姓名。

(2)求选修了数学的学生学号、姓名和成绩。

(3)求选修01 课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。

(4)查找选修课程的平均成绩位于前三名的学生的学号。

(5)查询计算机系的姓刘且单名的学生的信息。

(6)查询至少选修两门课程的学生学号。

(7)查询学生的学号、课程号以及对应成绩与所有学生所有课程的最高成绩的百分比。

(8)查询选修“数据库”课程,且成绩在80 分以上的学生的学号和成绩。

(9)查询所有姓“王”的同学没有选修的课程名。

(请分别用exists和in完成该查询) (10)查询选修了全部课程的学生的姓名。

(请至少写出两种查询语句)(11)求选修了学生“ 95001”所选修的全部课程的学生学号和姓名。

(12)查询每一门课的间接先修课。

(13)列出所有学生所有可能的选课情况。

(14)列出每个学生的学号及选修课程号,没有选修的学生的学号也一并列出。

(15)输出与“张三”同性别并位于同一个系的所有同学的姓名。

(请至少写出两种查询语句)(16)查询至少被两名男生选修的课程名。

(17)对被两名以上学生所选修的课程统计每门课的选课人数。

要求输出课程号和选修人数,查询结果按人数降序排列;若人数相同,按课程号升序排列。

(18)列出选修课程超过 3 门的学生姓名及选修门数。

(19)检索至少选修课程号为01 和03 的学生姓名。

(20)检索至少选修课程“数学”和“操作系统”的学生学号。

(21 )查询‘操作系统'课程的最高分的学生的姓名、性别、所在系(22)查询数据结构的成绩低于操作系统的成绩的学生姓名及该生的这两门课的成绩(23)所有成绩都在70 分以上的学生姓名及所在系。

实验二T-SQL语言基本操作

实验二T-SQL语言基本操作

实验二 T-SQL语言基本操作一.实验目的本实验主要了解T-SQL语句以及在查询分析器中执行T-SQL语句的方法。

通过本实验,读者将了解使用T-SQL语句创建数据库和数据表;掌握数据库查询语句Select语句的基本语法及使用方法;掌握对数据表进行数据插入、修改和删除的T-SQL语句;了解T-SQL语言的各种运算符、控制语句的功能并学会简单的程序编写。

二.实验环境●Microsoft SQL Server 2005 SSMS●Book数据库三.实验内容1.利用对象资源管理器中提供的“生成SQL脚本”命令编写Book数据库中数据表对象“T_Teacher”、“T_BookOrder”、“T_BookInfo”、“T_Publisher”、“T_Academy”创建的脚本文件D:\Table.sql。

实验参考步骤:1) 在对象资源管理器右单击Book数据库,选择“任务/生成脚本”菜单,进入“生成脚本”向导,选中“Book”数据库,并勾选“为所选数据库中的所有对象编写脚本”后,点击“下一步”按钮。

2) 在脚本选项对话框中点“下一步”,进入输出选项对话框,在其中选择输出文件3) 然后点“完成按钮”生成脚本文件。

2.在SSMS中,并建一个查询窗口,在其中输入以下T-SQL语句后,点“执行”按钮完成实验一中的第1题。

CREATE DATABASE BookON (NAME=Book_Data,FILENAME='C:\DBF\BOOK_Data.MDF',SIZE=5MB,MAXSIZE=50MB,FILEGROWTH=2MB)LOG ON (NAME=Book_log,FILENAME='C:\DBF\Book_Log.LDF',SIZE=5MB,MAXSIZE=100MB,FILEGROWTH=1MB)3.编写SELECT语句,建立以下查询1)显示T_BookInfo表中所有字段的值。

T-SQL语法基础

T-SQL语法基础

T-SQL语法基础⼀、T-SQL语⾔的分类 DDL-数据定义语⾔ create-创建 alter-修改 drop-删除(针对对象) DML-数据操作语⾔ Insert-插⼊ update-更新 delete-删除(针对对象的内容) DQL-数据查询语⾔ select-查询 DCL-数据控制语⾔ revoke-撤销 deny-拒绝 grant-同意、授权⼆、语法元素 批处理元素 go-语法结束标志,执⾏前⾯的语句或⼀个完成的处理过程 exec-调⽤执⾏存储过程 注释 ⾏注释:-- 块注释:/* */三、数据类型 整数型 Bigint:8个字节,范围:-263~263-1,精度:19 Integer:4个字节,范围:-231~231-1,精度:10 Smallint:2个字节,范围:-215~215-1,精度:5 Tinyint:1个字节,范围0~255,精度:3 精确数值型 Numeric(5,3) -共五位数,其中三位是⼩数 Decimal(15,5)-共15位数,其中五位是⼩数(默认精度为18) Decimal(p,s)-p为精度,s为⼩数位数 精度为1-9,长度为5个字节 精度为10-19,长度为9个字节 精度为20-28,长度为13个字节 精度为29-38,长度为17个字节 注:Numeric与Decimal在是同义词,可互换使⽤,建议使⽤Decimal 近似数值型 real等价于float(24) float[(n)]其中n为存储float数值尾数的尾数(以科学记数法表⽰),因此可以确定精度和存储⼤⼩。

如果指定了n,则它必须是介于1和53之间的某个值。

n的默认值为53。

n 值精度存储⼤⼩1-247 位数 4 个字节25-5315 位数8 字节 货币型 Money 范围:-263~263-1,精确⼩数后4位,占8个字节 Smallmoney 范围:-231-231-1,精确⼩数后4位,占4个字节 位型 bit 表⽰0或1 SQL Server 数据库引擎可优化 bit 列的存储。

SQL Sever 2005第2章 T-SQL语言基础

SQL Sever 2005第2章  T-SQL语言基础
例如: DECLARE @name varchar(8) DECLARE @seat int
赋值
或 SET @变量名 =值
SELECT @变量名 = 值
例如: SET @name=‘张三’ SELECT @name=‘张三’
9
局部变量存储查询
可以在执行SELECT命令查询数据时,在 SELECT命令中直接将列值赋给变量
货币数据类型
特定数据类型 用户自定义数据类型 新数据类型
5
MONEY、SMALLMONEY
TIMESTAMP、UNIQUEIDENTIFIER SYSNAME SQL_VARIANT、TABLE
数据类型
日期和时间的输入格式 :
英文+数字格式 :月份可用英文全名或缩写,且不区 分大小写;年和月日之间可不用逗号; 数字+分隔符格式 : YMD: 2000/6/22 2000-6-22 2000.6.22 MDY: 3/5/2000 3-5-2000 3.5.2000 DMY :31/12/1999 31-12语句示例
SELECT * FROM student SELECT * FROM mark UPDATE mark SET score=score+2 GO GO是批处理的标志,表示SQL Server将这些T-SQL语句 编译为一个执行单元,提高执行效率 一般是将一些逻辑相关的业务操作语句,放置在同一批 中,这完全由业务需求和代码编写者决定
24
批处理命令
GO
向 SQL Server 描述由 Transact-SQL 语句组 成的批处理 实际上并不是 Transact-SQL 语句
EXEC
用于执行用户定义的函数、系统存储过程、用 户自定义存储过程或一个扩展的存储过程 在一个 Transact-SQL 批处理内部,EXEC 能 控制一个字符串的运行

T-SQL语言:数据定义与操纵、编程操作;连接、视图、存储过程、触发器

T-SQL语言:数据定义与操纵、编程操作;连接、视图、存储过程、触发器

实验三T-SQL语言:数据定义与操纵、编程操作;连接、视图、存储过程、触发器一、实验目的1.掌握利用T-SQL语言进行数据定义、数据操纵的方法。

2.掌握利用T-SQL语言编程的技巧和方法。

3掌握利用T-SQL语言进行数据连接、视图的定义。

4掌握利用T-SQL语言定义存储过程、触发器。

5加深T-SQL语言编程的技巧和方法的掌握。

二.实验平台1.操作系统:Windows 2000 或者Windows XP。

2.数据库管理系统:SQL server 2000 个人版。

三、实验内容1.利用T-SQL语言建立若干个表(教材P75的表)。

(Transact-SQL是Microsoft SQL Server提供的一种结构化查询语言)2.利用T-SQL语言插入相应的数据。

3.编程实现如下操作:1)求供应工程J1零件的供应商号码;2)求供应工程J1零件P1的供应商号码;3)求供应工程J1零件为红色的供应商号码。

4利用实验建立的表,建立关于工程项目相关的视图,包括项目号、采用零件号、零件名、供应商。

5建立查询上述内容的存储过程。

6建立在表J加入新项目号时,自动在其它相关的表中插入新项目号。

四、实验过程1.新建一个SPJ数据库,打开SQL查询分析器,利用T-SQL语言按照教材P74习题5的要求建立相应的表。

2.向表中插入数据,例如:InsertInto SPJValues (’s1’,’p1’,’j1’,’200’)3.1) SELECT DISTINCT SNOFROM SPJWHERE JNO='J1';2) SELECT DISTINCT SNOFROM SPJWHERE JNO='J1'AND PNO='P1';3) SELECT DISTINCT SNOFROM SPJ,PWHERE JNO='J1' AND P.PNO=SPJ.PNO AND COLOR='红';4create view GCXMASSELECT J.JNO,P.PNO,PNAME,SNAMEFROM S,P,J,SPJWHERE J.JNO=SPJ.JNO ANDP.PNO=SPJ.PNO ANDS.SNO=SPJ.SNOWITH CHECK OPTION视图的建立5.利用企业管理器将上述SQL语言填写入即可。

T-SQL语句操作数据库——基本操作

T-SQL语句操作数据库——基本操作

--考号 --学号ABLE 表名
例如:
DROP TABLE peoInfo
三、使用SQL语句创建和删除约束
约束的目的是确保表中数据的完整性。
常用的约束类型:
主键约束(Primary Key constraint):要求主键列数据唯一,并且不允许为空。 唯一约束(Unique Constraint):要求该列唯一,允许为空,但只能出现一个空值。 检查约束(Check Constraint):某列取值范围显示、格式限制等,如有关年龄的约束。 默认约束(Default Constraint):某列的默认值,如我们的性别默认为“男”。 外键约束(Foreign Key Constraint):用于在两表之间建立关系,需要指定引用主表的那一列。
示例:
/*--删除peoInfo表中地址默认约束的语句--*/ ALTER TABLE peoInfo DROP CONSTRAINT DF_peoAddress
/*--添加默认约束--*/ ALTER TABLE peoInfo ADD CONSTRAINT DF_peoAddress DEFAULT ('地址不详') FOR peoAddress
/*--添加检查约束--*/ ALTER TABLE peoInfo ADD CONSTRAINT CK_stuAge CHECK(peoAge BETWEEN 15 AND 40)
二、创建和删除表
1、创建表的语法如下:
CREATE TABLE 表名 (
字段1 数据类型 列的特征, 字段2 数据类型 列的特征, ... )
示例:
需求:创建学员信息表peoInfo。
USE people GO CREATE TABLE peoInfo (

实验二 Transact-SQL语言基础(2)

实验二 Transact-SQL语言基础(2)

实验二Transact-SQL语言基础(2)一、实验目的与要求:1、掌握T-SQL语言的基本概念、语法格式。

2、掌握T-SQL语言常规标示符的格式规则(即命名规则)。

3、熟悉T-SQL语言的数据类型。

4、掌握T-SQL语言常量的数据类型及各类型常量的表达。

5、掌握局部变量的概念、局部变量名的约定规则。

6、掌握T-SQL语言局部变量的定义语句(DECLARE)、赋值语句(SET和SELECT)。

7、掌握T-SQL语言简单输出语句(PRINT和SELECT)。

8、掌握T-SQL语言常用内部函数的使用。

注意:⑴函数名及函数的调用格式;⑵函数各参数(自变量)的数据类型及取值范围;⑶各参数(自变量)的顺序及作用;⑷函数值的数据类型。

9、掌握T-SQL语言各类型运算符及表达式的使用。

二、实验类型基本验证型三、实验内容(一)启动“Microsoft SQL Server Management Studio”并使用SQL 查询编辑器具体操作,见实验一。

(二)在SQL查询编辑器窗格中,输入以下练习的命令,理解数据类型、常量、变量、表达式、函数等相关的知识(不必交作业):1、有关常量的数据类型及表达。

(1) 字符串常量、数值常量及money常量Print ‘Shandong University’Select N‘Shandong University’,110,-1.32,1.3e9,$3000(2) bit常量和datetime常量Declare @a bit,@d datetimeSet @a=2Set @d=’2010/03/24 18:10’Select @a as ‘bit data’,@d as ‘datetime data’2、局部变量的定义、赋值与简单输出(注意:SET与SELECT语句的区别,PRINT和SELECT语句的区别)。

DECLARE @idno char(18),@sname varchar(20),@class_1 varchar(30),@bd datetime;Set @idno=’370101************’Select @sname=’Han Zhen’,@class_1=’database technology’Set @bd=substring(@idno,7,8)Select @idno,@sname,@class_1,@bd3、完成以下有关函数及表达式的练习。

实验二 T-SQL语言的应用(一)

实验二  T-SQL语言的应用(一)

实验二 T-SQL语言的应用(一)学生班级学号姓名:【实验一】利用T-sql语句声明一个长度为16的nchar型变量bookname,并赋初值为‘sql server数据库编程’并打印出来。

请将语句粘贴在下方。

declare@bookname nchar(16)set@bookname='sql server数据库编程'select@bookname【实验二】常量、变量及基本语句(1)在“图书订单管理数据库”中查询图书表(book表)中图书名称是4个字符的图书信息。

请将语句粘贴在下方。

use图书订单管理goselect*from bookwhere len(图书名称)=4(2)在“图书订单管理数据库”中利用变量和打印语句显示客户中每一笔图书订购数量最大的和最小的。

请将语句粘贴在下方。

declare@maxform int,@minform intset@maxform=(select max(订购数量)from orderform)set@maxform=(select max(订购数量)from orderform)(3)求10!。

请将语句粘贴在下方。

declare@x int,@y intset@x=1set@y=1while@x<=10beginprint@yselect@x=@x+1,@y=@y*@xend【实验三】首先将老师给你的数据库“图书订单管理数据库”附加到系统中,然后编程获取某客户的图书订购信息具体要求:使用T-SQL编程,王孔若是一名客户,现在需要获取“王若孔”的姓名、客户编号及性别等信息;然后输出“王若孔”所订购图书的明细表、订购数目及订单总金额。

具体完成步骤:1.分别为客户编号、客户姓名、性别声明变量;declare@客户编号nchar(10),@客户姓名nchar(10),@性别nchar(2)2.为这三个变量赋值;declare@客户编号nchar(10),@客户姓名nchar(10),@性别nchar(2)set@客户姓名='王若孔'set@客户编号=(select客户编号from clientswhere客户姓名='王若孔')set@性别=(select客户性别from clientswhere客户姓名='王若孔')3.用PRINT语句输出变量的值;declare@客户编号nchar(10),@客户姓名nchar(10),@性别nchar(2)print@客户编号+@客户姓名+@性别输出客户'王若孔'所订购的图书的明细(查询语句中要求查询:客户编号、客户性别、图书名称、订购日期、作者姓名、图书价格)selectclients.客户编号,clients.客户性别,book.图书名称,orderform.订购日期,authors.姓名,book.价格from clients,orderform,book,authorswhere客户姓名='王若孔'4.输出客户'王若孔'完成的订单数目以及订单总金额。

02_使用T-SQL语言进行数据操作

02_使用T-SQL语言进行数据操作


表达式作为查询列
排 序 查 询
【例】查询课程表的课程信息,报名人 数与限选人数之比 【order by子句可以使用查询结果中改 变后的列标题进行排序】 【例】查询课程表的课程信息,报名人 数与限选人数之比,要求按照报名人数 与限选人数之比排序 【例】查询课程表的教师名、课程编号 、课程名、要求查询结果首先按照教师 名降序排序,教师名相同时,按照课程 编号升序排序。


其 它 比 较 运 算
使用between …and 【例】 查询编号在’20000001’ 到’20000005’之间的班级信息 select * from class where classno between ‘20000001’ and ‘20000005’ is null 【例】 查询教师未定的课程 select * from course where teacher is null

【练习】按课程类别分组统计各类 课程的门数,并给出课程总门数
分 组 查 询
练习:在Course表中查询各系 开设的课程的最大报名人数。 分组查询中限制条件:Having 子句 select kind,sum(willnum) from course group by kind having kind='人文' or kind=' 管理'
数据控制语言DCL:用来控制用户对数据库对象操作的权 限。主要的命令有: GRANT /*授予权限*/ REMOVE /*回收所授予的权限*/
20 7

基 本 知 识
实例数据库分析 Transact-SQL语言查询语句的标准格 式: SELECT 选择列表 FROM 表(视图)的列表 WHERE 查询的条件 【例】使用星号*显示表的所有列 如:从课程表中查询所有课程的信 息

SQL实验二:数据库查询实验报告

SQL实验二:数据库查询实验报告

实验二数据库的查询实验实验目的和要求(1)掌握SQL Server查询分析器的使用方法,加深对SQL和Transact-SQL语言的查询语句的理解。

(2)熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。

(3)熟练掌握数据查询中的分组、统计、计算和组合的操作方法。

实验内容和原理在实验一定义的“学生成绩数据库”中,使用T-SQL 语句完成以下查询:(1 )求计算机系学生的学号和姓名。

(2)求选修了数学的学生学号、姓名和成绩。

(3)求选修01 课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。

(4)查找选修课程的平均成绩位于前三名的学生的学号。

(5)查询计算机系的姓刘且单名的学生的信息。

(6)查询至少选修两门课程的学生学号。

(7)查询学生的学号、课程号以及对应成绩与所有学生所有课程的最高成绩的百分比。

(8)查询选修“数据库”课程,且成绩在80 分以上的学生的学号和成绩。

(9)查询所有姓“王”的同学没有选修的课程名。

(请分别用exists和in完成该查询) (10)查询选修了全部课程的学生的姓名。

(请至少写出两种查询语句)(11)求选修了学生“ 95001”所选修的全部课程的学生学号和姓名。

(12)查询每一门课的间接先修课。

(13)列出所有学生所有可能的选课情况。

(14)列出每个学生的学号及选修课程号,没有选修的学生的学号也一并列出。

(15)输出与“张三”同性别并位于同一个系的所有同学的姓名。

(请至少写出两种查询语句)(16)查询至少被两名男生选修的课程名。

(17)对被两名以上学生所选修的课程统计每门课的选课人数。

要求输出课程号和选修人数,查询结果按人数降序排列;若人数相同,按课程号升序排列。

(18)列出选修课程超过 3 门的学生姓名及选修门数。

(19)检索至少选修课程号为01 和03 的学生姓名。

(20)检索至少选修课程“数学”和“操作系统”的学生学号。

(21 )查询‘操作系统'课程的最高分的学生的姓名、性别、所在系(22)查询数据结构的成绩低于操作系统的成绩的学生姓名及该生的这两门课的成绩(23)所有成绩都在70 分以上的学生姓名及所在系。

资料:实验2 Transact-SQL语言基础

资料:实验2 Transact-SQL语言基础

实验 2 Transact-SQL语言基础一、实验目的1.掌握局部变量的定义、赋值方法。

2.掌握运算符与表达式的内涵及应用。

3. 掌握各类函数的内涵及应用。

4. 掌握流程控制方法、注释。

二、实验内容注:将后面各图中的“000000000001”和“李强”分别改为你自己的学号、姓名。

1. 局部变量(1)执行下列语句产生语法错误(2)定义局部变量@myvar为char(20)类型,并为其赋值,最后显示@myvar的值(3)定义局部变量@myvar1和@myvar2为char(20)类型,并为它们赋值,最后显示@myvar1和@myvar2的值2. 运算符与表达式3. 函数(1)数学函数(2)字符串函数(3)日期和时间函数(4)转换函数(5)聚合函数从教学平台中下载“数据库文件04.zip”,解压得到“数据库文件04”文件夹,如下图所示。

参考教材P99-100,附加数据库pubs和学生信息。

下面以附加数据库“学生信息”为例进行说明。

按“添加”按钮,在打开的“定位数据库文件”窗口中定义“学生信息”数据库对应文件。

按“确定”按钮返回“附加数据库”窗口。

按“确定”按钮返回。

在左边的对象资源管理器中点击刷新按钮“”,可发现出现了“学生信息”数据库,如下图所示。

同样可附加“pubs”数据库,结果如下图所示。

新建查询,对“学生信息”数据库进行如下相应操作。

4. 流程控制(1)if …else语句①设有一个“学生信息”数据库,数据库中有一个“学生基本信息”表,该表包含学号、姓名、出生日期等列。

要给本月出生的学生举办庆祝生日会,每月1日选出要过生日的学生名单。

当当前计算机系统日期不为1号时,执行结果如下:当当前计算机系统日期为1日时(可先手工修改计算机系统日期为1号),执行结果如下(计算机系统日期为9月1日时):②根据当前的系统时间输出上半年或下半年。

(2)简单CASE函数设有一个“学生信息”数据库,数据库中有一个“学生基本信息”表,该表包含学号、姓名、性别等列。

TSQL编程基础

TSQL编程基础

TSQL编程基础目录T-SQL编程之一,变量和基本语句 (3)存储过程和触发器 (11)SQL Server2000自定义函数 (26)T-SQL编程之一,变量和基本语句一个标准的计算机语言,大概要提供的必要主要功能是:变量说明、分支判断、循环和输入输出结果。

T-SQL也一样,具有这些功能,只不过T-SQL的输入和输出不是界面,而是表。

完全精确描述一个计算机语言,大概要很厚的书才能做到,好在目前这些书籍的发行也很多,许多书描述的都很详细。

以下让我们按计算机语言的一般过程,介绍T-SQL计算机语言。

1 变量说明在T-SQL中,变量命名是:@变量名称变量名称同一般的计算机语言变量命名没差异,都是英文字母开头。

而类型则同数据库系统的字段类型,不区分大小写,如:DECLARE @A CHAR(10)DECLARE @B V ARCHAR(50DECLARE @F FLOAT数据库上有的类型都可以这么说明,同一般计算机语言不同的是,变量前的@,是有说法的,有一个@,表示局部变量,有两个则是全局变量。

如:DECLARE @N INT /*说明局部变量@N */DECLARE @@M INT /*说明全局变量@@M */全局变量是可以跨数据库访问的变量,而局部变量仅仅使用在本数据库的本程序中。

在SQLSERVER中,都提供了一些标准全局变量,如:@@IDENTITY : 返回最后插入行的标识列的列值。

@@ERROR : 返回最后执行的Transact-SQL语句的错误代码。

没有错误则为零@@ROWCOUNT : 返回受上一语句影响的行数,任何不返回行的语句将这一变量设置为0。

@@DBTS : 返回当前数据库的时间戳值必须保证数据库中时间戳的值是惟一的。

上面的全局变量是最常用的@@SERVERNAME: 返回运行SQL Server 2000本地服务器的名称。

@@REMSERVER: 返回登录记录中记载的远程SQL Server服务器的名称。

T-SQL语句基础

T-SQL语句基础

T-SQL的组成
DML:数据操作语言 DCL:数据控制语言 DDL:数据定义语言
5
使用T_SQL查询数据
班级 S201 S201 S105 S105 学号 001 005 008 006 姓名 张明 李菲 于正 刘刘 语文 90 100 85 90 数学 85 90 76 83 班级 S201 S201 学号 001 005 姓名 张明 李菲 语文 90 100 数学 85 90
21
一次插入多行数据
Select Into语句
SELECT NEWSTITLE,NEWSDATE,HITS INTO newsMost1
FROM t_news
插入标识列
SELECT IDENTITY(int,1,1) As 新闻ID, NEWSTITLE AS 新闻标题,NEWSDATE
AS 新闻日期,HITS AS 点击率 INTO newsMost2 FROM t_news
将t_News里新闻来源是“腾讯网”的点击率Hits字段 值统一增加100次 t_News_User里所有POWER值为False的普通用户 密码重置为123,POWER值为True的超级用户重置 为administrator123
31
更新数据(二)
学员练习
判断是否为空的记录,使用is NULL
25分钟完成
18
小结
请思考:
学生信息表student,字段分别有uid(学号)、Uname(姓 名)、Gid(班级编号)、age(年龄)、math(数学成绩) 、china(语文成绩)、english(英语成绩)
查询所有学生信息
查询数学成绩在70至80分之间学生姓名、数学、语文、英语成绩
查询姓“张”的所有学生信息 查询S005班的所有学生信息

软件技术《2 T-sql 语法基础》

软件技术《2 T-sql 语法基础》

T-SQL的运算符运算符是一些具有运算性质的符号,它们能够用来执行算术运算、字符串连接、赋值操作,也可以比拟字段、常量和变量的值。

在SQL Server中,主要有以下几类运算符:算术运算符、赋值运算符、比拟运算符、逻辑运算符和字符串串联运算符等。

〔1〕算术运算符算术运算符可以执行数学运算,算术运算符包括加〔〕、减〔-〕、乘〔*〕、除〔/〕和取模〔%〕。

不同的运算符操作的数据类型有一些差异。

〔2〕赋值运算符T-SQL赋值运算符是等号〔=〕。

主要用于给变量赋值,赋值运算符使我们能够将数据值指派给特定的对象。

还可以使用赋值运算符在列标题和为列定义值的表达式之间建立关系。

〔3〕比拟运算符比拟运算符也可称为关系运算符,用于测试两个表达式的大小或是否相同,得到的结果是布尔值,取值是TRUE〔表示结果为真〕、FALSE〔表示结果为假〕或者UNKNOWN。

比拟运算符不能用于tet,ntet 或image 数据类型的表达式。

〔4〕逻辑运算符逻辑运算符可以把多个逻辑表达式连接起来。

逻辑运算符包括AND、OR和NOT等运算符。

逻辑运算符和比拟运算符一样,返回带有TRUE 或FALSE 值的布尔数据类型。

三个运算符的优先级别为:NOT,AND,OR。

〔5〕字符串连接运算符字符串连接运算符允许通过加号〔〕进行字符串连接,这个加号即被称为字符串连接运算符。

〔6〕运算符的优先级在SQL Server 2021中,运算符的优先等级从高到低如下所示,如果优先等级相同,那么按照从左到右的顺序进行运算。

〔1〕括号:〔〕;〔2〕乘、除、求模运算符:*,/,%;〔3〕加减运算符:+,-;〔4〕比拟运算符:=,>,<,>=,<=,<>,!=,!>,!<;〔5〕逻辑运算符:NOT;〔6〕逻辑运算符:AND;〔7〕逻辑运算符:OR;〔8〕赋值运算符:=。

综合实训二 T-SQL简单编程

综合实训二 T-SQL简单编程

综合实训一数据库及数据库对象管理一、实训目的1.掌握T—SQL程序设计技术;2.掌握T—SQL流程控制和函数的应用技能;3.掌握存储过程和触发器的使用。

二、实训要求1.实训前做好上机实训的准备,针对实训内容,认真复习与本次实训有关的知识,完成实训内容的预习准备工作;2.能认真独立完成实训内容;3.实训后做好实训总结,根据实训情况完成总结报告。

三、实训学时2学时四、实训项目根据实训教程p22,用企业管理器快速创建学生成绩管理数据库和其三张表并在每张表中输入一定的数据。

以下测试均在此数据库基础上完成。

1.利用BETWEEN语句,查询XSQK表中总学分在40—50之间学生的学号和姓名。

2.用>=和<=代替BETWEEN语句实现上题相同功能。

3.在XSKC表中查询课程名中以A开头的课程的情况。

4.用T-SQL语言,定义用户自定义函数实现如下功能:根据课程号,计算出全体学生该门课的平均成绩。

5.在学生课程表(xskc)中创建存储过程,存储过程名为proc_xskc1,要求实现如下功能:根据课程号,查询所有学习该课程的学生的信息,要求显示姓名,学号,课程号,课程名,成绩。

并调用该存储过程显示相应数据。

6.在学生情况表(xsqk)中创建触发器xsqk_trigger1,实现如下功能:当在学生情况表(xsqk)中输入一个学生的记录时,根据学生课程表(xskc)中已存在的所有课程,自动在学生成绩表(xscj)中生成该生所有课程的初始记录,成绩栏为0,学分为该课程在学生课程表(xskc)中的学分。

7.在学生成绩表(xscj)中创建触发器xscj_trigger1,实现如下功能:当在学生成绩表(xscj)中输入一个学生成绩记录时,如果成绩及格则将相应学分,自动在学生情况表(xsqk)中相应学生记录的总学生中进行累加。

五、实训思考题1.存储过程与触发器的作用?2.用户自定义函数与系统函数有何不同?。

T-SQL语言基础

T-SQL语言基础
因为My和Table之间存在空格,不符合标识符格式规则, 所以必须使用分隔标识符,否则系统会认为它们是两 个标识符,从而报错。[order]也必须使用分隔标识符, 因为order是SQL Server的保留字,用于order by子句。
26
脚本
脚本是存储在文件中的一系列T-SQL语句, 该文件可以在SQL Server Management Studio的SQL编辑器中编写和运行。
CAST('2007-05-08 12:35:29.1234567' AS date) AS date, CAST('2007-05-08 12:35:29.123' AS smalldatetime) AS
smalldatetime , CAST('2007-05-08 12:35:29.123' AS datetime) AS datetime
{ }(大括 号)
必选语法项。不要键入大括号。
[,...n]
指示前面的项可以重复 n 次。各项之间以逗号分隔。
[ ...n]
指示前面的项可以重复 n 次。每一项由空格分隔。
<label> ::=
语法块的名称。此约定用于对可在语句中的多个位置使用的 过长语法段或语法单元进行分组和标记。
21
对象引用规范
25
分隔标识符
分隔标识符包含在双引号(“”)或方括号([]) 内。 符合标识符格式规则的标识符可以分隔,也可以 不分隔。但是,不符合标识符格式规则的标识符 必须进行分隔。例如:
SELECT * FROM [My Table] WHERE [order]=10
--查询My Table表中order属性为10的所有信息
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二T-SQL语言基础
一、教学目的
1. 熟练地使用查询分析器。

2.掌握使用T-SQL语句检验T-SQL语言的数据类型
3. 掌握变量的定义、赋值,常用运算符的作用及书写规范。

4.掌握输出语句print、select语句的使用。

4.了解常用函数的使用。

二、实习内容
(第一部分,验证教材例题)
1.在E:\盘根目录下建立一个以自己班级+姓名命名的文件夹,用于存放
自己的实习文件。

(例如:测量0801张三)
2.教材P44示例
3.2,声明两个变量,并为它们赋值,并用select语句显
示结果。

3.教材P45示例3.3,声明了2个日期型变量@var2、@var2,一个datetime,
一个是smalldatetime类型的,然后用set语句为它们赋值,并用select
语句显示两个变量的内容。

4.教材P50示例3.9,字符串连接运算符(+)的使用。

注意观察:示例3.9执行观察结果后,将declare @abc varchar(5)改为:declare @abc char(5)后,再执行观察结果。

比较:@abc变量前后2次的数据类型有什么不同?
5.教材P55示例3.12,日期时间函数的验证。

6.教材P56示例3.13,字符串函数的验证。

7.教材P59示例3.15,其他系统函数的验证。

(第一部分内容不用写在实验报告本中)
(第二部分,教材P60课后作业上机题1)
做在实验报告本上,请抄写题目,并写出结果。

三、仪器、设备、材料
微机
四、实验准备
1.理论知识预习及要求
a)变量的定义
b)变量的赋值
c)输出语句
d)数学函数的作用
e)日期函数的作用
f)字符串函数的作用
2.实验指导书预习及要求
上机前先复习第三章的内容,掌握变量的定义、赋值,数学函数、日期函数和字符串函数的作用及书写规范。

3.其他准备

五、实验原理或操作要点简介
使用查询分析器验证T-SQL中的数据类型及各种函数的使用。

六、注意事项
要及时保存文件,避免死机或断电造成的文件丢失。

实验过程中,出现问题时,及时请老师解答。

实验过程中,若出现问题找不到相应的解决办法时,可以试着使用联机丛书,逐步学会自学。

七、实验过程与指导
1.启动服务器。

2.进入SQL Server2005的界面。

3.新建查询。

4. 调试SQL语句,运行结果。

八、思考与提高
九、实验总结。

相关文档
最新文档