数据库实验——数据库及数据库中表的建立实验

 数据库及数据库中表的建立实验  

一、实验目的

1.数据库的服务操作命令

(1)熟悉上机环境MySQL以及Navicat。

(2)掌握如何启动MySQL服务以及登录MySQL的方法。

2.数据库、表的创建

(1)理解并掌握数据库中的一些基本概念,包括:数据库的定义、数据表的定义和数据类型等。

(2)理解并掌握关系型数据库标准SQL语言。

(3)掌握并熟练使用数据库,表的创建语句。

3.数据库完整性

(1)理解关系数据库三类完整性约束的基本概念。

(2)掌握实现实体完整性、参照完整性、用户自定义完整性的方法。

4.数据库的安全性

(1)掌握数据库安全性的概念。

(2)MySql数据库的安全性需要通过账户管理来保证,掌握MySql提供的语句进行创建用户、删除用户和权限管理的操作。

二、实验内容

1.熟悉上机环境。

2.建立学生-课程数据库

其中包括以下三个表:

学生表:Student(Sno,Sname,Ssex,Sage,Sdept)

课程表:Course(Cno,Cname,Cpno,Ccredit)

学生选课表:SC(Sno,Cno,Grade)

Student

学号Sno

姓名Sname

性别Ssex

年龄Sage

所在系Sdept

201215121

李勇

20

CS

201215122

刘晨

19

CS

201215123

王敏

18

MA

201215125

张立

19

IS

Course

课程号Cno

课程名Cname

先行课Cpno

学分Ccredit

1

数据库

5

4

2

数学

 

2

3

信息系统

1

4

4

操作系统

6

3

5

数据结构

7

4

6

数据处理

 

2

7

PASCAL语言

6

4

SC

学号Sno

课程号Cno

成绩Grade

201215121

1

92

201215121

2

85

201215121

3

88

201215122

2

90

201215122

3

80

3.实现上述关系数据库的整体性约束。

4.安全性控制——用户和权限控制:

(1)创建名为xxxxxxxxxxx,密码为xxx的用户;

(2)授予用户名为xxxxxxxxxxx,密码为xxx的用户使用所有数据库stu的所有权限,并允许他向其他人授予这些权限;

(3)撤销用户xxxxxxxxxxx的所有权限;

(4)将用户名为xxxxxxxxxxx的用户重命名为xxx;

(5)删除用户名为xxx的用户。

三、实验环境

(1)Windows10系统

(2)MySQL5.7

(3)Navivcat MySQL:一个MySQL数据库服务器管理和开发工具。

四、实验前准备

(1)提前在自己的笔记本电脑上将实验所需环境安装好。

下载MySQL5.7-->安装-->配置环境变量-->下载安装Navicat for MySQL。

(2)理解并掌握数据库的基本概念。

A.数据库(Database):是按照数据结构来组织、存储和管理数据的仓库,是存储在一起的相关数据的集合。

B.数据库系统(DataBase System,DBS):是采用数据库技术的计算机系统,是由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台(软件)5部分构成的运行实体。

C.数据库管理系统(DataBase Management System,DBMS):是数据库管理系统的一个重要组成部分,是位于用户与操作之间的一层数据管理软件,负责数据库中的数据组织、数据操纵、数据维护和数据服务等。

D.数据库常用对象:

表:是包含数据库中所有数据的数据库对象,由行和列组成,用于组织和存储数据。

字段:表中每列称为一个字段。

(3)预习MySQL数据库的基本操作语句以及数据库完整性的实现方法。

(4)预习数据库安全性控制的措施及实现。

五、实验步骤及实验结果

1、MySQL服务的操作命令(命令行输入):

service mysql start|stop|restart|status

start:启动服务

stop:停止服务

restart:重启服务

status:查看服务状态

(1)启动与关闭mysql服务器:

启动:net start mysql

退出:exit

(2)连接服务器:

mysql -uroot -pmysql

2、数据库、表的创建

(Navicat命令列界面,由于其环境限制,截图有一些不清晰)

(1)查看当前服务器上管理的所有数据库:

mysql>show databases; 

(2)创建数据库:

mysql>create database 库名; 

数据库创建好后,可以使用show create database 库名;声明查看数据库 的定义。

(3)选择数据库:

mysql>use 库名;

(4)查看当前选择的数据库:

mysql> select database(); 

(5)创建表

注意:在创建表之前,应该先选择数据库。

create table <表名>(

字段名1,数据类型 [列级别约束条件] [默认值],

字段名2,数据类型 [列级别约束条件] [默认值],

.......

);

常见属性含义:

PRIMARY KEY :主键;

unique :唯一;

not null/null :非空/空;

AUTO_INCREMENT :自动加载;

default :如果没有填写自动补写默认信息。

A.表student

a.创建:

b.表结构

B.表course

a.创建

b.表结构

C.表SC

a.创建:

b.表结构:

3、关系的完整性(Navicat命令列界面)

(1)实体完整性——主键约束

主键:能够唯一地标识表中地一条记录。

要求:主键列的数据唯一,并且不允许为空。

分类:单字段主键/多字段联合主键。

A.单字段主键

a.在定义列的同时指定主键:

字段名 数据库类型 PRIMARY KEY [默认值]

例:sno char(9) primary key, /*列级完整性约束条件,sno是主码*/

b.在定义完所有列之后指定主键:

[constraint <约束名>] primary key [字段名]

例:primary key(sno)

注意:

如果发现主键设置错了,第一步,先删除主键:alter table student drop primary key;第二步,再增加主键:alter table student add primary key(sno);

B.多字段联合主键

primary key [字段1,字段2,......,字段n]

例:PRIMARY KEY(sno,cno)

(2)参照完整性——外键约束

外键:一个表可以有一个或多个外键。其对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每一个外键值必须等于另一个表中主键的某个值。

注意:定义外键后,不允许删除在另一个表中具有关联关系的行。

作用:保持数据的一致性、完整性。

主表(父表):对于两个具有关联关系的表而言,相关联字段中主键所在的那个表。

从表(子表):对于两个具有关联关系的表而言,相关联字段中外键所在的那个表。

A.创建外键:

[CONSTRAINT <外键名> ] FOREIGN KEY 字段名1 [,字段名2,...]

REFERENCES <主表名> 主键列1 [,主键列2,...]

注意:一个表中不能有相同名称的外键。

说明:参照表与被参照表可以是同一个表。

外键:

B.为已经添加好的数据表添加外键:

alter table 表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名);

例: alter table tb_active add constraint FK_ID foreign key(user_id) REFERENCES tb_user(id);

(3)用户自定义完整性——以非空约束为例

创建课程course信息表,并为其cname字段添加非空约束,代码如下:

表的结构如下所示:

4.安全性

(1)创建用户CREATE USER:

创建名为xxxxxxxxxxx,密码为xxx的用户:

(2)权限授予GRANT:

授予用户名为xxxxxxxxxxx,密码为xxx的用户使用所有数据库stu的所有权限,并允许他向其他人授予这些权限:

(3)撤销权限REVOKE:

撤销用户xxxxxxxxxxx的所有权限:

(4)重命名用户RENAME USER:

将用户名为xxxxxxxxxxx的用户重命名为xxx:

(5)删除用户DROP USER:

删除用户名为xxx的用户:

 

 

 

猜你喜欢

转载自blog.csdn.net/fortune_cookie/article/details/110238933