实验1在MySQL创建数据库及表_数据库表的创建、管理和数据操作(实验⼀),数据库创建...
数据库表的创建、管理和数据操作(实验⼀),数据库创建
今天我们就以实验的形式对表的创建、管理和数据操作进⾏学习,上课吧。
【实验⽬的】:了解SQL语⾔的使⽤,进⼀步理解关系运算,巩固数据库的基础知识。
【实验要求】:利⽤SQL语⾔进⾏数据库表的各种操作:
1.数据库表的创建、修改和删除操作。
2.向表中进⾏数据的插⼊、删除和修改操作。
【实验内容】1. 利⽤数据定义语句在实验⼀创建的stu_DB库中建⽴学⽣管理系统的三个表:Student、Course、SC。
2.利⽤INSERT、UPDATE和DELETE语句对上述三张表的数据进⾏插⼊、更新和删除操作。
3.在stu_DB库中添加Teacher和TC表,对已建⽴的学⽣管理系统中的表添加充⾜的数据(每个表不少于20条),以便完成本实验的后继操作。
【实验步骤】
⼀、数据定义
(⼀)表的创建在实验⼀创建的数据库stu_DB中分别⽤企业管理器和查询分析器,按下⾯的表结构创建学⽣管理系统的表。
1.利⽤企业管理器创建表
(1)打开企业管理器。
(2)选中实验⼀创建好的数据库stu_DB,单击数据库中的表对象,然后右击窗⼝右侧选择新建表,弹出如图所⽰窗体。
(3)在这个窗体中,列名列就⽰表的字段名,可以在这个窗体中为字段选择数据类型和长度以及是否可以为空值。
(4)在此处可以为表选择⽂件组,在表中单击右键,选择属性,如果已经为数据库创建了⼀个次要组,可以在属性窗体的表⽂件组中为此表选择⽂件组。应该把⼀些竞争使⽤的表放于不同的⽂件组中,并且让⽂件组属于不同磁盘,这样可以在表竞争读写时提⾼并发性能。
(5)创建完成后,单击磁盘图标,并为表取⼀个名字。注意,应该为表取⼀个有意义的名字。
2.⽤Transact_SQL语句创建表
语法为:
CREATE TABLE
[ database_name.[owner].] table_name
( {column_name data_type [DEFAULT ‘default_value']|
[CONSTRAINT CONSTRAINT_name]
}, […n] [IDENTITY [(seed, increment )]]
)
[ON { filegroup | DEFAULT }]
[TEXTIMAGE_ON {filegroup | DEFAULT }]
【例1】⽣成⼀个表名为student的表
create table student
(
sno CHAR(8) primary key,
sname CHAR(10) not null,
ssex CHAR (2) check (ssex='男'or ssex='⼥'),
sage smallint,
sdept CHAR (20) default ('计算机系'),
)
【例2】  创建⼀张名为Ta1的表,此表中有3列,第⼀列Pid定义为主键,并且⾃动增长。第⼆列Name默认值为Unknown,第三列定义⼀个约束(⽇期不能⼤于输⼊当天的⽇期),插⼊⼀条记录并进⾏查询,显⽰如下图。
CREATE TABLE ta1
(
pid int identity(1,1) primary key,
[name] CHAR(10) default ('unknow'),
birthday datetime CHECK( birthday
)
(⼆)表的修改
1.⽤企业管理器修改表
(1)右键点击所要修改的学⽣表,选择“设计表”,会弹出如图3-4所⽰的窗体,在这个窗体中可以更改数据表的字段。在空⽩处点右键,选择“属性”,弹出另⼀窗体,在此可以更改约束,也可以增加约束。
2、利⽤Transact-SQL语句修改表
向表中添加新的字段:在学⽣表中添加⼀个“班级”字段,数据类型为字符型。
ALTER TABLE student  ADD class CHAR(6)
删除表中的旧列:将学⽣表中的“Sdept”字段删除。
ALTER TABLE student DROP COLUMN Sdept
更改表以添加具有约束的列。(sp_help:⽤于显⽰参数清单和其数据类型)
给学⽣表的增加“grade”字段并加上CHECK约束,让其不可以⼤于100。
ALTER TABLE student ADD grade int CONSTRAINT ch_grade CHECK(grade<100)
EXEC sp_help ch_grade
给学⽣表中添加“birthday”字段,并且这个⽇期不能在录⼊当天的⽇期之后。
ALTER TABLE student ADD birthday DATETIME NULL
CONSTRAINT ch_birthday CHECK(birthday
添加具有默认值的可为空的列:
在学⽣表中加⼊“matriculationday”字段,并且这⼀字段的默认值为录⼊当天的⽇期。
ALTER TABLE  student ADD matriculationday smalldatetime NULL
CONSTRAINT adddateflt  DEFAULT getdate()
请参考上⾯所给的例⼦:
⾃⾏设计表结构修改操作(不少于8个语句),并进⾏实验验证。
mysql创建表数据类型
修改表student,结果如表1-4。
创建表1-5、表1-6,为后续实验建⽴基础。
(三)表的删除
可以在企业管理器中选择要删除的表直接删除,也可以通过Transact-SQL语句DROP 删除表的定义及表中的所有数据、索引、出发器、约束和权限规范。
如要删除ta1表,语句如下: DROP TABLE ta1
请参考上⾯的例⼦完成对表Student 、Course 、SC的删除操作,它们删除的次序如何?并进⾏实验验证。
⼆、数据操作
(⼀)查看、重命名及删除⽤户定义的数据类型1.使⽤企业管理器创建⼀个名为newtype1、长度为6、可变长字符、允许为空的⾃定义数据类型。
进⼊企业管理器,进⼊stu_DB数据库,⽤⿏标右键单击“⽤户定义的数据类型”后选择“操作”菜单中的“新建⽤户定义数据类型”或点击“新建”按扭,将弹出下图所⽰窗体:
输⼊要定义的数据名称newtype1,选择数据类型varCHAR,输⼊长度为6,在“允许NULL值”复选框中打个“√”,单击“确定”按钮即可。
2.使⽤T-SQL语句创建⼀个名为newtype2,数据长度为6,定长字符型,不允许为空的⾃定义数据类型。
USE stu_DB
EXEC sp_addtype newtype2, ‘CHAR(6)', ‘not null'
3.命名⽤户⾃定义的数据类型
(1) 使⽤系统存储过程sp_rename将⾃定义数据类型newtype1重新命名为a1。
EXEC sp_rename newtype1, a1
(2) 使⽤企业管理器再将⾃定义数据类型a1重新命名为newtype1。
4.删除⽤户⾃定义数据类型
(1) 使⽤系统存储过程sp_droptype来删除⽤户⾃定义的数据类型。
EXEC sp_droptype newtype1
(2)使⽤企业管理器删除⽤户⾃定义数据类型
进⼊企业管理器,进⼊stu_DB数据库,单击“⽤户定义的数据类型”后,右边窗⼝将出现所有⽤户定义的数据类型,再⽤⿏标右键单击newtype2,在弹出的快捷菜单上单击“删除”按钮即可。
注意:正在被表或其他数据库对象使⽤的⽤户定义类型能不能删除?请进⾏实验验证。
(⼆)数据的更新
1. 利⽤企业管理器更新数据
打开企业管理器,右键点击所要修改的表,选择“打开表”,单击“返回所有⾏”,会弹出如图3-5所⽰的窗体,在该窗体中可以修改表中的数据内容。这⾥的修改内容是⾃动存储的,修改完之后,直接关闭该窗体,数据内容即修改成功。
2.利⽤查询分析器更新数据在关系数据库中,常见的数据更新的语句有三条:INSERT、UPDATE和DELETE
(1)INSERT语句向student表中插⼊⼀⾏数据,具体数据如下:
学号:04265005, 姓名:刘辉, 性别:男,年龄:21, 系别:计算机系
USE stu_DB
INSERT INTO student (Sno, Sname, Ssex, Sage, Sdept)
VALUES (‘04265005', ‘刘辉', ‘男', 21, ‘计算机系')
INSERT INTO student (Sno, Sname, Ssex, Sage)
VALUES (‘04265006', ‘李慧', ‘⼥', 21)
向ta1表中插⼊数据如下:
INSERT ta1([name],birthday) values (‘lan','1977-03-02')
INSERT ta1 values (‘lan','1977-03-02')
INSERT ta1(birthday) values (‘1977-03-02')
请根据上述例⼦,⾃⾏设计不同情况下的数据插⼊语句(不少于10个语句),并进⾏实验验证,验证要求如下:
不满⾜唯⼀性约束的数据的插⼊。
不满⾜⽤户⾃定义约束的数据的插⼊。
不满⾜外键约束的数据的插⼊。
利⽤缺省值的数据的插⼊。
不合理的数据是否能进⼊数据库。
(2)UPDATE语句
更改(学⽣)表数据,将学号为‘04265005'的学⽣的所在系改成‘机械⼯程系'。
UPDATE student SET Sdept=‘机械系' WHERE Sno=‘04265005'
请根据上述例⼦,⾃⾏设计数据修改语句(不少于10个语句),并进⾏实验验证,验证要求同INSERT语句。
(3)DELETE语句删除⾏
删除student表中的学号为‘04265005'的记录。
DELETE FROM student WHERE Sno =‘04265005'
如果想清除表中的所有数据但不删除这个表,可以使⽤TRUNCATE TABLE语句。该语句相当于没有条件的DELETE语句,并且该语句不记录⽇志。
请根据上述例⼦,⾃⾏设计不同情况的数据删除语句(不少于10条语句),并进⾏实验验证不满⾜外键约束的数据删除操作。
对数据定义中创建的学⽣管理系统(Student, Course,SC,Teacher,TC表)的每个表添加充⾜的数据(每个表不少于20条),以便完成本实验的后继操作。具体表信息可参考如下:
今天的实验课就结束了,⼩编带⼤家⼤致的了解了表的创建、管理和数据操作,下次就进⾏实战演练,我们继续⼀起学习。
以上就是表的创建和管理实验的全部内容,希望对⼤家的学习有所帮助。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。