数据库学习入门数据库基础入门.docx
《数据库学习入门数据库基础入门.docx》由会员分享,可在线阅读,更多相关《数据库学习入门数据库基础入门.docx(25页珍藏版)》请在冰点文库上搜索。
数据库学习入门数据库基础入门
数据库学习入门数据库基础入门
数据库学习入门数据库基础入门
数据库的作用:
数据是数据库中存储的基本对象
包括:
文字、图形、图像、声音
有组织的、可共享的数据集合
常用的
(、)
()
()
2()
..如何学习数据库管理系统
.程序员
1、标准语言:
(结构化查询语言)
是用于访问数据库的最常用标准化语言,他是由标准定义的
的分类
:
数据操作语言(用于检索或者修改数据)
:
数据定义语言(用于定义数据的结构,比如创建、修改或者删除数据库的对象)
:
数据控制语言(用于定义数据库用户的权限)
:
:
用于检索数据
:
用于增加数据到数据库
:
用于从数据库中修改现存的数据
:
用于从数据库中删除数据
:
创建表
修改表
删除表
创建索引
删除索引
创建视图
删除视图
:
授权
撤销授权
设置
2、不同数据库的独特管理方式
()
1、标准语言:
(结构化查询语言)
2、不同数据库的独特管理方式
3、数据库的调优
4、精通数据库的备份、回复机制
的安装与配置
安装:
选择普通安装类型
.配置
1、选择配置类型:
2、选择服务器类型:
3、选择数据库的是使用情况:
多功能数据库()
只是事务处理数据库()
只是非事务处理数据库()
4、表空间文件存储的盘符,默认在c:
\
5、数据库并发连接数配置:
6、服务器端口:
默认:
3306
7、:
是否允许严格样式检查:
取消
8、选择字符编码:
手工选择:
2312,下中文支持
9、服务器默认安装到系统服务中,默认服务自启动,选择自动配置环境变量
10、填写数据库管理系统的管理员密码
在中数据库管理员的用户名为:
11、是否允许使用用户远程登录数据库
12、测试配置是否正确c:
\>c:
\\\
的登录
.开始运行
.输入:
,然后输入密码
.或者:
密码
.退出或者\q
不必全在一个行内给出一个命令,较长命令可以输入到多个行中。
通过寻找终止分号而不是输入行的结束来决定语句在哪儿结束
->等待多行命令的下一行
'>等待下一行,等待以单引号开始的字符串结束
如果你决定不想执行正在输入过程中的一个命令,输入\c取消它
能够以大小写输入关键词,结果是等价的
基本的语句
创建数据库;
查看有哪些数据库;
删除数据库;
向数据库中存储数据
1、首先进入数据库;
类似,不需要一个分号,写也无碍
必须在一个单行上给出
2、查看数据库中的表;
3、在数据库中创建表
((20),,
(2));
4、向表中插入数据(‘张三’,18,‘男’);
5、查看表中所有的数据*;
只查看姓名和年龄,;
常用的数据类型
(M)固定长度字符
用来表示固定长度字符串,字符串的长度是1-255
(M)可变长度字符
具有灵活性的字符数据类型,范围:
1-255
处理类型的数据比类型的数据要快,有时会快50%(类型存储的数据的长度是声明变量时的固定长度,而不管数据的实际长度,存储的是按数据的实际长度,从而减小了数据文件的大小)
整数有符合的范围:
-2147483648到2147483647,无符号范围:
0到4294967295
其他常用的数据类型
日期类型,显示‘’
日期和时间的组合,显示‘'
文本和大对象
可以保存字符串的长度在255-65535字节内。
是一个能保存二进制数据的大对象,区别是不区分大小写,而区分大小写。
语句的导入
1、编写脚本()
2、导入<***
&练习:
&老师表:
&姓名,性别,年龄,课程
导出脚本>
查看表的结构
修改表中的数据条件
删除数据?
删除表中所有数据;
删除表
根据条件进行过滤查找*条件
查找出版社为“清华出版社”的所有书籍*‘清华出版社’;
查找出库存大于50的所有书籍*>50;
查找出“西游记”的库存量,‘西游记’;
运算符
>大于<小于>=大于等于<=小于等于,<>不等于
查看数据库的信息\s
常用函数
1、查看数据库版本();
计算机的时间是存在()
2、查看当前数据库的日期();
3、查看当前数据库时间();
4、查看当前连接数据库的用户();:
代表是本机
((20));
(1,''()());
和查询
(满足一个条件)
(都需要满足)
查找学生为80分或90分的学生
*8090;
查找学生为90分并且性别为女的学生
*90'女';
(x,x)返回条件中的记录与作用相似
*条件(,);
‘’‘’返回两者之间的记录
查询年龄在20-30之间的所有学生
*2030;
与通配符(%)一起使用,模糊查询
查找出姓张的学生
*‘张%’;
查询出使用163邮箱的所有学生
*‘3’;
查询出邮箱里面含有a的所有学生
*‘’;
实现排序(从小到大)
将学生的年龄从高到低排列
*;(降序)
将学生的年龄从低到高排列
*;(升序)
数据默认为升序(从低到高)
*;
为查询的列起别名
1、查询所有学生只列出姓名,年龄,性别
'姓名''年龄''性别';
对于查询出的数据结果进行分类(分组)
2、将学生按性别进行分类
*;
将学生按年龄进行分类
*;
3、子查询:
对于查询出的结果再次进行查询
查找出年龄大于20岁学生,并且在其中找出姓名等于的学生
*>20''或
*>20''
4、过滤查询的重复型记录,只显示唯一的记录
将学生性别过滤
();
查看表中有几条数据
(*);
(());
限制查询结果的输出数量同时也可以实现数据的分页
查询前三名的学生
*3;
实现查询记录的分页
*0,3;
*3,3;
约束定义了表级的强制规则、数据的完整性
非空约束()();();
会报错,会整形默认以0填充
唯一约束()不允许列中的数据重复
(());
(1);
默认约束()('111111');();
主键约束()是一个字段或一组字段(组合键),用于唯一标识表中的记录,它可以确保每个记录是唯一的。
(());
(1);
主键自增,减
(,(20),());
(1,'张安');
的特点自增值当删除某一值时,他不会自动填充,而是继续自增1
((20)());
()('');
创建一个有合理约束的表
((20)
(2)(50)(50)(50)());
()('张三',‘28’,‘男’,'163');
查询出所有学生的档案信息
*;或
*b;
查询所有学生档案信息只需显示:
学生姓名,年龄。
毕业学校,学校地址
s,;或
a,b;
外键约束()
如何创建外键
:
定义子中的列为外键
:
标记外键所要参考的父表和列
:
允许在删除父表的列的同时,删除子表的列在中支持
;
;
创建父表
((20)());
()('紫琅学院');
创建子表
((20)()()());
()('张三',1);
模型
概述:
设计数据库时,通常采用"实体关系模型“模型
软件开发流程:
需求调研(设计功能,收集数据)
与最终用户进行确定
数据库的设计
控制多余数据
那么在最后,数据库设计者确定表、不同表之间的关系以及每个表之间的关系,通常使用”模型“,它将整个系统看作彼此相关的实体组成
实体:
通常用于表示能够被清晰识别的人、地点、事物、对象、事件
实体关系图:
如果需要基于‘’模型建立数据库模型,需要标识实体,实体的属性、以及实体之间的关系。
那么通常用‘’图来表示
实体之间的三种类型:
1:
11:
N或N:
1
数据库设计员确定的实体被转换为表,而其属性则成为相应表中的字段(列)
如何控制冗余数据:
一般来说通过数据库的范式理论
设计数据库的范式来控制冗余
共有五个范式,一般达到第三范式即可
第一范式:
对于表中的每一行,必须且仅仅有唯一的行值,在一行中的每一列仅有唯一的值并且具有原子性
第二范式:
要求非主键列是主键的子集,非主键列活动必须完全依赖整个主键。
主键必须有唯一性的元素,一个主键可以由一个或更多的组成唯一值的列组成。
一旦创建,主键无法改变,外键关联一个表的主键。
主外键关联意味着一对多的关系。
第三范式:
要求非主键列互不依赖
第四范式:
禁止主键列和非主键列一对多关系不受约束
第五范式:
将表分割成尽可能小的块,为了排除在表中所有的冗余
的聚合函数
1、最大值
找出最高的学生
(());
();
2、最小值
找出最低的学生
,();
()统计查询出的记录总数
3、查询出学生的总条数
();
()求平均值
4、查询学生的平均值
();
()求和
5、查询学生的总和
();
修改字段类型
(5);
增加列
(50);
删除列
;
修改列的名称
(20);
修改表的名字
;
之表连接
内链接():
又为等值连接,因为他将两个表中的公共字段有相等的值(记录)连接起来,这是最常用的连接。
一个表引用还被称为
查询显示:
订单编号,顾客姓名,物品名称
;或
()();或
();或
());
左连接:
显示语句中左边表中的所有记录,即使在右边的表中没有满足连接条件的数据也被显示。
当满足连接条件时,右边的表中的相应的记录与左边表中的相应记录结合显示。
查询出:
学生的编号,学生姓名,学生学校
;
右连接:
与左连接相对应,他显示语句中右边表中的记录,即使在左边没有的记录也被显示。
当满足条件时。
左边表中相应记录将与右边的表中相应记录进行结合显示。
通常左连接和右连接显示的内容是一样的。
;
以左边的表查询为主
以右边的表查询为主
示例:
那么就为左表。
就为由表
之视图
视图:
它可以访问一个或多个表中的数据,是从一个或多个表中派生出的数据对象(虚表)
视图的特点:
1、将复杂的查询简单化
2、提供安全机制,它保证用户只可以看得到的数据,系统中真实的表是不可被存取的(现都支持更改数据)
创建视图:
'订单编号''顾客姓名''物品名称'();
注意点:
视图属于数据库,在默认情况下,将在当前数据库创建新视图。
要想在给定数据库中明确创建视图。
创建时,应将名称指定为
>*t;
视图必须具有唯一的列名,不得有重复,就像基表那样。
修改视图;
删除视图:
;
'编号''姓名''名称'();
数据字典
数据库的数据字典实际上是一个数据库
它记录着数据库管理系统中的其他数据库的操作
数据库字典:
*;
的事务与引擎
什么是事务()
所谓事务,它是一个操作序列。
这些操作要么都执行,要么都不执行,他是一个不可分割的工作单位
事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性
表类型:
在中有多种表的类型,但是分为两类:
事务类型:
、
非事务类型:
、、()
和存储引擎提供事务安全表。
被包含在支持它的操作系统发布的二制分发版里。
也默认被包括在所有5.1二进制分发版里
是为处理巨大数据量时的最大性能设计。
它的效率可能是任何其他基于磁盘的关系数据库引擎所有不能匹敌的。
管理非事务表。
他提供高速存储和检索,以及全文搜索能力。
数据表是最原始的数据表,有三个文件,分别是:
,存放数据表的结构定义
,数据文件,存放数据表中的各个数据行的内容
,索引文件,存放数据表的所有索引信息。
是数据表是数据表的继承者,也是三个文件,分别是:
,结构定义文件;
,数据文件;
,索引文件。
数据表用两个文件来表示,分别是;
,结构定义文件
,数据表数据和索引文件
:
由于采用表空间的概念来管理数据表,所以他只有一个与数据表对应文件,同一目录下的其他文件表示为空间,存储数据表的数据和索引
数据表是一个存在与内存中的表,所以他的数据和索引都存在于内存中,文件系统中只有一个文件,及定义结构,当关闭后数据都将消失。
定义表的的类型
();
事务表币非事务表有几大优势:
更安全。
即使崩溃或遇到硬件问题,要么自动恢复,要么从备份加事务日志恢复,你可以取回数据
你可以合并许多语句,并用语句同时接受她们全部(如果被禁止掉)
你可以执行来忽略你的改变(如果被禁止掉)
如果更新失败,你的所有改变都变回原来。
(用非事务安全表,所有发生的改变都是永久的)
事务安全存储引擎可以给那些当前用读得到许多更新的表提供更好的部署。
非事务表自身有几大优点:
非事务表自身有几大优点,因为没有事务开支,所有优点都能出现:
更快
需要更更少的磁盘空间
执行更新需要更少的内存
你可以在同一个语句中合并事务安全和非事务安全表来获得两者最好的情况。
尽管如此,在被禁止掉的事务里,变换到非事务安全表依旧即使提交并且不会被回滚
如何在中实现事务:
告知服务器我要开始一个事物
如果事务发生异常,那么数据回滚
事务执行成功,进行数据提交
>;
,0(0.00)
>11(1,'');
,1(0.00)
>*11;
|||
|1||
1(0.00)
>;
1064(42000):
;
''1
>;
,0(0.00)
>*11;
(0.00)
>;
,0(0.00)
>*11;
(0.00)
修改表类型
语句:
;
注意:
不可以将系统表比如‘’或‘’转换成类型。
系统表必须为类型
对进行事务处理锁
(,)
可以对表进行加锁控制,以保证用户并发访问时非事务表的数据一致性
释放锁
之(索引)
什么是索引?
索引被用来快速找出在一个列上用一特定值的行。
没有索引,不得不首先以第一条记录开始并然后读完整个表直到他找出相关的行,表越大,花费时间越多。
如果表对于查询的列有一个索引,能快速到达一个位置去搜寻到数据文件的中间,没有必要考虑所有数据。
索引的作用:
快速找出匹配一个子句的行
当执行连接时,从其他表检索行
对特定的索引列找出()或()值
中的索引:
索引实际上是一个分离的列表,具有一个指向全表的指针
表,索引被存储为分离文件
,索引存储为表空间的一部分
有四种类型的索引:
主键()、唯一索引()、全文索引()、普通索引()
创建
1、();
(索引名称)
(表名称)
(要创建索引的字段名称)
2、();
查看索引;
删除;
(支持)
(,1,2);
(1,2);
(1,2);
高效使用索引:
太多的索引,占用空间
每次进行插入或更新时,索引都必须针对变化
重新排序,会导致很多额外负担
何处使用索引?
1、从句中条件匹配的行
“”;
域的索引就起到了作用
分析索引
语法:
12;
分析中的索引:
:
查询中涉及的表
:
显示连接中使用了何种类型
(最好),,,,和:
可能用到的索引
:
实际使用的索引,可以在语句中使用()来强制使用索引,用()来强制忽略索引:
使用的索引长度,越短越好;
():
显示索引哪一列被使用了
:
必须检查用来返请求数据的行数
:
(需要临时表来存储结果,通常发生在对不同的列集进行),意即根本不能使用索引
索引的算法:
使用索引注意的事项;
1、合理创建索引,反之会降低数据库的查询效率,反之创建的索引会失去意义。
的备份方式:
、、冷备份、、
备份表的
示例:
>;
>'c:
\\';
只生成和,可以在数据库恢复后重建索引
>;
>'c:
\\';
备份
1、停止服务器一避免在备份的时候有用户进行数据库的访问
1、复制数据库的文件夹
用备份
备份库
1、备份
>
再打开查看(创建表备份的语句)
2、恢复
<>
备份某个表
1、备份
>
再打开文件进行查看(创建表备份的语句)
2、恢复
<>
用备份
备份:
>*'c:
\\\'
删除表:
>;
恢复:
>'c:
\\\';
作业:
1、唯一索引
2、全文索引
要求:
理解她们的意思及用途,以及实验
3、备份
其他客户端工具
查看数据库中有哪些数据库
查看数据库中有哪些表
查看数据库中表的结构
客户端可以检查和修复表,他还可以优化和分析表
1、检测
2、如碰到有问题的表自动进行修复
3、优化表
管理方式
连接方式通过本地主机,以用户访问,无需密码验证
通过本地主机,匿名用户访问,无需密码验证
设置密码
外部:
1、修改密码""
2、密码为空""
3、设置用户远程访问密码""
内部设置密码:
1、设置用户本地登录密码
''@''('000000');
2、设置用户远程登录密码
''@''('');
加密:
>
>((50)(50));
,0(0.16)
>('','123456');
,1(0.34)
>(''('123456'));
,1(0.00)
>*;,,;
|||
||123456|
||*648377432919|
2(0.00)
系统中的权限表
表:
记录允许连接到服务器的用户帐号信息,里面的权限是全局级的
表:
记录各个帐号在各个数据库上的操作权限
记录数据表级的操作权限
:
记录数据列级的操作权限
表:
配合权限表对给定主机上数据库级操作权限作更细致的控制。
这个权限表不受和语句的影响
设置密码修改表
直接修改表
>;
>('')'';
>;重新加载权限表,使修改立即生效
添加用户
>
>()('','',('222222'));
>;
授权:
*.*''@'''222222'
.*''@'''12121