Sql server 期末知识点复习

**数据库基础概念:
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


数据库基本概念

一、第一章概念知识复习

1.数据库。数据库(DB)database 是存放数据的仓库,这些数据存在一定的关联,并按照一定的格式存放在计算机内。
2.数据库管理系统:简单的来说数据库管理系统(DBMS,软件 SQL server,My Sql),数据库系统管理人员通过对DBMS对数据库进行管理。
3.数据库系统:由数据库,数据库管理系统,应用程序,数据库管理成员组成*,即 DBS=DB+DBMS+应用程序+DBA
4.数据库系统的三层模式结构:外模式,模式,内模式
模式:也称为逻辑模式,是数据库中全体数据的逻辑结构和特征的描述。
外模式:子模式/用户模式,一个数据库可以由多个外模式,数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述。
内模式:存储模式,一个数据库只有一个内模式,是数据物理结构和存储方式的描述。
是一组具有相应数据类型的值的集合(我个人理解有点像我们之前学过的编程语言的数组一样)。
候选码某一属性的值能唯一标识一个元组,其子集不能。
主码在候选码中选定一个作为主码(只允许有一个主码)。
主属性候选码的属性叫做主属性,非主属性就是不是候选码的属性,也叫非码属性。
全码:关系模式中,所有属性都是候选码,都是主属性。

二、数据库创建,数据库及数据库对象


数据库是一个容器,里面包含了许多数据库对象。
:表是存放数据及表示关系的主要形式,是最主要的数据库对象。
视图:视图由一个或多个视图和基本表生成的引用表(虚表)。视图所对应的数据不进行实际存储,是一个虚表,视图一经定义就可以像表一样被查询,修改,输出和更新。
视图的优点:
1.为用户集中数据,简化用的数据查询和处理,视图可将分散在多个表中的数据集中在一起。
2.屏蔽数据库的复杂性
3.简化用户权限的管理,只需要授予用户使用视图的权限。
4.便于数据共享
5.可以重新组织数据以便输出到其他应用程序中。
!!!!需注意的:
(1):只能在当前数据库中创建视图,视图的命名规则必须遵循标识符命名规则,不能与表同名。
(2).不能把规则,默认值,或触发器与视图相关联。

SQL功能 关键字
数据查询 select
数据定义 create,drop,alter
数据操纵 insert,update,delete
数据控制 create,remove

创建模式
要求是在一个数据库名下创建,默认模式名是 dbo。
create schema 模式名 authorization 用户名—>模式下还可以定义


删除模式
drop schema 模式名 cascade|restrict


创建表
create table 表名
(列名,数据类型,列级完整性约束,…)


修改表(添加新元素)
alter table 表名
add 新列名 数据类型 约束条件。
(add 添加的是表记完整性约束。)


drop 列名
alter column 列名 数据类型 ------>修改列属性


删除表:drop table 表名


建立索引:create unique|cluster index 索引名
unique:每一个索引值对应一个唯一的数据记录。
cluster:聚簇索引。
修改索引:alter index 旧索引名 rename to 新索引名
删除索引:drop index 索引名


创建约束(列级约束 and 表级约束)
下面根据课本上的三个表脚本创建的,sc,sno,cno。
1.列级约束创建
create table sc(
sno varchar(10) references s.test .student(sno),
constraint PK(约束名) primary key(sno)

2表级约束
create table sc(
sno varchar(10),
cno varchar(3),
grade int,

constraint PK_2 primary key(sno,cno),
constraint Fk_1 foreign key(sno) references s.test.student(sno),
constraint FK_2 foreign key(cno) references s.test.course(cno)
)


数据查询
select <all|distinct> 目标列 from 表名 distinct去重。
select * from 表明,查询全部表的全部列信息
查询满足条件的元组:用到where 子句
select * from 表名 where 查询条件
请添加图片描述
例如:查询男生学生的姓名
请添加图片描述


字符匹配:like
查询姓孙的学生信息
在这里插入图片描述

查询姓王,且名字为2位的学生的信息:
这里单引号里面,如果数据库为ASCII编码则需要俩个_,GBK编码只需要一个_。
![在这里插入图片描述](https://img-blog.csdnimg.cn/5656793c1535476ba743e939129b1d35.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAU1FuYW5hbmFuYQ==,size_20,color_FFFFFF,t_70,g_se,x_16


查询备注为空的学生信息:
在这里插入图片描述


AND表并且,OR表或者,可以用来连接多个条件。
排序:ORDER BY:按照某列属性的值对数据进行排序,默认是升序(ASC),ASC升序,DESC为降序。
按照总学分进行降序排列:
在这里插入图片描述

order by 和where 和group by 之间可以联合使用,
select * from 表名 where 条件 group by 列名 order by 列名。

在这里插入图片描述
分组:group by
将查询到的结果按照一列或者多列的值分组,值相等为一组。
查询课程号及选课人数。
在这里插入图片描述
嵌套查询:在查询中不能增加order by 语句
exists:带有exists谓词的子查询不返回任何数据,只产生逻辑真值ture和逻辑假值false
–查询所有选修了课程号10开头的学生的姓名

在这里插入图片描述


集合查询:
集合操作主要包括并操作union,交叫做intersect,差操作except


**数据更新:数据更新包括数据的插入,修改,删除
数据的插入:数据的插入通常有俩种形式,一种是插入元组,另一种是插入子查询结果。
1.insert into 表名 [插入的属性] values <插入对应属性列数值>;不写属性列默认为全部属性。
2.insert into <表名>[属性列]子查询
**
例子:将xsb中年龄大于18的插入到students表中
insert into xsb(name,age) select name,age from xsb where age>18;

数据修改:
update 表名 set<列名>=<表达式值>[where <条件>]
修改一个元组的值:
将姓名为程明的出生日期改为2000年01,01

在这里插入图片描述
例子:修改多个元组的值:将所有学生的成绩加5分
在这里插入图片描述
通过子查询进行数据的修改:
将所有男生的成绩全部置0

在这里插入图片描述
数据删除
delete from <表名> where <条件>。
删除多个元组的值
delete from <表名>删除表中的所有数据,清空表带子查询的删除语句。


视图操作:
视图:
1.可以用来简化用户的操作
2.让用户以多种角度看待同一数据
3.对重构数据库提供了一些逻辑独立性
4.能够对机密数据提供安全保护
5.更清晰的表达查询

创建视图:
create view <视图名>[<列名>] as<子查询>[with check option]
子查询可以是任意的select语句。
with check option 表示对视图进行更新操作的行满足视图定义的谓语条件(子查询的条件表达式)。

删除视图:drop view<视图名>[cascade],查询视图student((和表的操作类似)
select * from student where age>18
视图的更新和表的更新类似,增加,修改,删除,语法也相同,注:并不是所有的视图都可以更新。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码

)">
< <上一篇
下一篇>>