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的用户: