数据库知识点总结归纳_第1页
数据库知识点总结归纳_第2页
数据库知识点总结归纳_第3页
数据库知识点总结归纳_第4页
数据库知识点总结归纳_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库知识点总结归纳

—、基本概念

1、 数据

(1) 数据的定义:对客观事物的符号表示,如图形符号、数字、字母等,数据是数据库中存储的基本对象。

(2) 数据的种类:文字、图形、图像、声音

(3) 数据的特点:数据与其语义是不可分的

2、 数据库

数据库(DataBase简称DB)是按照数据结构来组织、存储和管理数据的仓库。

3、 数据库管理系统(比如:MySql)

(1) 数据库管理系统(DatabaseManagementSystem简称DBMS)是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库。

(2) 关系型数据库管理系统称为RDBMS,R指Relation。

(3) DBMS的作用:它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。

4、 数据库系统

数据库系统(DatabaseSystem,简称DBS),是由数据库及其管理软件组成的系统。

5、 数据库管理员

数据库管理员(DatabaseAdministrator,简称DBA),负责全面管理和控制数据库系统。

6、 DBA、DBMS、DB和DBS之间的关系

DBA利用DBMS控制由DB构成的DBS

7、数据库的优点

(1) 数据按一定的数据模型组织、描述和储存

(2) 可为各种用户共享

(3) 冗余度较小,节省存储空间

(4) 易扩展,编写有关数据库应用程序

二、数据库管理系统(DBMS)

1、DBMS的主要功能

(1)数据定义功能:提供数据定义语言(DDL)

用于定义数据库的所有特性和属性,尤其是行布局、列定义、键列(有时是选键方法)、文件位置和存储策略,包括命令:

DROP(删除数据库)

删除数据库:dropdatabaseifexists数据库名

CREATE(创建数据库)

创建表:createtableifnotexists表名(列名列名约束)

ALTER(修改数据库)

添加列名:altertable表名add列名约束条件

修改列名:altertable表名change老列名新列名数据类型

修改列字段数据类型:altertable表名modity列名数据类型

删除列名:altertable表名drop列名

修改表名:altertable表名rename新表名

GRANT(赋予权限)

REVOKE(从当前用户或组中取消权限)、TRUNCATE(只删除表中的所有数据,不删除表的结构)

注意:truncatetable命令将快速删除数据表中的所有记录但保留数据表结构。这种快速删除与deletefrom数据表的输出全部数据表记录不一样,delete命令删除的数据将存储在系统回滚段中,需要的时候,数据可以回滚恢复,而truncate命令删除的数据是不可恢复的。

(2) 数据操纵功能:提供数据操纵语言(DML)

操纵数据实现对数据库的基本操作:

SELECT(查询)

selectfrom表名where条件(条件1and条件2)

INSERT(插入)

insertinto表名(列1,列2)values('',''),('',''),('','')

DELETE(删除)

deletefrom表名where条件

UPDATE(修改)

update表名set列名二'’,列名二''where条件

(3) 数据库的运行管理

a、 保证数据的安全性、完整性

b、 多用户对数据的并发使用

c、 发生故障后的系统恢复

(4) 数据库的建立和维护功能(实用程序)

a、 数据库数据批量装载

b、 数据库转储

c、 介质故障的修复

d、 数据库的重组织

e、 性能监视

数据库中的贵族)

2、DBMS的分类(大公司首选oracle

小型数据库:Access、foxbase、sqlite中型数据库:mysql、sqlserver、infomix大型数据库:Sybase、Oracle、db2

注意:Mysql、SQLserver、Oracle、DB2三者的特点

Oracle:

(1)最稳定、功能最强大、性能最好、容量无限、最昂贵、重量级,分布式数据库系统,适用于大型的项目

(2)〃关系----对象〃型数据库

MySQL:

(1) 轻量级、易安装、易管理、速度比较快,使用起来方便,适用于中小型企业

(2) 开源、免费、与PHP组成经典的LAMP组合

SQLServer:

(1) 针对不同用户群体的五个特殊的版本

(2) 易用性好

DB2:

(1)应用于大型应用系统,具有较好的可伸缩性

特点

MySQL比较小,易于安装维护和俭理,操作简单,最重要的是它是n个中唯一一个开源数据库,11[.目前也属于

Oracle公司的产品了。

对于中小型应用都可以支持,最大并发是6000,性能不错「-般PHP程序比较喜欢用MySQL,

SQLServer是微软的产品,对_net程序支持比较好,对于-般的应用来说都够用了,基本上.net阵营中很少使用SQLSe「ve「以外的数据库产品°

Oracle是Oracle的数据库产品,它体积比较庞大,可以在同一机器上运行多个实例「一般用来开发大型应用(例如分布式)

B/S浏览器服务器BrowserServer

客户不需要安装程序,只需要有浏览器引擎即可:淘宝

C/S客户端服务器ClientServer

客户需要安装程序,比如:QQ

三、MySQL的概念、特性以及不足

1、 概念

(1) 什么是MySQL

MySQL原本是一个开放源代码的关系数据库管理系统,原开发者为瑞典的MySQLAB公司,该公司于2008年被Sun公司收购。2009年,甲骨文公司Oracle收购Sun公司,MySQL成为Oracle旗下产品。

MySQL在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中。随着MySQL的不断成熟,它也逐渐用于更多规模网站和应用,比如Google和Facebook等网站。

(2) 什么是SQL

SQL是StructuredQueryLanguage(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。

2、 MySQL的特征:

(1) 性能快捷、优化SQL语言

(2) 容易使用

(3) 多线程和可靠性

(4) 多用户支持

(5) 可移植性和开发源代码

(6) 遵循国际标准和国际化支持

(7) 为多种编程语言提供API

3、 MySQL5新特性

(1)子查询

视图

存储过程

触发器

事务处理

热备份

二进制Bit类型

4、MySQL的不足

不能直接处理XML数据

一些功能上支持得不够完善和成熟

不能提供任何OLAP(实时分析系统)功能

四、MySQL的使用

1、用命令行来执行数据库(DDL数据库定义语言)

输入登录密码(连接的密码)

显示MySQL中所有的数据库

退出MySQL

使用quit、exit、\q退出MySQL

创建数据库(createdatabase数据库名)

创建数据库时,判断是否具有同名数据库再创建

创建数据库后,为数据库设置字符编码

删除数据库(dropdatabase数据库名)

使用某个数据库(user数据库名)

注意:进入到该数据库,例如你新建表的时候要先写这句话,这样保证了我的表创建在该数据库下,反之会默认放置在默认的数据库中

(7) 创建表(createtable表名(列名1数据类型, ))

创建表时,是id自动递增用auto_increment

注意:关于数据类型:char和varchar

char(20):分配20个空间,当只使用5个空间时,没用的空间会被空格填补

varchar(20):分配20个空间,当只使用5个空间时,那么空间会占用6个,其中一个保存数据长度。

因此,建议使用varchar

(8) 显示选择的数据库中所有的表

(9) 查看表里面的详细信息(desc表名)

(10) 删除表(droptable表名)

(11) 删除一个表的主键(altertable表名dropprimarykey)

(12) 往表中添加一列(altertable表名add要添加的列名数据类型)

(13) 往id列后面添加一列

(14) 增加一列,使其位于第一列

(15) 删除某一列(altertable表名drop列名)

(16) 修改表字段

a、 使用change可以修改字段名称和该字段的数据类型(altertable表名change字段名新字段名新数据类型)

b、 使用Modify只能修改数据类型(altertable表名modify字段名新数据类型)

2、Navicat进行增删改查(DML数据操纵语言)

Navicat代码注释的三种:

—注释的代码(注意空格)

#注释的代码

(1)创建一张表

盗点

挪空直,:

♦stuld

yarchar

20

0

□如

stuName

varchar

40

0

stuSex

yarebar

5

0

stuPassword

varebar

so

0

(2)往表中添加记录

TOC\o"1-5"\h\z

insertinto表名(字段1,字段2, )values(值1,值2, )

革;student@test[localhost_3306J-表

.■,test@testflocalho5t_33...x

C5

student docalhost...X

文件霍W

商口

5篇选向导

既网格辞g

E

stuld

stiiName

stuSex

stuPassword

>1

123456

2

98-5O&2

3

橱燧志

435291

4

祝横岗

&48310

TOC\o"1-5"\h\z

(3)查找表中名字为祝横岗,密码为648310的记录,并列条件使用and

信息

结果]

stuld

stuName

s-tuSex

stuPassword

4

睥岗

643310

TOC\o"1-5"\h\z

(4)修改表中的记录(update表名set列名=‘xxx’where )

结莉

将id为4的字段stuName的值改成“关雎宫”

stuld

stuName

s^tuS&x

stuPassword

E4

关障亘

64日210

信息

TOC\o"1-5"\h\z

(5)删除表中的记录(deletefrom表名where )删除编号为3的数据

信息

给果L

stuld s-tuName stuSexstuPassvxord

k1 概惠画 女 123456

2 朱元梅 女 锵50跆

4 关库巨 舅 64&310

五、MySQL数据类型

1、数据类型种类

数值型

a、 整型

可以由十进制和十六进制表示,整数由数字序列组成,如:100,0xA

b、 浮点型

浮点数由一个数字加一个小数点再加上一个数字组成,如:10.5

字符串

由单引号或者双引号括起来的字符或者数字,如:’abc10',〃abc〃

字符串中要用转义字符才能表示的特殊符号

串转义序列

序列

说明

序列

说明

\0

NUL(ASCII0)

\n

新行

\'

单引号

\r

回车

""

双引号

\t

制表符

\b

退格

\\

反斜杠

日期和时间值

存储如〃2005-1-1〃或〃12:00:00〃这样数值的值,MySQL中日期是按〃年-月-日〃的顺序

NULL值

是一种无类型的值,表示“空,什么也没有”

2、数值列类型

所有数值列类型的类型名以及其说明和所占的字节数见下表:

数值列类型

类型名

说明

类型名

说明

TINYINT

非常小的整数

BIGINT

大整数

SMALLINT

较小整数

FLOAT

单精度浮点数

MEDIUMINT

中等大小的整数

DOUBLE

双精度浮点数

INT

标准整数

DECIMAL

一个串的浮点数(多用于银行的数值)

数值列类型的存储需求

类型说明

存储需求

TINYINT[(M)]

1字节

SMALLINT[(M)]

2字节

MEDIUMINT[(M)]

3字节

INT[(M)]

4字节

BIGINT[(M)]

8字节

FLOAT[(M,D)],FLOAT(4)

4字节

DOUBLE[(M,D)],FLOAT(8)

8字节

DECIMAL(M,D)

M字节

M是从1到255的值,它表示列中值的字符数

M与D对DECIMAL(M,D)取值范围的影响

类型说明 取值范围(MySQL<3.23)取值范围(MySQL>=3.23)

DECIMAL(4,1)-9.9到99.9

-999.9到9999.9

-9999.9到99999.9

-99999.9到999999.9

-9999.99到99999.99

-999.999到9999.999

DECIMAL(5,1)-99.9到999.9

DECIMAL(6,1)-999.9到99999.9

DECIMAL(6,2)-99.99到999.99

DECIMAL(6,3)-9.999到99.999

对于每种浮点型,可指定一个最大的显示尺寸M和小数位D,M和D

对于DECIMAL是必须的

数值列的完整性约束

a、 auto_increment

自动标识列,一个表中最多能有一个此属性的列。对于想使用此属性的列应

该定义为notnull,并定义为primarykey或定义为unique键。

b、 unsigned

无符号,此属性禁用负值,将数值的范围从0开始。

c、 null和notnull

默认为null,即插入值时没有在此字段插入值时自动填null,如果指定了notnull,则必须在插入值时在此字段添入值,不允许插入null值。

d、 default

可以通过此属性来指定一个缺省值,即如果没有在此列添加值,那么默认添加default后指定值。

e、 zerofill

前导零填充数值类型值以达到列的显示宽度。

n>ysql>createtabletest2<numilinidefauIt1n<an2ini;aerofQuter^iOM,.0rowsafFettedC0.01we)

mywiql〉insertintotest2y^luEssCdefaultr3>«

OLierjiOK,1rowaffected<0.00sec>

nysql>select«fromtest2;

TOC\o"1-5"\h\z

Iminiinun2 i

#——―尊 a—, *

! 1!跚跚跚跚跄I

jfl.11垂_1 l_^J_1— J—1*

1rowinset<0.B0sec>

3、字符串列类型

所有字符串列类型及其说明和所占字节数见下表:

串列类型

类型名

说明

CHAR

定长字符串

VARCHAR

可变长字符串

TINYBLOB

非常小的BLOB(二进制大对象)

BLOB

小BLOB

MEDIUMBLOB

中等的BLOB

LONGBLOB

大BLOB

TINYTEXT

非常小的文本串

TEXT

小文本串

MEDIUMTEXT

中等文本串

LONGTEXT

大文本串

ENUM

枚举:列可赋予某个枚举成员

SET

集合:列可赋予多个集合成员

(1) CHAR和VARCHAR类型

CHAR类型和VARCHAR类型长度范围都是0~255之间的大小。他们之间的差异在于Mysql处理存储的方式:

CHAR把这个大小视为值的准确大小(如果值的长度不够长,则用空格填补比较短的值)。

VARCHAR类型把它视为最大值并且只使用了存储字符串实际上需要的字节数(增加一个额外的字节记录长度)。因而较短的值当被插入一个语句为VARCHAR类型的字段时,将不会用空格填补(然而,较长的值仍然被截短)。

(2) BLOB和TEXT类型

BLOB是二进制大对象,如果想存储二进制数,BLOB将是最佳选择,而TEXT与之相同,只是BLOB按照二进制编码排序(区分大小写),TEXT按照字符文本模式排序(不区分大小写)。

(3) ENUM和SET类型

它们是特殊的串类型,其列值必须从固定的串集中选择,二者差别为前者必须是只能选择其中的一个值,而后者可以多选。(不推荐使用)

枚举的例子:

4、日期和时间列类型

所有时间和日期列类型的类型名及其说明和所占的字节数见下表:

日期与时间列类型

类型名 说明

DATE ‘YYYY-MM-DD’格式表示的日期值

TIME 'hh:mm:ss'格式表示的时间值

DATETIME 'YYYY-MM-DDhh:mm:ss'格式

TIMESTAMP'YYYYMMDDhhmmss'格式表示的时间戳值

YEAR 'YYYY'格式的年份值

注意:(1)每个时间和日期列类型都有一个零值,当插入非法数值时就用零值来添加

表示日期时必须先按:年,月,日的顺序给出

DATE,TIME,DATETIME分别是存储日期,时间与日期和时间的组合,其格式为〃YYYY-MM-DD”,〃hh:mm:ss〃和〃YYYY-MM-DDhh:mm:ss〃,对于DATETIME类型,日期和时间部分都需要。

TIMESTAMP

时间戳列类型以YYYYMMDDhhmmss的格式来表示值,主要用于记录更改或创建某个记录。

5、常见数据类型

常用的数据类型

分类

备注和说明

数据类型说明

二进制数

存储非字符和文本的数据

BLOB

可用来存储图像

据类型

char

固定长度的非Unicode

字符数据

文本数据

字符数据包括任意字母、符号或

可变长度非Unicode数

类型

者数字字符的组合

varchar

text

存储长义本信息

日期和时间在单弓1号内输入

time

时间

日期和时

date

日期

常见的完整性约束

说明

主码约束主键)

唯一性约束

非空值约束

用于整数列默认自增1

无符号整数

默认值约束

间 datetime日期和时间

货币数据

用于财务数据 decimal定点数

类型

Bit数据类

表示是/否的数据 bit 存储布尔数据类型

int

整数

数值型数该数据仅

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论