数据库基础知识总结(sql)空城守望城空

>1 数据定义功能:通过数据定义语言DDL(Data Definition Language)实现数据对象的定义

>2 数据组织、存储和管理

>3 数据操纵:通过数据操纵语言DML(Data Manipulation Language),用户可以使用DML操纵数据,实现对数据库的的增、删、改、查等基本操作

>4 数据库的事务管理和运行管理

>5 数据库的建立和维护功能

4、数据库系统:计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统、应用系统、数据库管理员组成。

5、数据模型:对现实世界数据特征的抽象,用来描述数据、组织数据和对数据进行操作的。是数据库系统的基础和核心。

按照应用目的的不同,可以将其分为两类:概念模型、第二类逻辑模型和物理模型。

概念模型,又称信息模型,按照用户的观点来对数据和信息建模,主要用于数据库设计。

概念模型中的基本概念:

实体:客观存在并可相互区别的事物称为实体

属性:实体所具有的某一特性称为属性

码:唯一标识实体的属性集称为码,例如学生实体的学号就是学生实体的码

域:一组具有数据类型的值的集合。例如学生成绩的域为整数

实体型:实体名及其属性名集合来抽象刻画同类实体,称为实体型。

实体集:同一类型实体集合称为实体集,例如全体学生

联系:分为实体内部(实体的各个属性之间的联系)的联系和实体间的联系(不同实体集之间的联系)

逻辑模型是按照计算机系统的观点对数据进行建模,主要用于DBMS的实现

主要包括层次模型、网状模型、关系模型、对象关系模型、面向对象模型。

物理模型:是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,是面对计算机系统的。

数据模型一般由数据结构、数据操作、完整性约束组成

数据结构:描述数据库的组成对象以及各对象之间的联系,是刻画数据库性质最重要的部分,是对系统的静态描述。

数据操作:对数据库中的各种对象的实例允许执行的操作的集合,包括操作及有关的操作规则,数据库主要有查询和更新(增、删、改)两大类操作,是对系统的动态描述

数据的完整性描述:给定的数据模型中的数据及其联系所具有的制约和运存规则,用以限定符合数据模型的数据模型的数据库状态以及状态的变化,以保证数据的正确,有效,相容性。

6、实体之间的联系

两个实体模型之间的联系可以分为三种:

①一对一联系

对于实体集A中的每个实体,实体集B中至多有一个(也可以没有)实体与之联系。

②一对多联系

对于实体集A中的每个实体,在实体集B中有n个实体与之联系

③多对多联系

对于实体集A中的每个实体,实体集B中有n个实体与之联系,反之,对于实体集B中的每个实体,实体集A中也有n个实体与之联系。

7、实体-联系图(E-R图)

实体型:用矩形表示,矩形框内些实体名

属性:用椭圆表示,并用无向边将其与相应的实体型连接起来

联系:用菱形表示,菱形框内写明联系名,并用无向边分别于相应的实体型连接起来同时在无向边旁标上联系的类型(一对一、一对多等)

8、关系数据模型的数据结构

关系模型中的一些术语:

关系:一个关系对应数据库中的一张二维表

元组:表中的一行即为一个元组

属性:表中的一列即为属性,列名即属性名

分量:元组中的一个属性值

9、数据库系统模式

模式:数据库中全体数据的逻辑结构和特征的描述

>9.1 数据库的三级模式结构

模式(三级模式结构中的一级,非上述的模式):也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是数据库数据在逻辑级上的视图,一个数据库只能有一个模式

外模式:又称子模式或用户模式,它是数据库用户(包括程序开发人员和最终用户)能够看见的一部分数据的逻辑结构和特征的描述,是数据库用户的数据视图,是于某一应用有关的数据的逻辑显示。

一个数据库可以有多个外模式,同一外模式可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。

内模式:也称存储模式,一个数据库只有一个内模式,他是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。

>9.2 数据库的二级影像功能与数据独立性

为了在系统内部实现着3个抽象层次的联系和转换,数据库管理系统在这三级模式之间提供了两层影像:

外模式/模式影像:定义外模式于模式之间的对应关系

模式/内模式影像 :定义数据全局逻辑结构和存储结构间的对应关系

>9.3 数据库的逻辑独立性

当模式改变时(如增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式的影像做相应的改变,可以使外模式保持不变。(应用程序是根据外模式编写的)从而使应用程序不用改变),保证数据与应用程序的逻辑独立性。

>9.4 数据库的物理独立性

当数据库的存储结构改变时,有数据库管理员对模式/内模式做相应的改变,可以使模式保持不变,从而使应用程序保持不变,保证了数据与应用程序间的独立性。

10、关系模型中的基本概念

(1)关系:D1xD2xD3……Dn的子集叫做在于D1、D2…Dn上的关系,表示为R(D1,D2,D3….Dn),其中n为关系的目或度,当n=1时,称为一元关系

(2)关系模式:关系的描述称为关系模式,可以形象的概括为?R(U,D,DOM,F)

R为关系名,U为组成该关系的属性名的集合,D为属性组U中属性所来自的域,DOM为属性向域的影像的集合,F为属性间数据的依赖关系集合。

10.1 关系的三类完整性约束

实体完整性约束:若属性(指一个或一组属性)A是基本关系R的主属性,则A不能为空

参照完整性:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中的每个元组在F上的值必须为:

注:什么叫外键?

设F是基本关系R的一个或一组属性,但不是R的码,Ks是基本关系S的主码。如果F与Ks相对应,则称F是R的外键。并称关系R为参照关系,基本关系S为被参照关系。

针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义条件。

Check约束可以和列关联,也可以和表关联,可以检查一列值相对于同一表中另一列的值,也可以检查某一列的值是否符合某个标准

Eg:

2) 唯一性约束

限制某一列的值在整张表中必须是唯一的

3)Default约束

和所有约束一样,DEFAULT约束也是表定义的一个组成部分,它定义了当插入的新行对于定义了默认约束的列未提供相应数据时该怎么办。可以定义它为一个字面值(例如,设置默认薪水为0,或者设置字符串列为"UNKNOWN"),或者某个系统值(getdate())。

对于DEFAULT约束,要了解以下几个特性:

1、默认值只在insert语句中使用-在update语句和delete语句中被忽略。

2、如果在insert语句中提供了任意值,那就不使用默认值。

3、如果没有提供值,那么总是使用默认值。

注意:如果使用默认值,则在插入数据是不能省略表名后的列名

11、关系模型中的关系操作

关系模型中常用的关系操作有查询和插入、删除、修改,关系操作的对象和结果都是集合。

12、关系模型中的关系运算

Create Schema <模式名> AUTHORZATION <用户名>

Eg: Create Schema "S-T" AUTHORZATION Test

如果没有指明模式名,则模式名默认为用户名

Drop Schema <模式名> <CASCADE>|RESTRICT>

CASCADE:级联模式,删除模式时将该模式下的所有数据库对象一起删除

RESTRICT:限制模式,只有在要删除的模式下没有任何对象属性时才能执行的删除。

在执行删除模式时,这两个必须选其一

Create table 表名(列名,数据类型 [列级完整性约束])

Eg:create table test(

Id int primary key identity(1,1),//设置表主键 identity(表示为自增主键,identity(标识种子,标识增量))

UserName nvarchar(20) not null,

foreign key CardId varchar(20) References Test(id)//设置外键,References设置外键表及外键列

2.1 修改基本表

Alter table 表名

Add <列名> <数据类型> [列级完整性约束] /*新增一列*/

注意:不管原来表中是否有数据,新增列的值均为Null

Alter column <列名> <数据类型> /*修改现有列*/

Drop <完整性约束名> /*去除约束*/

2.1 删除基本表

命令基本格式:Drop table <表名>

表的级联删除:

假设现有Student 和 Gender两张表,Student 表有外键Gender,现欲在删除Gender中的项时将Student中有之关联的项也删除

2.2 表数据更新

2.2.1 插入数据

Insert into <表名[<属性列1>…]>

values(<常量1>,<常量2>……),()……..

2.2.2 清空表数据

2.2.3 修改数据

Update <表名>

Set <属性名1> = value1,<属性名2> = value2…….

Where 更新条件

2.3 数据查询

2.3.1 选出表中的若干列

Select <列名1>,<列名2>…

From <表名>

2.3.2 查询全部列

Select * from <表名>

2.3.3 取消重复行(通过关键字distinct)

Select distinct Sno from Student

若果没有指明 distinct关键字,则默认为all,即显示全部结果

2.3.4 根据指定条件查询

Select <列名1>,<列名2>

From 表名

Where 查询条件

常用查询条件

比较 >< =、=>、!=、<>、!>(不大于)

确定范围 between and/not between and

空值判断 is null /is not null

多重条件 and/or/not

确定集合 in/not in

字符匹配(通过Like关键字实现) % :匹配任意多个字符

_: 任意单个字符

Eg: where name like '%明' 查询名字中含有'明'字的

注意:如果用户查询的字符串本身含有通配符%或_时,需要使用Escape'换码字符',对通配符进行转义

Where currency like '\_明' escape '\'

这样'\'后面的'_'将不再具有通配符的语义,而仅仅表示普通的字符

3.1 order by

Order by 列名 [ASC(升序,默认值)|DESC(降序)]

Eg :

注意:对于空值排序时不同的数据库系统可能有不同的实现

3.2 group by

Select <列名1>,<列名2>…. From <表名>

Group by <列名>

Having 聚合函数

注意:select 后面跟的列名必须出现在Group by字句或聚合函数中

聚合函数(即对排序或分组后的集合进行处理):

Count([Distinct|ALL]*) 统计元组个数

Count([Distinct|All<列名>]) 统计一列中值的个数

SUM([Distinct|ALL]<列名>) 统计一列中值的总和

AVG([Distinct|ALL] <列名>) 统计一列值的平均值

Max([Distinct|ALL])/Min([Distinct|ALL]) 求一列中的最大值/最小值

4.嵌套查询

4.1 带有In谓词的子查询

Eg :

4.2 带有比较运算符的子查询

4.3 带有any 或all谓词的子查询

Eg:找出所有学生中年龄最大的学生(年龄大于等于集合中最大的元素)

找出其它部门学生中比IS部门任何人年龄都小的学生

4.4 带有Exitsts谓词的子查询

Exitsts代表存在量词,不返回任何数据,只产生逻辑真或假

Eg:

判断Student表中是否有Tom,如果存在则将其Sdept,Sno,Sname信息显示出来

注:存在Exists的子查询,只有Exists字句返回true时,外层查询才执行

Select语句查询的结果是元组的集合,多个集合可以进行结合操作,集合的操作包括并操作(Union)、交操作(INTERSECT)、差操作(EXCEPT)

并操作 :

找出 IS部门和MA部门中所有年龄大于20岁的人员信息

交操作:

找出选修了2号和4号课的学生学号

差操作:

找出所有的女生信息

视图:视图是从一个或多个基本表(或视图)导出的表。但它与基本表不同,数据库中值存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的表中。

视图的作用:

行列子集视图:若一个视图是从单个基本表导出,并且只是去除了基本表的某些列,但保留了主码,则称这类视图为行列子集视图。

带表达式的视图:带有虚拟列(基本表中并未定义而是由其他列计算出来的列)的视图称为带表达式的视图

5.1 建立视图

Create View <视图名> [<列名1>,[列名2]。。。]//属性列名要么全指定,要么全部指定,第二种情况下,视图的属性列名由子查询中select字句中目标列中的诸字段组成

As 子查询//任意的select语句,

[with check option]//指定该语句,则对视图进行操作的行要满足视图中定义的谓词条件()即子查询中的表达式

关于 With check option的理解:

通过视图进行的修改,必须也能通过该视图看到修改后的结果。比如你insert,那么加的这条记录在刷新视图后必须可以看到;如果修改,修改完的结果也必须能通过该视图看到;如果删除,当然只能删除视图里有显示的记录。

5.2 删除视图

Drop view 视图名 [Cascade]

如果该视图上还导出了其它视图,则指明CASCADE删除,则删除该视图时,会一并删除所有导出的视图

5.3 查询视图(与表查询类似)

5.4 更新视图(与更新表类似)

并非所有的视图都是可更新的,行列子集视图一般是可更新的

索引的作用:建立索引是加快查询速度的有效手段

6.1 建立索引

Create index[Unique|CLUSER] index <索引名>

On <表名>(<列名>[次序])

Unique表示索引中的每一个索引值只对应唯一的数据记录。

Cluster 表示要建立的索引是聚簇索引。

聚簇索引:索引项的顺序与表中记录的物理顺序一致的索引组织

用户可以在经常查询的列上建立聚簇索引以提高查询效率。显然在一个基本表上最多只能建立一个聚簇索引。

注意:建立局促索引后,更新该索引列上的数据时,往往会导致表中记录的物理顺序的变更,代价较大,因此对于经常更新的列不宜创建聚簇索引

6.2 索引的删除

Drop index <索引名>//删除索引时,系统同时会从数据字典中删去该索引的描述

7.1 创建存储过程

Create proc <存储过程名> 参数名 参数类型…..

As

[begin]

<PL/SQL>//其中包括声明部分和可执行部分

[end]

Eg:MS sql server

7.2 存储过程的执行

Call/perform procdure 存储过程名(参数列表)

7.3 删除存储过程

Drop procdure <存储过程名>

8.1 变量和常量的定义

变量名 数据类型 [not null] :=初值表达式

变量名 数据类型 [not null ] 初值表达式

常量名 数据类型 [not null] :=初始化表达式

8.2 条件控制语句

语句序列(条件为真时执行)

End If

语句序列(条件为真时执行)

Else

语句序列(条件为假或null时执行)

End If

8.3 循环语句

语句序列

End Loop

语句序列

End Loop

语句序列

End Loop

Count:循环的下界bound1,检查它是否小于上界bound2,当指定Reverse时,count为循环的上界,检查它是否大于下界bound1,如果越界,则执行跳出循环,然后按照步长更新,count,重新判断条件。

THE END
0.数据库基础知识|MicrosoftLearn数据库基础知识 SQL Server 中的数据库由表的集合组成,这些表用于存储一组特定的结构化数据。表中包含行(也称为记录或元组)和列(也称为属性)的集合。表中的每一列都用于存储某种类型的信息,例如,日期、名称、金额和数字。 表上有几种类型的控制(例如约束、触发器、默认值和自定义用户数据类型),用于保证数据的jvzquC41oujo0vnetqyph}3eqo5[J6HP1NOCTJW[1oy29B944*j>r{npvgx-xFXSN071223cur~
1.sql小白入门基础知识点整理sql入门基础知识对于SQL小白来说,入门基础知识点主要包括SQL的基本概念、语法要求、数据类型、数据库操作、表操作以及数据操作等。以下是对这些知识点的详细整理: 一、SQL基本概念 SQL(Structured Query Language):结构化查询语言,是对关系型数据库的操作语言。它可以应用到所有关系型数据库中,例如MySQL、Oracle、SQL Server等。 jvzquC41dnuh0lxfp0tfv8hjgpmyw‚zcp8<78?4ctvodnn4fgvgjn|4366<:;A:2
2.SQL语言入门(非常详细)零基础入门到精通,收藏这一篇就够了3、SQL语句基础语法规范 SQL(Structured Query Language)是用于管理关系型数据库的标准语言。它的基本语法规范包括以下几个关键部分: 1. SELECT 语句:这是最基本的SQL语句,用于从数据库中选择数据。格式通常是 `SELECT column_name(s) FROM table_name WHERE condition`,其中 `column_name(s)` 是要查询的列,`tajvzquC41dnuh0lxfp0tfv87524e88?<48;90c{ykenk0fnyckny03=9597=96
3.基础篇:数据库SQL入门教程sql数据库基础篇:数据库 SQL 入门教程 目录 📚 前言 🌴 SQL 介绍 🌼 什么是 SQL 🌀 SQL 的类型 🌵 学习 SQL 的作用 🍄 数据库是什么 🐥 SQL 基础语言学习 🐤 CREATE TABLE – 创建表 🐑 INSERT – 插入数据 🐼 SELECT – 查询数据 🐫 DISTINCT – 去除重复值jvzquC41dnuh0lxfp0tfv8r2a7666?5381gsvrhng1jfvjnnu17579626;8
4.sql语句大全sql语句入门sql语句大全_sql语句入门 SQL即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。SQL语句无论是种类还是数量都是繁多的,很多语句也是经常要用到的,SQL查询语句就是一个典型的例子jvzq<84rtqjve}3reqtmkwj0eqs/ew4kvdq0yugi1uksxnwu13;188;772:727mvon
5.SQLserver从入门精通数据基础知识codekillerSQL server从入门精通--- 数据基础知识 数据库入门: 数据库的发展:人工管理阶段---文件管理阶段---数据库系统阶段 数据系统的组成: 1.数据库(数据)db 2.数据管理系统(软件)dbms 3.数据库管理人员 dba 4.硬件平台 5.软件平台 数据库的3级模式 模式 外jvzquC41yy}/ewgnqiy/exr1EqjfVjtvcq5q1=<;56:40qyon
6.《ACCESS数据库应用技术》课程教学大纲[2] 杨小丽 编.Access 2016从入门到精通(含盘).中国铁道出版社.2016。 [3][美]Michael Alexander,Dick Kusleika著,张洪波 译.中文版Access 2016宝典(第8版)中文版Access 2016宝典(第8版).北京.清华大学出版社.2016。 八、教学基本内容及要求 第一章数据库基础知识 jvzq<84leu/uwsw0gjv0ls1kplp1:6:41772@3jvo
7.SQL简介SQL 的一些常用方言包括: Transact-SQL (T-SQL)。 此版本的 SQL 由 Microsoft SQL Server 和 Azure SQL 数据库使用。 pgSQL。 这是在 PostgreSQL 中实现了扩展的方言。 PL/SQL。 这是 Oracle 使用的方言。 PL/SQL 代表过程语言/SQL。 计划专门使用单一数据库系统的用户应了解其首选 SQL 方言和平台的复杂情jvzquC41fqit0vnetqyph}3eqo5{j6hp1nkbtw4oqf{mg|4swgxz/{jncvoppjq/fczb1;2kpvxpf~hvkqt.vx2usn
8.IM开发基础知识补课(六):数据库用NoSQL还是SQL?读这篇就够了本文将分析传统数据库(即SQL数据库)存在的一些问题,以及盘点目前市面上几大类 NoSQL 特性、优缺点等,希望给大家提供一些在不同业务场景下存储技术选型方面的参考。 点评:作为专业分享即时通讯开发知识的社区来说,很多IM开发者在进行架构设计和选型的第一时间想到的,就是该如何选择数据库,MySQL?Oracle?SQL Server?或jvzquC41enuvf7ygpekov7hqo1jfxnqqrgx0c{ykenk03>664;=
9.SQL教程在本教程中,您将学到如何使用 SQL 访问和处理数据系统中的数据,这类数据库包括:Oracle, Sybase, SQL Server, DB2, Access 等等。 开始学习 SQL! 注:本教程中出现的姓名、地址等信息仅供教学,与实际情况无关。 SQL 测验 在W3School 测试你的 SQL 技能! jvzquC41yy}/y