“My”是因为 Monty 的女儿叫做 My,“SQL”就是 Structured Query Language(结构化查询语言),用于和数据库交互的语言。
1.数据库介绍
1.1 什么是数据库
数据库是按照一定的数据结构来组织存储和管理数据的仓库(栈,队列,链表三大数据结构)
1.2 数据库的发展史
- 早期的存储,文字,文本,管理不方便
- 现在的,database
1.3 数据库管理系统DBMS(简称数据库)
- 数据库服务器
- 是一种用于操作和管理数据的大型软件(MySQL)
- 用于建立,使用和维护数据库
- 对数据库进行统一的管理和控制,保证数据库的完整性和安全性
- 用户可以进行访问,管理员进行管理
常见的数据库(DBMS)
Oracle,DB2,mysql,sqlserver(关系型数据库)
Oracle,运行稳定,可移植性强,功能齐全,性能优越,收费,适合大厂
DB2,性能好,适合海量数据,恢复性强,收费
mysql,免费,开源,体积小,速度快
sqlserver,操作容易,效率高,不跨平台,收费,适合中小厂
结构化查询语言sql : sql语言的功能包括查询,操纵,定义和控制,是一个综合的通用的关系数据库语言。
非关系型数据库 : MongDB,Redis,Hbase
2.RDBMS术语(relationalDBMS)
2.1 表
具有固定的列数和行数
2.2数据库(DB)
关联表的集合
2.3列
一个数据项,字段
2.4行
一条记录
2.5主键
列,唯一的,一个数据表中只能包含一个主键,你可以使用主键来表示一条数据,并通过主键来进行查询
2.6外键
关联两个表,一般一个表中的外键是另一个表的主键
2.7索引
可以用来快速访问数据库表中的特定信息,是对数据库表中一列或者多列的值进行排列的一种结构,类似于书的目录
3.常用命令
3.1 启动和停止
net start mysql, net stop mysql
3.2 登录和登出
mysql -uroot -ppassword, quit/exit
3.3 查看所有数据库
show databases;(注意分号)
3.4 数据库操作
查看所有数据库:show databases;
创建数据库:create database name;
删除数据库:drop database name;
进入数据库:use name;
查看数据库中有多少数据库:show tables;
注意:先查看有哪些数据库,在选择数据库,然后在看数据库中有多少张表
3.5 数据库分类
系统自带的
information_schem
perfomance
sys
mysql
4.常用字符集
4.1 由来
计算机只能识别二进制代码,为了能识别文字信息,给每一个文字进行编码
4.2ASCII(American Standard Code for Information Interchange)码
读音:as ki
20世纪60年代,ANSI((AMERICAN NATIONAL STANDARDS INSTITUTE)发布的第一个字符集,后来演变成iso-646;
出现很多字符集(ISO-8859,GB2312-80,GBK,BIG5等),使用麻烦;
4.3 Unicode
iso成员国定制了iso-10646,发布遭美国公司反对,1988 Xerox提议同一16位编码,联合了Apple,IBM SUN Microsoft等成立了技术协会,会出了Unicode1.0,后来谈判合成了BMP;
4.4 utf-16
BMP包含了非常多的字符,但是为了包含BMP以外的字符,提出了这个
4.5 utf-8
动态转换1-4个字节,兼容了ASCII Unicode等
4.6 汉字常用
GBK GB13000 GB18030
5.存储引擎
5.1 数据库对象
村塾管理和使用数据的不同结构形式:表,事件,函数,触发器,存储过程,视图
5.2 数据库
存储数据库对象的容器
5.3 什么是存储引擎
采用不同的引擎,性能是不一样的
mysql中的数据采用各种不同的技术存储
5.4 分类
MYISAM(misam):不支持事物,不支持外键,但是访问速度快,如果对事物没有很大的需求可以使用这个;
INNODB(默认使用):支持事物处理,具有提交和回滚和崩溃回复的事物安全,但是相对较慢,写的处理效率较低,并且会占用更多的磁盘空间来保留数据和索引
MEMRY:访问速度快,使用内存中的内容来创建表,格式.fm。服务器关闭,数据丢失,表还在(存储在内存中)
5.5 事物
指作为单个逻辑单元执行的一列操作,要么完全执行,要么都不执行