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

posted @ 2015-12-24 16:53  tt香薷  阅读(1668)  评论(0)    收藏  举报