一.数据库
1.数据库介绍
2.RDBMS专业术语
3.MySQL数据库
4.常用数据库命令
1.数据库介绍
:什么是数据库
数据库就是按照数据结构来组织、存储和管理数据的仓库.
我们常常讲的数据库往往都是指数据库管理系统。
:数据库发展史
最早的数据库:通过大量的分类、比较和表格绘制的机器运行数百万穿孔卡片来进行数据的处理,其运行结果在纸上打印出来或者制成新的穿孔卡片。而数据管理就是对所有这些穿孔卡片进行物理的存储和处理
当时随着计算机开始广泛应用于数据管理,(数据与数据关系越来越多),对数据的共享提出了越来越高的要求。传统的文件系统已经不能满足人们的需要。能够统一管理和共享数据的数据库管理系统(DBMS)应运而生。
:数据库管理系统DBMS
它是一种操纵和管理数据库的大型软件,用于建立,使用和维护数据库,简称DBMS。它对数据进行统一的管理和控制,以保证数据库的安全性和完整性。
用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。
数据库管理系统是数据库系统的核心,是管理数据库的软件。
我们一般说的数据库,就是指DBMS:数据库服务器
:常见的数据库(DBMS)
Oracle:甲骨文,运行稳定,可移植性高,功能齐全,性能超群!适用于大型企业领域,收费的价格昂贵。
DB2:速度快,可靠性高,适用于海量数据,恢复性极强(数据丢失等恢复)。适用于大中型企业领域,收费的。
SQL Server:全面,效率高,界面友好,操作容易,但是不跨平台(只能windows系统)。使用于中小型企业领域,收费的。
Mysql:开源免费,体积小,速度快。适用于中小型企业。
:结构化查询语句SQL(对DBMS数据存取操纵)
SQL语言的功能包含查询,操纵,定义和控制,是一个综合的,通用的关系型数据库语言
:非关系型数据库NOSQL(not only sql)
MangoDB,Redis,Hbase...Neo4j
2.RDBMS专业术语(关系型DBMS)
表,数据库,列,行,主键,外键,索引。
表:具有固定的列数和任意的行数
数据库(实例):数据库是一些关联表的集合。
列:一个数据项Field 字段 如姓名或年龄
行:一条记录 row。(一行对应java中的一个类,一个字段对应类中的字段)
主键:主键是惟一的(不重复的)。一个数据表只能含一个主键(如身份证号码,不能重复)。 你可以使用主键来查询数据。
外键:外键用于关联两个表。
索引:使用索引为了可快速访问数据库表中的特定信息。
索引是对数据库表中的一列或多列的值进行排序的一种结构。类似于书籍的目录。
3.MySQL数据库
Mysql介绍:
Mysql是一个关系型数据库管理系统,由瑞典MYSQL AB公司开发,目前属于Oracle公司。Mysql是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度和提高了灵活性。
Mysql是开源免费的,所以你不需要支付额外的费用。
Mysql 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
Mysql 使用标准的SQL数据语言形式(通用语言)。
Mysql可以允许 于多个系统上,并且支持多种语言。这些编程语言包括c,C++,python,Java,Perl,Ruby,Eiffel和Tcl等
Mysql安装:
Windows系统,mac系统,linux系统等
Win为例:
点击文件.msi进行安装,下一步现在custom自定义安装,
下一步点击选择mysql server点开这个选项到底,选择mysql版本及相应位数的X64位,下一步,,在工作类型和网络选择默认standalone就可以,点击下一步配置类型,选择默认开发者就可以了,端口号可以修改需要记住,再下一步设置root账号密码,需要记住,可以添加账户。再下一步,,,点击finish,再点击下一步,再finish就可以了。
检测成功:进入安装bin目录下命令行模式,mysql -u root -p 输入密码成功后,就代表成功了。
Mysql的存储引擎:
4常用数据库命令
Mysql数据库分为两种:
系统数据库(数据库服务器自带的,自带的4个):
Information_schema:存储数据库对象信息,如用户表信息,列信息,根除,字符,分区。里面内容我们不能动。
Performance_schema:存储数据库服务器性能参数信息。
Mysql:存储数据库用户 权限信息(哪些用户访问哪些数据库)
Sys:从5.7才有,通过这个库可以快速了解系统的元数据信息。这个库是通过视图的形式把information_schema,performance_schema结合起来,查询出更加令人容易理解的数据。
用户数据库:
可以自己创建的。
创建数据库:
Create database 数据库名;
删除数据库:
Drop database 数据库名;
查看数据库:
Show databases;
使用数据库:
Use 数据库名;
查看数据库中有多张表:
Show tables;
注意写的顺序先使用数据库,再去该具体数据库查看有多少张表。
5.SQL语言
使用Navicat图形化界面工具基本使用:
1创建数据库:右键创建数据库,设置数据名,设置字符集;设置collation(属于校对规则,字符集比较与排序等比如是不是区分大小写);
字符集:
字符集由来:计算机只能识别二进制代码无论是计算机程序还是数据,最终都会转换成二进制,计算机才能认识。
为了计算机不只是能做科学计算,也能处理文字信息。
人们想出了给每一个文字符号编码便于计算机识别处理的办法,这就是字符集的由来。
ASSCII:一套文字符号及其编码,比较规则的集合。最早的。20世纪60年代初。美国标准化组织ANSI发布了第一个字符集。ASSCI后来又进一步变成了国际标准ISO-646。
各大字符集:
自ASSCII后,为了处理不同的文字。各大计算机公司,各国,标准化*,组织先后发明了几百种字符集。(ISO-8859,GB2312-80,GBK,BIG5)
五花八门的字符集编码规则各不相同。给计算机开发和移植带来很大困难。一个软件在不同国家和地区发布,没法使用,必须要做到本地化开发。基于这个原因,要统一字符集。
Unicode:国际化标准ISO在1984年发布ISO-10646。遭到美国公司反对,占得位数多。1988美国公司联合制定了新标准于1991年推出了unicode1.0。
为了统一字符集,ISO和unicode后来谈判,1991年10月达成协议。ISO将unicode收编,起了名BMP。
UTF-16:ISO-10646足以容纳从古至今的使用过的文字和字符。但很多文字很少使用了,超过百分之99 的在用文字字符都编入了BMP。因此,大部分情况下,unicode双字节方式都能满足需求,而且比双字节编码方式4字节的原始编码来说,更省内存和处理时间,这就是unicode流行的原因。
使用了BMP以后的文字字符怎么办?unicode提出了UTF-16的解决办法。
UTF-8:最终解决方案(所有字符)。虽然utf-16解决了上面以后文字的问题,但当时计算机和网络世界还是ASSCII码的天下,只能处理单字节数据流。Utf-16离开了unicode环境,在传输和处理,都存在问题。于是提出了UTF-8解决方案。
Utf-8按一定的规则将一个ISO10646和unicode转换成1至4字节的编码
其中ASSCII码转换成单字节编码,也就兼容了ASSCII字符集。UTF-8
的2,3,4字节用于转换ISO-10646标准的ucs-4原始码。。
Utf-8-utf-8Unicode 通用的。
汉字的一些常见字符集:
GB2312(国标),GB13000,GBK,GB18030
Mysql存储引擎(理解):
数据库对象:存储、管理和使用数据的不同结构形式,如表,视图,存储过程,函数,触发器,事务等。
数据库:存储数据库对象的容器。
什么是存储引擎:
采用不同的引擎存储性能是不同的(安装时选择)。
Mysql中数据用各种不同的技术存储在文件(或内存)中。
每一种技术使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的而不同的功能和能力。
通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。
不同的存储引擎性能是不一样的。
什么是事务(功能):
是指作为单个逻辑工作单元执行的一系列操作,要么完全执行,要么完全不执行。如转账(账号扣,对方账号加),分几步,每一步失败都不能成功。
存储引擎分类:(注意MYISAM与Innodb区别)
MYISAM:它不支持事务,也不支持外键,尤其访问速度快,对事务完整性没有要求或select,insert为主的应用基本都可以使用
每个MYISAM在磁盘上存储成3个文件,其中文件名和表名都相同,但是扩展名分别为:.frm(存储表定义),.MYD(MYDATA,存储数据),.MYI(MYINDEX,存储索引)
INNODB(5.5以后默认):InnoDB存储引擎提供了具有提交,回滚和崩溃恢复能力的事务安全(要求会越来越高)。但是对比MYISAM的存储引擎,InnoDB写的处理效率差一些和使用更多的磁盘空间用以保留数据和索引。
MEMORY:memory使用存在内存中来创建表。每个memory表实际对应一个磁盘文件,格式是.frm
Memory类型的表访问速度最快,因为它的数据是放在内存中,并且默认使用hash索引,但是一旦服务器关闭,表中数据会全部丢失,但表还会存在。