一、实验目的
在SQL Server中创建数据库的基础上创建表,然后对表数据进行增删改操作。
二、实验步骤
(一)安装数据库
1.安装SQL Server 2012或以上版本。
2.尝试创建数据库、表。
(二)完成扩展训练
1.建立yggl数据库,建立员工表、部门表、员工薪水表,向三张表添加数据;
2.方式:(1)使用对象资源管理器;(2)使用t-sql语句
(三)基础训练
1.完成(1)->(3)->(8)->(6)
2.在(1)基础上可继续完成(7)
3.完成(4)->(5)
三、实验内容
- 建立yggl数据库,建立员工表、部门表、员工薪水表,向三张表添加数据;
首先建立好yggl数据库,在新建查询中输入如下代码:
USE YGGL 使用表yggl执行
GO 创建表Employees
CREATE TABLE Employees(
EmployeeID char(6) Not Null PRIMARY KEY, EmployeeID为该表的主键
Name char(10) Not Null, 姓名,不能为空
Education char(4) Not Null,
Birthday date Not Null,
Sex bit Not Null, 性别,默认值为1
WorkYear tinyint Null,
Address varchar(40) Null,
PhoneNumber char(12) Null,
DepartmentID char(3) Not Null
)
CREATE TABLE Departments ( 创建表Departments
DepartmentID char(3) Not Null PRIMARY KEY, DepartmentID为该表的主键
DepartmentName char(20) Not Null,
Note varchar Null
)
CREATE TABLE Salary ( 创建表Salary
EmployeeID char(6) Not Null PRIMARY KEY, EmployeeID为该表的主键
InCome float Not Null,
OutCome float Not Null
)
然后输入如下代码 插入信息
INSERT INTO Employees values 向表Employees插入数据
('000001', '王林', '大专','1966-1-23',' 1','8','中山路32-1-508','83355668','2'),
('010008', '伍容华', '本科','1976-3-28',' 1','3','北京东路100-2','83321321','1'),
('020010', '王向容', '硕士','1982-12-09',' 1','2','四牌楼10-0-108','83792361','1'),
('020018', '李丽', '大专','1960-07-30',' 0','6','中山东路102-2','83413301','1'),
('102201', '刘明', '本科','1972-10-18',' 1','3','虎踞路100-2','83606608','5'),
('102208','朱俊','硕士','1965-09-28','1','2','牌楼巷5-3-106','84708817','5'),
('108991','钟敏','硕士','1979-08-10','0','4','中山路10-3-105','83346722','3')
('111006','张石兵','本科','1974-10-01','1','1','解放路34-1-203','84563418','5'),
('210678','林涛','大专','1977-04-02','1','2','中山北路24-35','83467336','3'),
('302566','李玉珉','本科','1968-09-20','1','3','热河路209-3','58765991','4'),
('308759','叶凡','本科','1978-11-18','1','2','北京西路3-7-52','83308901','4'),
('504209','陈林琳','大专','1969-09-03','0','5','汉中路120-4-12','84468158','4')
INSERT INTO Departments values 向表Departments插入数据
('1', '财务部', null),
('2', '人力资源部', null),
('3', '经理办公室', null),
('4', '研发部', null),
('5', '市场部', null)
INSERT INTO Salary values 向表Salary插入数据
('000001','2100.80','123.09'), ('308759','2531.98','199.08'),
('010008','1582.62','88.03'), ('210678','2240.00','121.00'),
('102201','2569.88','185.65'), ('102208','1980.00','100.00')
('111006','1987.01','79.58'),
('504209','2066.15','108.00'),
('302566','2980.70','210.20'),
('108991','3259.98','281.52'),
('020010','2860.00','198.00'),
('020018','2347.68','180.00')
实验三
SQL Serve中床创建xsbook数据库,创建学生表,数据库文件存放在用户指定目录中
首先创建xsbook数据库,再在新建查询中输入:
USE xsbook 使用xsbook数据库
Go
CREATE TABLE xs ( 创建表xs
借书证号 char(8) NOT NULL PRIMARY KEY, 设置借书证号为主键
姓名 char(8) NOT NULL,
性别 bit NOT NULL DEFAULT 1,
出生时间 date NOT NULL,
专业 char(12) NOT NULL,
借书量 int NOT NULL DEFAULT 1, 设置默认值为1
照片 varbinary(MAX) NULL
)
CREATE TABLE book( 创建表book
ISBN char(18) NOT NULL PRIMARY KEY, ISBN为主键
书名 char(40) NOT NULL,
作者 char(16) NOT NULL,
出版社 char(10) NOT NULL,
价格 float NOT NULL,
复本量 int NOT NULL,
库存量 int NOT NULL
)
Create Table jy( 创建表jy
索书号 char(10) not null Primary Key, 设置索书号为主键
借书证号 char(8) not null,
ISBN char(18) not null,
借书时间 date not null
)
根据书上的要求,在新建查询的输入以下代码,插入信息
USE xsbook
INSERT Into xs Values
('131101','王林','1','1996-2-10','计算机','4',null),
('131102','程明','1','1997-2-1','计算机','2',null),
('131103','王燕','0','1995-10-6','计算机','1',null),
('131104','韦严平','1','1996-8-26','计算机','4',null),
('131106','李方方','1','1996-11-20','计算机','1',null),
('131107','李明','1','1996-5-1','计算机','0',null),
('131108','林一帆','1','1995-8-5','计算机','0',null),
('131109','张强民','1','1995-8-11','计算机','0',null),
('131110','张蔚','0','1997-7-22','计算机','0',null),
('131111','赵琳','0','1996-3-18','计算机','0',null),
('131113','严红','0','1995-8-11','计算机','0',null),
('131201','王敏','1','1995-6-10','通信工程','1',null),
('131202','王林','1','1995-1-29','通信工程','1',null),
('131203','王玉民','1','1996-3-26','通信工程','1',null),
('131204','马琳琳','0','1995-2-10','通信工程','1',null),
('131206','李计','1','1995-9-20','通信工程','1',null),
('131210','李红庆','1','1995-5-1','通信工程','1',null),
('131216','孙祥欣','1','1995-3-19','通信工程','0',null),
('131218','孙研','1','1996-10-9','通信工程','1',null),
('131220','吴薇华','0','1996-3-18','通信工程','1',null),
('131221','刘燕敏','0','1995-11-12','通信工程','1',null),
('131241','罗林琳','0','1996-1-30','通信工程','0',null)
INSERT INTO book Values
('978-7-121-23270-1','MySQL实用教程(第2版)','郑阿奇','电子工业出版社','53','8','1'),
('978-7-81124-476-2','S7-300/400可编程控制器原理与应用','崔维群 孙启法','北京航空航天大学出版社','59','4','1'),
('978-7-111-21382-6','Java编程思想','Bruce Eckel','机械工业出版社','108','3','1'),
('978-7-121-23402-6','SQL Server实用教程(第4版)','郑阿奇','电子工业出版社','59','8','5'),
('978-7-302-10853-6','C程序设计(第3版)','谭浩强','清华大学出版社','26','10','7'),
('978-7-121-20907-9','C#实用教程(第2版)','郑阿奇','电子工业出版社','49','6','3')
INSERT INTO jy Values
('1200001','131101','978-7-121-23270-1','2014-02-18'),
('1300001','131101','978-7-81124-476-2','2014-02-18'),
('1200002','131102','978-7-121-23270-1','2014-02-18'),
('1400030','131104','978-7-121-23402-6','2014-02-18'),
('1600011','131101','978-7-302-10853-6','2014-02-18'),
('1700062','131104','978-7-121-20907-9','2014-02-19'),
('1200004','131103','978-7-121-23270-1','2014-02-20'),
('1200003','131201','978-7-121-23270-1','2014-03-10'),
('1300002','131202','978-7-81124-476-2','2014-03-11'),
('1200005','131204','978-7-121-23270-1','2014-03-11'),
('1400031','131206','978-7-121-23402-6','2014-03-13'),
('1600013','131203','978-7-302-10853-6','2014-03-13'),
('1700064','131210','978-7-121-20907-9','2014-03-13'),
('1300003','131216','978-7-81124-476-2','2014-03-13')
效果如下:
再用代码对xs表进行插入、修改和删除
在新建查询中输入如下代码:
USE xsbook
GO
create table xs1( 创建表xs1
借书证号 char(8) NOT NULL Primary Key, 设置借书证号为主键
姓名 char(8) NOT NULL,
性别 bit NOT NULL,
出生时间 date NOT NULL,
专业 char(12) NOT NULL,
借书量 int NOT NULL DEFAULT 0,
照片 varbinary(Max) NULL
)
INSERT INTO dbo.xs1 向表xs1插入数据
Values
('131246','周涛','1','1995-9-10','英语','0',null)
GO
Insert Into dbo.xs1(借书证号,姓名,出生时间,专业) 向表中的这几个字段插入数据
Values('130210','王林','1995-1-10','英语')
insert into xs 向表xs插入xs1中的所有数据
select * 从xs1中选取数据
from xs1
use xsbook
delete from xs1 删除表中字段借书量为0的数据
where 借书量=0
update xs1 更新表xs1
set 专业='计算机' 将字段借书证号为131246的改为计算机
where 借书证号='131246'
update xsl 将借书证号为131111改为土木工程
set 专业='土木工程'
where 借书证号='131111'
delete from xs 删除借书量为2的数据
where 借书量=2
update xs1
SET 姓名='周红', 将借书证号值为131246的记录姓名的值改为
专业='英语', 周红将专业改为英语,性别的值改为0
性别=0
WHERE 借书证号='131246'
update xs1
SET 借书量=借书量+2 更改借书量的值+2
MERGE INTO xs1 合并两个表的数据
USING xs on xs1.借书证号=xs.借书证号 建立两个表的关系
WHEN matched
THEN update SET
xs1.姓名=xs.姓名,xs1.性别=xs.性别,
xs1.出生时间=xs.出生时间,
xs1.专业=xs.专业,xs1.借书量=xs.借书量,xs1.照片=xs.照片
WHEN not matched
THEN INSERt VALUES( 添加数据
xs.借书证号,xs.姓名,xs.性别,xs.出生时间,xs.专业,xs.借书量,xs.照片)
WHEN not matched BY source 源不匹配时删除
THEN DELETE;
Use xsbook
ALTER TABLE xs1
Add 逾期未还书数 tinyint null 添加未还书记录
ALTER TABLE xs1
DROP column 逾期未还书数 删除该字段
ALTER TABLE xs1
ALTER column 姓名 char(10) 修改该记录要求
GO
ALTER TABLE xs1
ALTER column 出生时间 datetime 修改该记录要求
最后实验
CREATE PARTITION FUNCTION numberpf(int) 创建分区函数
As RANGE left FOR VALUES(50,500,1000,2000) 把int类型的列中数据分为五个区
CREATE PARTITION scheme numberps --创建分区方案
AS PARTITION numberpf 将5个分区分别存放在这5个文件组中
TO(Fgroup1,Fgroup2,Fgroup3,Fgroup4,Fgroup5)
REATE TABLE tab1( 创建表tab1
编号 int Not Null PRIMARY KEY, 设置编号为主键
名称 char(8) NOT Null
)
On numberps(编号)
GO
四、实验总结
1、创建数据库之前,要先明确有什么数据表以及表的结构。
2、注意代码输出的正确性。
3、执行完语句后记得刷新数据库
4、数据库中表的数值错了,可以执行语句来更改,不需要删除重建
5、分区中数据类型要与分区函数的数据类型一致。