创建数据库,数据库表

create databse studb_q;

use studb_q;

创建学生表

create table student(sno char(10),sname varchar(20)not null,ssex tinyint,sbirthe data,sdept var char(30),primary key(sno));

创建课程表

create table course(cno char(4),cname varchar(40) unique not null,Ccredit int,primary key(cno));

创建选课表

create table SC(sno char(10),cno char(4),Grade int,primary key(sno,cno),Foreign key(sno)references student(sno)on update cascade on delete cascade,foreign    key(sno)references course(cno)on update cascade on delete cascade);

插入数据

Insert into student values();

修改数据

Updata student set sno=10209 where sno=’   ’;

修改多个元组的值:将所有学生的年龄增加1岁

Updata student set sage=sage+1;

带子查询的修改语句:将计算机科学系全体学生的成绩置零

Update SC set grade=0 where sno in(select sno from student where sdept=’cs’);

删除数据

Delete from student where sno =’  ’;

删除所有学生的选课记录

Delete from sc;

删除计算机科学系所有学生的选课记录

Delete from sc where sno in(select sno from student where sdept=’cs’);

查询全体学生的学号和姓名

Select sno,sname from student;

查询全体学生的详细记录

Select sname,sno,ssex,sbirth,sdept from student;

查询全体学生的姓名及其年龄

Select sname,Timestampdiff(year,sbirth,curdate())as’age’from student;

将出生日期改为查询年龄

Select sname as name,timestampdiff(year,sbirth,curdate())as  age,lower(sdept)as department from student;

查询选修了课程的学生学号

Select distinct sno from sc;

查询计算机科学系全体学生的名单

Select sname from student where sdept=’cs’;

查询所有年龄在22岁以下包括22岁的学生姓名及年龄

Select sname,Timestampdiff(year,sbirth,curdate())as age from student  where

Timestampdiff(year,sbirth,curdate())<=22;

查询考试成绩不及格学生的学号

Select sno from sc where grade<60;

查询计算机科学系(CS)、数学系(MA)和信息系(IS)学生的姓名和性别

Select sname,ssex from student where sdept in(‘cs’,’ma’,’is’);

查询既不是计算机系、数学系、也不是信息系的学生姓名和性别

Select sname,ssex from student where sdept not in(‘cs’,’ma’,’is’);

查询学号10209的学生的详细情况

Select *from student where sno like ‘10209’;

某些学生选修课程后没有参加考试,所以有选课记录,但是没有考试成绩。查询缺少成绩的学生的学号和相应的课程号

Select sno,cno,from sc where grade is null;

查询所有有成绩的学生学号和课程号

Select sno,cno from sc where grade is not null;

查询计算机系年龄在25岁下的学生姓名。

Select sname from student where sdept=’cs’and timestampdiff(year,sbirth,curdate())<=25;

查询选修了0003号课程的学生的学号及其成绩,查询结果按分数降序排   列。

Select sno,grade from sc where cno=’0003’order by grade desc;

查询全体学生情况,查询结果按所在系的系号升序排列,同一列中的学生按年龄降序排列。

Select *from student order by sdept asc,timestampdiff(year,sbirth,curdate())desc;

查询学生总人数

Select count(*)as total_stu_number from sc;

查询选修了课程的学生人数

Select count(distinct sno)from sc;

计算平均成绩

Select avg(grade)as 平均成绩 from sc where cno=’001’;

找出所有姓“王”的女性职工信息。

select * from emp where empname like'王%';

找出在面积大于400的仓库中工作的职工

命令:select employee.emp_id,employee.wh_id,employee.salary from  employee join warehouse on employee.wh_id=warehouse.wh_id where wh_area>400;

找出在北京工作的职工和他们的工资情况

命令:select emp_id,salary from employee join warehouse on employee.wh_id=warehouse.wh_id where warehouse.wh_city='北京';

找出工资大于1215的职工和他们所在的城市

select emp_id,wh_city from employee join warehouse on employee.wh_id=warehouse.wh_id where employee.salary>1215;

6、子查询

(1)找出和E4有同样工资的所有职工

命令:select * from emp where emp_id in(SELECT emp_id from employee where salary =(SELECT salary from employee where emp_id='E4'));

(2)找出仓库面积大于400的仓库的所有职工

命令:SELECT * from emp where emp_id in(select emp_id from employee where wh_id in(SELECT wh_id from warehouse where wh_area>400));

找出供应商在西安的职工和他们的工资情况

SELECT emp.*,employee.salary from emp,employee where emp.emp_id=employee.emp_id and employee.wh_id in(SELECT wh_id from warehouse where wh_city='西安');

求广州和北京仓库职工的总工资。

SELECT wh_id,sum(salary)from employee where wh_id in(SELECT wh_id from warehouse where wh_city in ('广州','北京')) GROUP BY wh_id;

创建视图 供应商地址

给出每一位供应商名和地址

create view 供应商地址 as select supplier.sup_name,supplier.address from supplier;

删除视图

Drop view<视图名>[cascade];

查询视图 在信息系学生的视图中找出年龄小于20岁的学生。

Select Sno,Sage from is_student where sage<20;

查询平均成绩在90分以上的学生学号和平均成绩

Select sno,avg(grade)from sc having avg(grade)>=90;

视图的作用:1.视图能够简化用户的操作2.视图使用户能以多种角度看待同一数据3.视图对重构数据库提供了一定的逻辑独立性。

SQL可以分为数据定义、数据查询、数据更新、数据控制

数据库安全;我们创建两个用户swan和mary对于数据库world,为swan赋予读写权限,为mary赋予只读权限。

Create user ‘swan’@’%’identified by’123456’;

Grant all on world.*to swan;

Flush privileges;

Create user’mary’@’%’identified by’123456’;

Grant select on world.*to mary;

Flush privileges;

数据库的完整性是指数据的正确性和相容性。

实体完整性检查和违约处理:检出主码值是否唯一,如果不唯一则拒绝插入或者修改。检查主码的各个属性是否为空,只要有一个为空就拒绝插入或者修改从而保证了实体的完整

定义SC中的的参照完整性。

Create table sc(sno char(9)not null,cno char(4)not null,grade smallint,primary key(sno,cno),foreign key(sno)references student(sno),foreign key(Cno)references course(cno));

第一范式:作为一个二维表,关系要符合一个基本条件:每一个分量必须是不可分的数据项,满足了这个条件的关系模式就属于第一范式。

第一范式的特点:非主属性对码的部分依赖:第二:没有非主属性对码的部分依赖,存在非主属性对码的传递依赖。第三:没有非主属性对码的部分依赖,也没有非主属性对码的传递依赖

BCNF具有的性质:所有的非主属性对每一个码都是完全函数依赖。所有主属性对每一个不包含它的码也是完全函数依赖。没有任何属性完全函数依赖于非码的任何一组属性。

关系查询优化怎么优化?1将查询转换成某种内部表示,通常是语法树2根据一定的等价交换准则把语法树转换成标准(优化)形式3选择低层的操作算法:根据数据的存储分布、存储数据的聚簇信息选择具体算法。4生成查询方案:由一系列内部操作组成通常选择代价最小的方案。

所谓事物是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。

事物具有的4个特性:原子性、一致性、隔离性、和持续性 称为ACID特性。

事物的故障意味着事物没有达到预期的终点,系统故障是指系统停止运转的任何事件,使得系统要重新启动。

日志的作用:可以用来进行事物故障恢复和系统故障恢复,并协助后备副本进行介质故障恢复具体作用:事物故障恢复和系统故障恢复必须用日志文件。在动态转储方式中必须建立日志文件,后备副本和日志文件结合起来才能有效地恢复数据库。

数据库并发操作带来的数据不一致性主要有,丢失修改,不可重复读,读脏数据

怎么解决?封锁,锁包括 排它锁(X锁)和共享锁(S锁)

封锁带来的问题 :活锁(先来先服务解决),死锁

死锁解决方案:预防死锁,定期检测死锁解除死锁

预防:1 一次封锁法 ,问题降低并发度 2 顺序封锁法,问题是封锁顺序开销大,二是事务的封锁请求可以随着事务的执行而动态决定

数据库的完整性是指数据的正确性和相容性。

实体完整性检查和违约处理:检出主码值是否唯一,如果不唯一则拒绝插入或者修改。检查主码的各个属性是否为空,只要有一个为空就拒绝插入或者修改从而保证了实体的完整

视图的作用:1.视图能够简化用户的操作2.视图使用户能以多种角度看待同一数据3.视图对重构数据库提供了一定的逻辑独立性。

SQL可以分为数据定义、数据查询、数据更新、数据控制

- -- 数据库权限

-- 查询用户

select *from mysql.`user`;

-- 创建用户

create user 'zhang' identified by 'zhang'

-- create user '用户名'@'主机名' identified by '密码'

create user 'list'@'localhost' identified by 'list'

create user 'list'@'%' identified by 'list'

-- % 主机名默认是%,表示在任意主机上登录服务器

-- 修改用户

-- 修改密码

alter user 'list'@'localhost' identified by 'list2'

-- 修改安全插件 mysql8默认是caching_sha2_password,需要修改为mysql_native_password

alter user 'list'@'localhost' identified with mysql_native_password  by 'list2'

-- 删除用户

drop user'list'

关系模式三类完整性约束:实体完整性、参照完整性、用户定义的完整性

作用:参照完整性,简单的说就是表间主键外键的关系。参照完整性属于表间规则。最主要的作用是防止出现数据不一致。

.产生数据不一致性的原因(理解)

原因:

一是由于数据冗余造成的;二是由于并发控制不当造成的;三是由于各种故障、错误造成的。
根本原因:数据冗余

1、两段锁协议

指事务必须分成两个阶段对数据进行加锁和解锁

在释放一个封锁以后,事务不在申请获得其它封锁

2、两段锁的含义

第一段是获得封锁,也称扩展阶段

事务可以获得任何数据项上任何类型的锁,但是不能释放锁

第二段是释放封锁,也称收缩阶段

事务可以释放任何数据项上任何类型的锁,但是不能获得锁

为什么要进行数据库的优化

增加数据库的稳定性

优化用户的体验

避免网站页面出现访问错误

自然连接和等值连接的区别和共同点

等值连接中不要求相等属性值的属性名相同,而自然连接要求相等属性值的属性名必须相同,即两关系只有在同名属性才能进行自然连接。
2)等值连接不将重复属性去掉,而自然连接去掉重复属性,也可以说,自然连接是去掉重复列的等值连接。

防止死锁的方法有两种:预防死锁、死锁诊断与解除

预防死锁有两种办法:一次封锁法、顺序封锁法

死锁诊断与解决:超时法、事务等待图法

  1. 论述数据,数据库,数据库管理系统数据库系统的概念                                                
  2. 数据库管理系统的主要功能有哪些
  3. 论述数据库的特点
  4. 论述数据库系统的组成
  5. 论述关系模型的三个组成部分
  6. 等值连接与自然连接的区别和联系
  7. 关系代数的基本运算有哪些
  8. 论述sql的特点
  9. 论述视图的特点
  10. 什么是数据库的安全性
  11. 什么是数据库的完整性约束条件
  12. Bcnf 多值 依赖 三大范式
  1. 数据(Data ):描述事物的符号记录称为数据 数据库(DataBase ,简称DB ):数据库是长期储存在计算机内的、有组织的、可共享的数据集 合。数据库管理系统(DataBase Management sytem ,简称DBMs ):数据库管理系统是位于用户与操 作系统之冋的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。DBMS的主要功 能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。
  2. 数据库定义功能;(2 )数据存取功能;(3 )数据库运行管理;(4)数据库的建立和维护功能 。实体:客观存在并可以相互区分的事物叫实体。实体型:具有相同属性的实体具有相同的特征和性质,用 实体名及其属性名集合来抽象和刻画同类实体,称为实体型。实体集:同型实体的集合称为实体集;实体 之间的联系:通常是指不同实体型的实体集之间的联系,实体之间的联系有一对一,一对多和多对多等多 种类型。
  3. 关系模型与非关系模型不同,它是建立在严格的数学概念的基础上的。 (2 )关系模型的概念单一,无论实体还是实体之间的联系都用关系表示,操作的对象和操作的结果都是 关系,所以其数据结构简单、清晰,用户易懂易用。(3 )关系模型的存取路径对用户透明,从而具有更 高的数据独立性、更好的安全保密性
  4. 数据库系统一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成
  5. 关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。
  6. 等值连接不将重复属性去掉,而自然连接去掉重复属性,也可以说,自然连接是去掉重复列的等值连接
  7. 并、差、笛卡尔积、投影和选择5种运算为基本的运算。其他3种运算,即交、连接和除,均可以用 这5种基本运算来表达
  8. 综合统一。sQL语言集数据定义语言DDL、数据操纵语言DML、数据控制语言DCL的功能于一体。 高度非过程化
  9. 视图能够简化用户的操作;(2 )视图使用户能以多种角度看待同一数据;(3 )视图对重构数 据库提供了一定程度的逻辑独立性;(4 )视图能够对机密数据提供安全保护。
  10. 数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏
  11. 数据库的完整性是指数据的正确性和相容性
  12. 静态列级约束、静态 元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束。静态列级约束是对一个列的取 值域的说明 所有的非主属性对每一个码都是完全函数依赖。所有主属性对每一个不包含它的码也是完全函数依赖。没有任何属性完全函数依赖于非码的任何一组属性。

数据库系统概论总结(第五版)相关推荐

  1. 数据库设计 数据库系统概论(第五版)

    萨师煊,王珊.数据库系统概论[M].第五版.北京:高等教育出版社,2014. 1数据库设计概述 1.1什么是数据库设计? 数据库设计是指对于一个给定的应用环境,设计一个优良的数据库逻辑模式和物理结构, ...

  2. 数据库笔记整理--基于《数据库系统概论》第五版王珊一书|第二章--关系数据库知识整理和课后习题答案

    该系列的博客都是基于<数据库系统概论>第五版王珊一书 前提: 因为最近要升学的原因,再加上重温数据库部分内容,所以整理一份比较详细且重点的笔记.适合有考研升学需求的人收藏 -------- ...

  3. 数据库笔记整理--基于《数据库系统概论》第五版王珊一书|第八章--数据库编程知识整理和课后习题答案

    该系列的博客都是基于<数据库系统概论>第五版王珊一书 前提: 因为最近要升学的原因,再加上重温数据库部分内容,所以整理一份比较详细且重点的笔记.适合有考研升学需求的人收藏 -------- ...

  4. 数据库系统概论(第五版)复习资料

    (配套教材为数据库系统概论第五版王珊) 一.填空题 数据库 P4 数据库是长期存储在计算机内.有组织的.可共享的大量数据的集合. 数据库的数据独立性    P13 数据独立性分为物理独立性和逻辑独立性 ...

  5. 【复习总汇】数据库系统概论(第五版)王珊、萨师煊编——复习总汇(最全面最详细,课本内容1:1总结归纳)

    数据库原理(第五版)王珊.萨师煊编著--复习总汇(最全面最详细,课本内容1:1总结归纳) 1-11章节 星号不考 文章目录 数据库原理(第五版)王珊.萨师煊编著--复习总汇(最全面最详细,课本内容1: ...

  6. 数据库系统概论(第五版)学习笔记

    学习资料:<数据库系统概论> , 萨师煊.王珊 https://www.bilibili.com/video/av20449194/?p=4 第一章 1.3数据库系统的结构 数据库系统模式 ...

  7. 数据库系统概论(第五版)重点总结,期末考试也可以用

    第一章: 1.四大概念: (1)数据:描述事物的可识别的符号称为数据.数据与其语义不可分离. (2)数据库DB:长期存储在计算机内.有组织的.可共享的大量数据的集合.数据库中的数据按一定的数据模型组织 ...

  8. 数据库笔记整理--基于《数据库系统概论》第五版王珊一书|复习提纲和错题整合

    数据库原理复习大纲 第一章 数据库概述 1.1 概述 1.基本概念 数据库(DB).数据库管理系统(DBMS).数据库系统(DBS)概念 数据库是存储在计算机内.有组织的.可共享的数据集合. 数据库管 ...

  9. 数据库系统概论(第五版)王珊 自用复习笔记

    什么是数据库?数据库的三个基本特点. 数据库是长期存储在计算机内,有组织,可共享的大量数据的集合.数据库中的数据根据一定的数据模型组织,存储管理,具有较小的冗余度和较高的数据独立性,易扩展性,可大量共 ...

  10. 数据库系统概论(第五版)期末复习

    第一章 简述数据,数据库,数据库管理系统,数据库系统的概念 数据:描述事物的符号记录 数据库:数据库是存储在计算机内的.可共享的.有组织的数据集合.数据库中的数据按照一定的数据模型进行组织.描述和存储 ...

最新文章

  1. CMU赵越:关于数据挖掘的分享!
  2. java 网络编程UDP
  3. vs.net2003无法打开*.xsd文件的解决方法
  4. envi导出jpg文件_保存技巧,完美解决PS导出文件过大的问题
  5. linux 文件处理命令
  6. centos iptables
  7. python图形界面教程_图形教程
  8. IDEA2020安装
  9. 数据结构 - 树(二叉树的 前序、中序、后序 遍历)
  10. oracle密码重用,关于Oracle 9i数据库密码重用规则分析
  11. C# 代码注释生成代码提示和帮助文档
  12. pe怎么删除linux文件夹,PE环境下,面对无法删除的文件夹怎么办?
  13. 2019蓝桥杯决赛Java_2019年蓝桥杯省赛总结
  14. 使用命令查看linux编码,如何利用命令查看linux 系统汉字编码
  15. STM32配合火焰传感器的火灾报警
  16. 9091端口及8998端口
  17. 日志打印利器logback的使用和配置
  18. EXCEL利用正则匹配去替换内容
  19. 2021夏魔训作业 第三天 2021-07-28
  20. java中的smm_smm框架下的JAVA玩友交流网站

热门文章

  1. 让Microsoft Office2010 新建 Microsoft Office 97-2003 文档
  2. 安装IBM Data Studio Client
  3. 《3D数学基础:图形与游戏开发 》
  4. 重负载Telnet BBS系统优化和维护经验谈
  5. 驰为hi8pro 刷win10单系统
  6. (二)UDPSocket 客户端编写(超详细)
  7. css实训内容,实训五DivCSS布局基本.doc
  8. AlphaGo Zero,造神还是开启潘多拉魔盒?【附论文下载】
  9. 单片机编程用什么软件?单片机开发软件有哪些?华维告诉你.
  10. nero linux4 序列号,nero9序列号_可以永久使用的nero9序列号