资源描述
实验3 SQL Server 2000表操作与记录操作
一、 实验目的
1. 了解表设计和表结构相关知识。
2. 了解SQL Server 2000中的常用数据类型。
3. 掌握应用企业管理器创建、修改、查看和删除表的方法。
4. 掌握在查询分析器中应用T-SQL创建、修改、查看和删除表的方法。
5. 掌握INSERT INTO语句的方法。
6. 了解INSERT FROM语句的方法。
7. 掌握UPDATE语句的方法。
8. 掌握DELETE语句的方法。
二、 实验要求
1. 在“电子工厂”数据库eshop中建立members表、products表和orders表。
2. 在各表中添加样例数据。
3. 保存实验结果到指定文件夹。
三、 实验步骤
1. 按照上次实验方法创建“电子工厂”数据库eshop。
2. 在eshop数据库中创建职工表members。SQL代码如下所示:
USE eshop
CREATE TABLE members
(
m_account VARCHAR(20) NOT NULL,
m_name VARCHAR(20),
m_sex CHAR(2),
m_birth DATETIME,
m_address VARCHAR(50),
m_salary MONEY,
m_password VARCHAR(20)
)
GO
3. 查看members表的相关信息,SQL代码如下所示:
USE eshop
EXEC sp_help members
再按F5或点击工具栏上的运行按钮“”,查看运行结果,如图3-1所示。
4. 在members表中新增一列电子邮件m_mail(VARCHAR,20),SQL代码如下所示:
USE eshop
ALTER TABLE members
ADD m_mail VARCHAR(20)
5. 将members表中的现有列m_address修改为(VARCHAR,30),SQL代码如下所示:
USE eshop
ALTER TABLE members
ALTER COLUMN m_address VARCHAR(30)
6. 删除步骤3中所建列m_mail,SQL代码如下所示:
USE eshop
ALTER TABLE members
DROP COLUMN m_mail
图3-1 查看members数据表的信息
7. 删除表members,SQL代码如下所示:
DROP TABLE members
8. 应用企业管理器完成步骤2~7,并与T-SQL操作进行比较。
9. 在eshop数据库中按要求创建“职工表”members,SQL代码如下所示:
USE eshop
CREATE TABLE members
(
m_account VARCHAR(20) primary key,
m_name VARCHAR(20) not NULL,
m_sex CHAR(2),
m_birth DATETIME,
m_address VARCHAR(50),
m_salary MONEY
)
GO
10. 在eshop数据库中按要求创建“产品表”products,SQL代码如下所示:
USE eshop
CREATE TABLE products
(
p_no CHAR(10) primary key,
p_name VARCHAR(30) not NULL,
p_date DATETIME not NULL,
p_quantity INT not NULL,
p_price MONEY not NULL
)
GO
11. 在eshop数据库中按要求创建“订单表”orders,SQL代码如下所示:
USE eshop
CREATE TABLE orders
(
m_account VARCHAR(20) CONSTRAINT fk1 foreign key references members ON DELETE CASCADE ON UPDATE CASCADE ,
p_no CHAR(10) CONSTRAINT fk2 foreign key references products ON DELETE CASCADE ON UPDATE CASCADE,
o_quantity INT,
o_date DATETIME,
o_confirm_state CHAR(1),
o_pay_state CHAR(1),
o_send_state CHAR(1)
CONSTRAINT account_no PRIMARY KEY (m_account, p_no)
)
GO
12. 在members表中增加2条记录,内容如下:
‘jinjin’, ‘津津’,‘女’,‘1982-04-14’,‘北京市’,8200.0, ‘jinjin’
‘liuzc518’,‘刘志成’,‘男’,‘1972-05-18’,‘湖南株洲’,3500.0,‘liuzc518’
SQL代码如下所示:
USE eshop
INSERT INTO members VALUES('jinjin','津津','女','1982-04-14','北京市',8200.0)
INSERT INTO members VALUES('liuzc','刘志成','男','1972-05-18','株洲',3500.0)
13. 将“津津”的姓名修改为“刘津”,SQL代码如下所示:
USE eshop
UPDATE members SET m_name='刘津' WHERE m_name='津津'
14. 将m_sex(性别)为‘男’且m_address(家庭地址)为‘株洲’的职工的m_salary(月薪)增加20%,SQL代码如下所示:
USE eshop
UPDATE members SET m_salary=m_salary*1.2 WHERE m_sex='男' AND m_address='株洲'
15. 删除m_address(家庭地址)为‘北京市’的职工记录,SQL代码如下所示:
USE eshop
DELETE FROM members WHERE m_address='北京市'
16. 删除members表中所有记录,SQL代码如下所示:
USE eshop
DELETE FROM members
17. 应用企业管理器完成步骤12-16,并与T-SQL操作进行比较。
18. 在eshop数据库的members表中添加所有样例数据,SQL代码如下所示:
USE eshop
INSERT INTO members VALUES('Liujin', '刘津', '女', '1982-04-14', '北京市', 8200)
INSERT INTO members VALUES('Zhao888', '赵云', '男', '1972-02-12', '株洲', 5500)
INSERT INTO members VALUES('Lfz', '刘法治', '男', '1976-08-26', '天津市', 4500)
INSERT INTO members VALUES('Zhangl', '张梁', '男', '1975-04-20', '株洲', 4300)
INSERT INTO members VALUES('Wangy', '王咏', '女', '1974-08-06', '长沙', 4000)
INSERT INTO members VALUES('liuc', '刘成', '男', '1972-05-18', '株洲', 3500)
19. 在eshop数据库的products表中添加所有样例数据,SQL代码如下所示:
USE eshop
INSERT INTO products VALUES('0240810330', '电动自行车', '2005-05-31', 10, 1586.0)
INSERT INTO products VALUES('0240810333', '自行车', '2005-05-31', 10, 586.0)
INSERT INTO products VALUES('0140810330', '洗衣机', '2005-05-31', 110, 860)
INSERT INTO products VALUES('0140810332', '榨汁机', '2005-05-20', 43, 158.0)
INSERT INTO products VALUES('0910810001', '爱国者MP3', '2005-05-31', 100, 450.0)
INSERT INTO products VALUES('0910810002', '商务通', '2005-05-20', 103, 850.0)
INSERT INTO products VALUES('0910810003', '名人好记星', '2005-05-31', 120, 550.0)
INSERT INTO products VALUES('0130810324', '同方电脑', '2005-12-11', 77, 8000.0)
INSERT INTO products VALUES('0910810004', '奥美嘉U盘', '2005-05-31', 100, 180.0)
INSERT INTO products VALUES('0140810333', '力美健身器', '2005-05-06', 22, 6200)
20. 在eshop数据库的orders表中添加所有样例数据,SQL代码如下所示:
USE eshop
INSERT INTO orders VALUES('liujin', '0910810004', 2, '2005-06-06', '1', '0', '0')
INSERT INTO orders VALUES('liuc', '0910810001', 1, '2005-10-09', '1', '1', '0')
INSERT INTO orders VALUES('wangy', '0910810001', 1, '2005-08-09', '1', '0', '0')
INSERT INTO orders VALUES('liujin', '0240810333', 1, '2005-08-09', '1', '1', '1')
INSERT INTO orders VALUES('lfz', '0910810001', 1, '2005-08-09', '0', '0', '0')
INSERT INTO orders VALUES('zhao888', '0240810333', 2, '2005-06-06', '1', '1', '0')
INSERT INTO orders VALUES('lfz', '0910810002', 2, '2005-06-06', '1', '1', '1')
INSERT INTO orders VALUES('liuc', '0140810330', 1, '2005-10-09', '0', '0', '0')
INSERT INTO orders VALUES('lfz', '0910810004', 2, '2005-08-09', '1', '1', '1')
INSERT INTO orders VALUES('liuc', '0910810004', 2, '2005-10-09', '1', '1', '0')
21. 思考几个问题。第一个问题:在企业管理器中,打开订单表orders,表中的记录顺序是怎样的?为什么会这样?第二个问题:随意修改订单表orders中某条记录中的m_account字段的值(修改为职工表members中不存在的),或者修改p_no字段的值(修改为产品表products中不存在的),观察会有什么情况发生?为什么会这样?第三个问题:删除职工表members中姓名为“lfz”的职工记录,观察订单表orders有何变化?为什么会这样?最后一个问题:修改职工表members中姓名为“liujin”的职工记录,将其姓名改为“LJ”,观察订单表orders有何变化?为什么会这样?
22.
23.
展开阅读全文