1、实验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、 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 VARC
3、HAR(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
4、 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 esh
5、op 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_n
6、ame 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
7、 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条记录,内容如
8、下: ‘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. 将
9、津津”的姓名修改为“刘津”,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代码如下所示: US
10、E 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 IN
11、TO 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 INT
12、O 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 VALUE
13、S('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 V
14、ALUES('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数
15、据库的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
16、 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',
17、'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.






