T-SQL语句使用的实验
实验
--1.对于实验二给出的数据库表结构,创建一个名为female的用户变量,
--并在SELECT语句中使用该局部变量查找出表中所有女员工的编号,姓名。
DECLARE @female bit
SET @female=0
/*变量赋值完成,接着查询*/
SELECT EmployeeID,Name
FROM Employees
WHERE Sex=@female
--2.定义一个变量,用于获取号码为的员工的电话号码
DECLARE @phone char(12)
SET @phone=(SELECT PhoneNumber
FROM Employees
WHERE EmployeeID='102201'
)
SELECT @phone
运算符的使用
--1.使用运算符-查询员工的实际收入
SELECT InCome-OutCome
FROM Salary
--2.使用运算符>查询Employees表中工作时间大于五年的员工信息
SELECT *
FROM Employees
WHERE WorkYear>5
流程控制语句
--1.判断Employees表中是否存在编号为的员工,如果存在,则显示该员工的信息,若不存在,则显示查无此人
IF EXISTS (SELECT Name FROM Empolyees WHERE EmployeeID='111006')
SELECT * FROM Employees WHERE EmployeeID='111006'
ELSE
SELECT '查无此人'
--2.假设变量x的初始值为,每次加,直至x变为
DECLARE @X INT
SET @X=1
WHILE @X<5
BEGIN
SET @X=@X+1
PRINT 'X='+CONVERT(char(1),@X)
END
--3.使用case语句对Employees表按部门进行分类
SELECT EmployeeID,Name,Address,DepartmentID=
CASE DepartmentID
WHEN 1 THEN '财务部'
WHEN 2 THEN '人力资源部'
WHEN 3 THRN '经理办公室'
WHEN 4 THEN '研发部'
WHEN 5 THEN '市场部'
END
FROM Employees
自定义函数的使用
--1.定义一个函数实现如下功能:对于一各给定的DepartmentID值,查询该值在Department表中是否存在
--存在返回,否则-1
CREATE FUNCTION CHECK_ID(@departmentid char(3))
RETURN integer AS
BEGIN
DECLARE @num int
IF EXISTS (SELECT departmentID FROM departments
WHERE @departmentid=departmentID)
SELECT @num=0
ELSE
SELECT @num=-1
RETURN @num
END
--2.写一段T-SQL程序调用上述函数。当向Employees表插入一行记录时,首先调用函数CHECK_ID检索
--该记录的DepartmentID在Departments的DepartmentID字段是否存在对应值,若存在则将该记录插入
--Employees表
DECLARE @num int
SELECT @num=dbo.CHECK_ID('2')
IF @num=0
INSERT Employees
VALUES('990210','张英','本科','1982-03024',0,4,'南京市镇江路号','8497534','2')
系统内置函数的使用
--1.求一个数的绝对值
SELECT ABS(-123)
--2.求财务部雇员的总人数
SELECT COUNT(EmployeeID) AS 财务部人数
FROM Employees
WHERE DepartmentID=
( SELECT DepartmentID
FROM Departments
WHERE DepartmentName='财务部')
--3.使用ASCII函数返回字符表达式最左端的ASCII值
SELECT ASCII('abc')
--4.获得当前日期
SELECT GETDATE()
--5.查询YGGL数据库中员工工号为的员工的出生年份
SELECT YEAR(BIRTHDAY)
FROM Employees
WHERE EmployeeID='000001'
--向CS_XS视图中插入以下记录
--('081115','刘明仪',1,'1998-3-2','计算机',50,NULL)
INSERT INTO CS_XS
VALUES('081115','刘明仪',1,'1998-3-2','计算机',50,NULL)
--使用SELECT语句查询CS_XS依据的基本表XSB
SELECT * FROM XSB
--当视图依赖的基本表有多个时,不能向该表插入数据,因为会影响多个表
--修改数据。将CS_XS视图中所有学生的总学分加
UPDATE CS_XS
SET 总学分=总学分+8
--将CS_KC视图中学号为的学生的号课程成绩改为
UPDATE CS_KC
SET 成绩=90
WHERE 学号='081101' AND 课程号='101'
--删除数据。删除CS_XS中女同学的记录
DELETE FROM CS_XS
WHERE 性别=0

浙公网安备 33010602011771号