一、课程网络资源:
1.www.liaoxuefeng.com
2.www.runoob.com
3.www.csdn.net
4、B站
二、课程学习建议:
1、及时摘写课堂知识要点记事本(期末考试备用)。
2、开发注册自己的csdn博客(IT行业),及时更新。
3、将自己每次课程内容和作业挂到博客上(其他课程也可以这样做)(平时作业考核)。
4、课堂上需要用到手机或外网查阅课程相关内容,而非游戏聊天电话等
5、将手机系统设置为英文模式(+5分)
三、课程简介
四、知识要点
********************************************************************************************
2.22-24
第一章 数据库概论
1、数据(Data),信息表现形式(数字、文字、图形、图像、视频、音频或动画等)
2、数据库(DataBase,DB):有组织结构的数据集合。
3、数据库管理系统(DataBase Managemen System,DBMS):是一个系统软件平台,是数据库应用系统的核心。
4、数据库系统(DataBase System,DBS):包括DB,OS,DBMS,APP,USER,DBA等。
5、操作:
(1)Mysql80的安装与配置(第3章实验3)
(2)E-R图设计(第1章实验1)
********************************************************************************************
3.1-3
第二章 关系数据库系统模型
1、数据模型:
(1)根据应用层次分为3类:
概念模型:实体(矩形框)、属性(椭圆框)、联系(菱形框+无向边)---->E-R图表示
逻辑模型:层次模型(树状)、网状模型(网状)、关系模型(二维表)
物理模型:数据在计算机里面的存取与管理方式等,对数据最底层的抽象描述
(2)根据内容有3部分组成:
数据结构:层次模型(树状)、网状模型(网状)、关系模型(二维表)
数据操作:增、删、改、查
数据约束:完整性的规则
2、数据库模型:
标准结构:
三级模式:
外部层---->外模式(数据概念模型)
概念层---->概念模式(数据逻辑模型)
内部层---->内模式(数据物理模型)
两级映像:
外模式/概念模式映像
概念模式/内模式映像
3、关系数据库系统模型:
(1)关系模型:
域:一组具有相同数据类型的值的集合
笛卡尔积:域的遍历乘积,构成一个二维表,子集为全集的关系(Relation)
关系:笛卡尔积的有限子集,也是一个二维表
行:元组
列:属性
类型:基表、查询表、视图表
候选码(CK):唯一标识元组的属性或属性组)
主码(PK):某一个候选码(实体完整性)
外码(FK):不同基表间的相同属性联系(参照完整性)
规范化(范式):每个分量必须是不可分的数据项(不能”表中表“)
表示:R(A1,A2,A3...An),其中R是关系名,A1,A2...An是属性名
(2)关系代数:抽象的查询语言
传统的集合操作:并、差、交、笛卡尔积(元组行)
专门的关系操作:选择(元组行)、投影(属性列)、连接(行列)、除(行列)
比较运算符:大于、大于或等于、小于、小于或等于、等于、不等于
逻辑运算符:与、或、非
(3)SQL关系语言:
数据定义语言(Data Definition Language,DDL):CREATE、ALTER、DROP(创建、修改、删除)
数据操作语言(Data Manipulation Language,DML):INSERT、UPDATE、DELETE(插入、修改、删除)
数据查询语言(Data Query Language,DQL):SELECT(查询)
数据控制语言(Data Control Language,DCL):GRANT、REVOKE(操作权限)
********************************************************************************************
3.8-10
第三章 Mysql的安装与运行
注意事项参考:
https://blog.csdn.net/m0_52775858/article/details/123705566
https://blog.csdn.net/IT_YQG_/article/details/120012541?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-5-120012541-blog-119766392.pc_relevant_3mothn_strategy_recovery&spm=1001.2101.3001.4242.4&utm_relevant_index=8
第四章 Mysql数据库和表的命令操作
1.数据库(DATABASE)操作:
(1)创建数据库
【例4.2】创建名称为stusys的学生信息数据库,该数据库是本书的重要数据库。
mysql> CREATE DATABASE stusys;
(2)查看数据库
【例4.1】查看MySQL服务器中的已有数据库。
mysql> SHOW DATABASES;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sakila |
| sys |
| world |
+--------------------+
6 rows in set (0.01 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sakila |
| stusys |
| sys |
| world |
+--------------------+
7 rows in set (0.00 sec)
(3)选择数据库
【例4.3】选择stusys为当前数据库。
mysql> USE stusys;
mysql> use database stusys;
ERROR 1049 (42000): Unknown database 'database'
mysql> use stusys;
Database changed
(4)修改数据库
【例4.4】修改数据库stusys的默认字符集和校对规则。
mysql> ALTER DATABASE stusys
-> DEFAULT CHARACTER SET gb2312
-> DEFAULT COLLATE gb2312_chinese_ci;
mysql> use stusys;
Database changed
mysql> alter database;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
mysql> alter database stusys
-> default character set gb2312
-> default collate gb2312_chinese_ci;
Query OK, 1 row affected (0.02 sec)
(5)删除数据库
【例4.5】删除数据库stusys。
mysql> DROP DATABASE stusys;
mysql> drop database stusys;
Query OK, 0 rows affected (0.05 sec)
mysql> drop database stusys;
ERROR 1008 (HY000): Can't drop database 'stusys'; database doesn't exist
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sakila |
| sys |
| world |
+--------------------+
6 rows in set (0.00 sec)
2.课堂内外作业:
课本P55--71例4.1--4.17,并做好知识要点摘录和CSDN文案。
********************************************************************************************
3.15-17
1.数据表(TABLE)操作:
(1)表结构
行:记录
列:字段(field)、空值(null)、主键(Primary Key)、外键(Foreign Key)
(2)数据类型
整数型(int)、定点数型(decimal(m,d))、浮点型(float)、
字符串型(char(n),varchar(n))、日期和时间型(datetime、year)
(3)创建表
a.新表:
【例4.6】在基本数据库stusys中创建student表,student表是基本表之一。
mysql> USE stusys;
Database changed
mysql> CREATE TABLE student
->(
->sno char(6) NOT NULL PRIMARY KEY,
->sname char(8) NOT NULL,
->ssex char(2) NOT NULL DEFAULT '男',
->sbirthday date NOT NULL,
->speciality char(12) NULL,
->tc tinyint NULL
->);
b.复制表:
【例4.7】在stusys数据库中,使用复制方式创建student1表,表结构取自student表。
mysql> USE stusys;
Database changed
mysql> CREATE TABLE student1 like student;
(5)查看表
a.表的名称:
【例4.8】查看数据库stusys中所有表名。
mysql> USE stusys;
Database changed
mysql> SHOW TABLES;
b.表的基本结构
【例4.9】查看数据库stusys中student表的基本结构。
mysql> SHOW COLUMNS FROM student;
或者
mysql> DESC student;
c.表的详细结构
【例4.10】查看数据库stusys中student表的详细结构。
mysql> SHOW CREATE TABLE student;
(6)修改表
a.添加列
【例4.11】在数据库stusys的student表中增加一列sid,添加到表的第1列,不为空,取值唯一并自动增加。
mysql> ALTER TABLE stusys.student
-> ADD COLUMN sid int NOT NULL UNIQUE AUTO_INCREMENT FIRST;
b.修改列
【例4.12】将stusys数据库的student1表的列sbirthday修改为sage,将数据类型改为tinyint,可空,默认值为18。
mysql> ALTER TABLE stusys.student1
-> CHANGE COLUMN sbirthday sage tinyint DEFAULT 18;
c.删除列
【例4.13】删除数据库stusys的表student中的列sid。
mysql> ALTER TABLE stusys.student
-> DROP COLUMN sid;
d.修改名称
【例4.14】在stusys数据库中,将 student1表重命名为student2表。
mysql> ALTER TABLE stusys.student1
-> RENAME TO stusys.student2;
【例4.15】在stusys数据库中,将 student2表重命名为student3表。
mysql> RENAME TABLE stusys.student2 TO stusys.student3;
e.删除表
【例4.16】删除stusys数据库中的student3表。
mysql> DROP TABLE stusys.student3;
(7)查看存储引擎
【例4.17】查看存储引擎。
mysql> SHOW ENGINES;
第五章 表数据操作
2.表数据操作
(1)插入数据
a.插入值的顺序和表定义的列的顺序相同
#【例5.1】向student1表插入一条记录('196001','董明霞','女','1999-05-02','通信’,50)。
INSERT INTO student1
VALUES
('196001','董明霞','女','1999-05-02','通信',50);
select * from student1;
b.插入值的顺序和表定义的列的顺序不同
#【例5.2】向student1表插入一条记录,学号为“196002”,姓名为“李茜”,专业为“通信”,总学分48,性别为“女”,出生日期为“1998-07-25”。
INSERT INTO student1 (sno, sname, speciality, tc, ssex, sbirthday)
VALUES
('196002','李茜','通信',48,'女','1998-07-25');
select * from student1;
c.给出了部分列的值,其它列的值为表定义时的默认值,或允许该列取空值
#【例5.3】向student1表插入一条记录,学号为“196004”,姓名为“周俊文”,性别为“男”、取默认值,出生日期为“1998-03-10”,专业为空值,总学分为52。
INSERT INTO student1 (sno, sname, sbirthday, tc)
VALUES
('196004','周俊文', '1998-03-10', 52);
select * from student1;
d.插入多条记录,在插入语句中,插入值列表之间用逗号隔开。
#【例5.4】向student表插入样本数据,共6条记录,参见附录B。
INSERT INTO student
VALUES
('191001','刘清泉','男','1998-06-21','计算机',52),
('191002','张慧玲','女','1999-11-07','计算机',50),
('191003','冯涛','男','1999-08-12','计算机',52),
('196001','董明霞','女','1999-05-02','通信',50),
('196002','李茜','女','1998-07-25','通信',48),
('196004','周俊文','男','1998-03-10','通信',52);
select * from student1;
e.REPLACE语句可以在插入数据之前将与新记录冲突的旧记录删除,使新记录能够正常插入。
#【例5.5】对student1表,重新插入记录('196002','李茜','女','1998-07-25','通信’,48)。
REPLACE INTO student1
VALUES
('196002','李茜','女','1998-07-25','通信',48);
select * from student1;
f.将已有表的记录快速插入当前表中
#【例5.6】向student2表插入student表的记录。
create table student2 like student;
select * from student2;
INSERT INTO student2
SELECT * FROM student;
select * from student2;
(2)修改数据
a.修改指定记录需要通过WHERE子句指定要修改的记录满足的条件。
#【例5.7】在student1表中,将学生周俊文的出生日期改为“1999-03-10”。
select * from student1;
SET SQL_SAFE_UPDATES = 0;
UPDATE student1
SET sbirthday='1999-03-03'
WHERE sname ='周俊文';
select * from student1;
b.修改全部记录不需要指定WHERE子句。
#【例5.8】在student1表中,将所有学生的学分增加2分。
UPDATE student1
SET tc=tc+2;
select * from student1;
(3)删除数据
a.删除指定记录需要通过WHERE子句指定表中要删除的行所满足的条件。
#【例5.9】在student1表中,删除学号为196004的行。
DELETE FROM student1
WHERE sno='196004';
select * from student1;
b.删除全部记录有两种方式:
一种方式是通过DELETE语句并省略WHERE子句,则删除表中所有行,仍保留表的定义在数据库中。
#【例5.10】在student1表中,删除所有行。
DELETE FROM student1;
select * from student1;
另一种方式是通过TRUNCATE语句,则删除原来的表并重新创建一个表。
#【例5.11】在student表中,删除所有行。
TRUNCATE student2;
select * from student2;
3.第十三章 备份和恢复
(1)备份数据
#【例13.1】备份stusys数据库中的course表中数据,要求字段值如果是字符就用双引号标注,字段值之间用逗号隔开,每行以问号为结束标志。
(2)恢复数据
4.课堂内外作业:
(1)课本P79--85例5.1--5.11,并做好知识要点摘录和CSDN文案。
(2)课本P88--90实验5-2全部,将图文并茂的文案上传CSDN。
********************************************************************************************************
--修改数据库名
ALTER DATABASE librarypm
MODIFY NAME=librarypm_new;
--用存储过程更改数据库名
sp_renamedb librarypm_new ,librarypm;
(3)删除
--删除数据库文件
ALTER DATABASE librarypm
REMOVE FILE librarypmbk
--删除数据库
DROP DATABASE librarypm
13.数据表(TABLE)
(1)表结构:
行:记录
列:字段(field)、空值(null)、主键(primary key)
(2)数据类型:
整数型(int)、浮点型(float)、字符型(nvarchar(n))
14.T_SQL:
(1)创建:(请先在平台里运行再复制如下)
--创建数据表(课本P56-4.1)
USE stsc
CREATE TABLE student
(
stno char(6) NOT NULL PRIMARY KEY,
stname char(10) NOT NULL ,
stsex char(2) NOT NULL,
stbirthday date NOT NULL,
specialist char(20) NULL,
tc int NULL
)
GO
USE stsc
CREATE TABLE score
(
stno char(6) NOT NULL ,
cno char(3) NOT NULL,
grade int NULL,
PRIMARY KEY(stno,cno)
)
GO
--由其他表创建新表(课本P57-4.2)
USE stsc
SELECT stno,stname,stbirthday INTO student1
FROM student
--修改表的列(增加列)
USE stsc
ALTER TABLE student1
ADD remark varchar(50)
--修改表的列(删除列)
ALTER TABLE student1
DROP COLUMN remark
7、SQL Server 安全机制:
服务器安全性 (USER)
数据库安全性(USER)
数据库对象安全性(USER)
8、服务器管理:
创建登录名(CREATE /Login /DataBase /Table /View /Index)
修改登录名(ALTER /Login /DataBase /Table /View /Index)
删除登录名(DROP /Login /DataBase /Table /View /Index)
9、SQL Server 数据库对象
两类:系统数据库(master、model、msdb、tempdb)
用户数据库(常规创建删除修改等操作对象)
10.数据库文件(扩展名)
3类:
主数据文件(.mdf)
辅助数据文件(.ndf)
日志数据文件(.ldf)