课堂内知识要点

知识要点
2.22
一.数据库系统和数据库设计
1.数据(Data),信息表现形式(数字、文字、图形、图像、视频、音频或动画等)
2.数据库(DataBase,DB):有组织结构的数据集合。
3.数据库管理系统(DataBase Managemen System,DBMS):是一个系统软件平台,是数据库应用系统的核心。
4.数据库应用系统(DataBase System,DBS):包括DB,OS,DBMS,APP,USER,DBA等。
5.数据模型:
      层次模型,网状模型,关系模型
6.
SQL Server的安装
操作:
               (1)Mysql80的安装与配置
               (2)E-R图设计

第2周 3.1-3
第二章 关系数据库系统模型
1、数据模型:
                    根据应用层次分为3类:
                                                      概念模型:实体(矩形框)、属性(椭圆框)、联系(姜形框+无向边)---->E-R图表示
                                                      逻辑模型:层次模型(树状)、网状模型(网状)、关系模型(二维表)
                                                      物理模型:数据在计算机里面的存取与管理方式等,对数据最底层的抽象描述
                    根据内容有3部分组成:
                                                      数据结构:层次模型(树状)、网状模型(网状)、关系模型(二维表) 
                                                      数据操作:增、删、改、查
                                                      数据约束:完整性的规则
2、数据库模型:
                         标准结构:
                                                   三级模式:
                                                                外部层---->外模式(数据概念模型)
                                                                概念层---->概念模式(数据逻辑模型)
                                                                内部层---->内模式(数据物理模型)
                                                  两级映像:
                                                  外模式/概念模式映像
                概念模式/内模式映像
3、关系数据库系统模型:
         (1)关系模型:
        域:一组具有相同数据类型的值的集合
        笛卡尔积:域的遍历乘积,构成一个二维表,子集为全集的关系(Relation)
        关系:笛卡尔积的有限子集,也是一个二维表
            行:元组
            列:属性
            类型:基表、查询表、视图表
            候选码(CK) 唯一标识元组的属性或属性组)
            主码(PK):某某一个候选码(实体完整性)
            外码(FK):不不同基表间的相同属性联系(参照完整性)
            规范化(范式) 每个分量必须是不可分的数据项(不能”表中表“)
            表示:R(A1, A2,A3...An),其中R是关系名,A1,A2…An是属性名

(2)关系代数:抽象的查询语言
            传统的集合操作:并、差、交、笛卡尔积(元组行)
            专门的关系操作:选择(元组行),投影(属性列),连接(行列)、除(行列)
            比较运算符:大于、大于或等于、小于、小于或等于、等于、不等于
            逻调运算符;与、或、非
(3) 关系语言:
            数据定义语言(Data Definition language.DDL): CREATE, ALTER, DROP(包I、修、8)
            数据操作语言(Data Manipulation Language.DML):INSERT, UPDATE、DELETE(播入、修改、配除)数据查询语言(Data Query Language,DQL):SELECT(查询)
            数据控制语言(Data Control Language.DCL):GRANT。REVOKE(操作权限)
4、操作:课本P37-39
实验2-2(1)(2)(3)(4)(5)
3(1)(2)将结果写在书上

第四章 Mysql数据库和表的命令操作
1.数据库(DATABASE)操作:
        (1) 创建数据库
               【例4.2】创建名为stusys的学生信息数据库,该数据库是本书的重要数据库。
                                   mysql> CREATE DATABASE stusts;
          (2)查看数据库
               【例4.1】查看MySQl服务器中已有的数据库
                                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;
                                    Database changed
            (4)修改数据库
                     【例4.4】修改数据库stusys的默认字符集和校对规则
                          mysql> alter database stusys
                           default character set gb2312
                           default collate gb2312_chinese_ci;
            (5)删除数据库
                       【例4.5】删除数据库 stusys
                         mysql>DROP DATABASE stusys;

2.数据表(TABLE)操作:
(1)表结构
      行:记录
      列:字段(filed),空值(null),主键(primary Key),外键(Foreign Key)
(2)数据类型
       整数型(int),定点数型(decimal(m,d)),浮点型(float),字符串型(char(n),varchar(n)),日期和时间型(datetime,year)
(3)创建表
a.新表
【例4.6】在数据库stusys中创建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

b.修改列 ADD COLUMN sid int NOT NULL UNIQUE AUTO INCREMENT FIRST;

[例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数据库中,将student 1表重命名为student2表。

mysql> ALTER TABLE stusys.student1

> RENAME TO stusys.student2;

[例4.15]在stusys数据库中,将student2表重命名为student3表。

e.删除表 mysql> RENAME TABLE stusys.student2 TO stusys student3;

[例4.16] 删除stusys数据库中的student3表。

mysql> DROP TABLE stusys.student3;

(7)查看存储引擎
[例4.17] 查看存储引擎。 mucrl- CHC W FNIGINFS

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, 
INSERT INTO student1 (sno, sname, speciality, te, 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

(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.REPL ACE语句可以在插入数据之前将与新记录冲突的旧记录删除,便新

#【例5.5】对student1表,重新插入记录('196002','李茜','女','1998-07-25','通信’,48)。
use stusys;
create table student1 like student;
select * from student1;
insert into student1 
    select * from student;


#【例5.6】向student2表插入student表的记录。
use stusys;
create table student2 like student;
select * from student2;
insert into student2 
    select * from student;
#【例5.7】在student1表中,将学生周俊文的出生日期改为“1999-03-10”。
select * from student1;
SET SQL_SAFE_UPDATES=0;
UPDATE student1
    SET sbirthday='1999-03-10'
    WHERE sname='周俊文';

#【例5.8】在student1表中,将所有学生的学分增加2分。
use stusys;
update student1
    set tc=tc+2;
select * from student1;
select * from student;
#【例5.9】在student1表中,删除学号为196004的行。
delete from student1
    WHERE sno='196004';
#【例5.10】在student1表中,删除所有行。
delete from student1
#【例5.11】在student表中,删除所有行。
5.04-12

第10章存储过程和存储函数

1.存储过程(procedure) :

是一组完成特定功能的SQL语句生,即一段存放在数据库中的代码,可由声明式SQL语句(例如CREATE语句、SELECT语句、INSERT语句等)和过程式SQL语句(如IF -THEN-ELSE控制结构语句)组成。

2.存储过程的创建、查看、调用和删除

(1)创建:

delimiter//

create procedure存储过程名称(形式参数] )(先选择数据库)

begin

routine body(存储过程体) ;

end$$

I delimiter;

注意:可使用DELIMITER命令将MySQL语句的结束标志修改为其他符号:delimiter //..delimiter ;

(2)查看:

show procedure status;/create procedure存储过程名称;

(3)调用:

CALL存储过程名称(实际参数]);

()删除

drop procedure存储过程名称

3.存储函数(function):

可以分为两种,一种是内置函数,-一种是自定义函数。在MySQL中, 通常将用户自定义的函数称为存储函数,和MySQL内苦函数性质相同,都用于实现某种功能。

4.存储函数的创建、查看、调用和删除

除了调用均与存储过程类似, 只需将procedure改成function即可。

(1)创建,createfunction

(2)查看:show function

t(C:]

(3)调用:select函数名(实参)(不能用cal)

(3月月31

D:

(4)删除:drop function

5.存储过程与存储函数的异同

(1)相同:

都是过程式数据库对象,都是附有一定功能的代码集合,增删改查操作均类似

(2)不同:

a.存储过程可以有输入和输出参数,但函数只能有输入参数,函数本身就是输出参数 b,存储过程调用: call存储过程名,但函数调用: select 函数名(实参)

中1

C.存储过程不允许有return语句,但函数必须有retur语句

口8-Windows照片查看器

文件日打印(P)电子邮件(E)

刻乐U

可打开(O)

Drive

地磁盘(C:地磁盘(D:

6.变量的定义(声名)、赋值、流程控制语句与游标

局部变量:在过程体的开头声名,在benin..end内总有效

(1)定义:declare变量名变量类型

(2)单个赋值语句:set变量名=变量值或表达式

(3)列表赋值语句: select列表名 into |变量名

(3)流程控制语句:

a.条件语句: f.h..l.. end if;

case变量名

when...then ..end case;

b.循环语句: while .. end while;

[标签:]LOOP语句列表出END LOOP[标签];

[标签:] REPEAT语句列表UNTIL条件表达式END REPEAT [标签];

(4)游标:是通过select语句检索出来的结果集,一定要在存储过程或函数使用,不能单独在查询中使用。

操作过程:

定义(声名) : declare游标名称-->

打开: open游标名称-->

读取: fetch 游标名称into变量名-->

关闭: close 游标名称

用户变量:用户自己定义的变量,存在整个会话中,前面加@符号,与存储过程的输出变量个数相同。

系统变量:全局变量和会话变量,前面加@@符号。
5.17- 19

第11章触发器和事件

1.触发器(trigger) :

是一个被指定关联到表的数据库对象,与表的关系密切,它不需要用户调用,而是在一个表的特定事件出现时将会被激活, 此时某些MySQL语句会自动执行。

2.触发器的创建、删除和使用

(1)创建: delimiter //

CREATE TRIGGER 名称时间(before/after) 事件(insert/update/delete)

ON名FOR EACH ROW

begin

触发体语句;

end //

delimiter ;

注意:在触发器的创建中,每个表每个事件每次只允许一个触发器,所以每条INSERT、 UPDATE、 DELETE的前或后可创建一 个触发器, 每个表最多可创建6个触发器。

(2)验证使用:

a. INSERT触发器:在INSERτ语句执行之前或之后执行。

(a) INSERT触发 器的触发体内可引用一个名为NEw的虚拟表来访问被插入的行。 b)在BEFORE INSERT触发器中,NEW中的值可以被更新,但after后不能更新。

b. UPDATE触发器:在UPDATE语句执行之前或之后执行。

(a)UPDATE触发器的触发体内可引用一一个名为0LD的虚拟表来访问更新以前的值,也可引用一一个名为NEw的虚拟表来访问更新以后的值。

(b)在BEFORE UPDATE触发器中,NEW中的值可能E被更新,但after后不能更新。 (c) OLD中的值不能被更新。

c. DELETE触发器:在DELETE语句执行之前或之后执行。

(a) DELETE触发 器的触发体内可引用一个名为OLD的虚拟表来访问被 删除的行。 (b) OLD中的值不能被更新。

(3 )删除: DROP TRIGGER 名称

3.补充说明:

(1)after是先完成数据的增删改,再触发,对new数据不能增删改;

(2)before是先完成触发,再增删改,对new数据可以增删改;

(3)after和before都不能对old数据增删改。

4.事件(Event):

是在指定时刻才被执行的过程式数据库对象

(1 )通过MySQL中一个很有特色的功能模块一一事件调度器(Event Scheduler)进行监视,并确定其是否需要被调用。 (2 )事件调度器可以精确到每秒钟执行个任务, 比操作系统的计划任务更具实时优势。

(3)事件和触发器相似,都是在某些事情发生时启动,由于它们相似,所以事件又称为临时触发器( Temporal Trigger)。(4)区别:触发器是基于某个表所产生的事件触发的,而事件是基于特定的时间周期来触发的。

(5 )使用事件调度器之前,必须确保开启事件调度器。

5.事件的创建、修改和删除

(1)创建:

delimiter //

create event 名称

on schedule时间(at/every)dc

begin

事件语句;

end //

delimiter ;

(2)修改: alter event名称

(3)删除: drop event名称

5.24-26

第12章安全管理

1.权限表
(1)user表:记录允许连接到服务器的账号信息,里面的权限是全局级的,即针对所有用户数据库所有表的
      查看: desc user;

(2)db表:存储了用户对某个数据库的操作权限,决定用户能从哪个主机存取哪个数据库。

(3)tables_ priv表和tables_ priv表:对表进行权限设置

(4)procs_ priv表:对存储过程和存储函数进行权限设置

2.用户管理

(1)查看: SELECT host, user, authentication string FROM mysql.user,

(2)创建:CREATE USER 'user name' @'host name' IDENTIFIED BY 'password' (3)删除:DROP USER user 'user name @'host name';

(4)修改用户名:RENAME USER old user TO new user;

(5)修改密码: SET PASSWORD FOR user=' password'

3.权限管理

(1)授予权限:

GRANT priv _type(create/select/drop...).

on数据库名或表名

to user

WITH GRANT OPTION; (权限转移)

(2)撤销权限:

REVOKE priv type(create/select/drop..)

on数据库名或表名

FROM user

第15章关系数据库设计理论

(1)函数依赖:起核心作用,是模式分解和模式设计的基础。
(2)范式:是模式分解的标准。
(3)模式设计
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值