一、数据管理发展阶段
人工管理阶段→文件系统阶段→数据库系统阶段
二、数据库管理系统提供的功能
(1)数据定义语言DDL:提供数据定义语言定义数据库及各种对象,定义数据的完整性约束和保密限制等约束。
(2)数据操作语言DML:提供数据操作语言操作数据,主要分两类:检索(查询)和更新(插入,删除,更新)
(3)数据控制语言DCL:提供数据控制语言控制数据库的完整性限制,数据安全性控制等。
三、为什么使用MySQL
MySQL是由原MySQL AB公司自主研发的,目前已被Sun公司收购,是目前IT行业最流行的开源数据库管理系统,同时它也是一个支持多线程高并发多用户的关系型数据库管理系统。
(1)功能性:满足通用商业需求
(2)易用性:相对于大型的商业数据库管理系统,MYSQL对于普通用户来说,它的易用性高,安装包小,创建数据库等操作简单。
(3)性能:在权威的第三方评测机构多次测试比较各种数据库TPCC值(TPCC-MySQL是Percona公司研发的基准测试工具)的过程中,MySQL一直都有非常优异的表现,而且在其他所有商用的通用数据库管理系统中,仅仅有Oracle数据库能够与其一较高下
(4)可靠性:排在全球前10位的大型网站里面,都有部分业务是运行在MySQL数据库环境上的,如yahoo、google等。
总体来说,MySQL数据库在发展过程中一直追求三项原则:简单、高效、可靠。
四、MySQL相关命令
DOS窗口连接MySQL |
mysql –h 127.0.0.1 –u root -p |
显示所有数据库 |
show databases; |
创建数据库 |
create database kk; |
使用指定数据库 |
use kk; |
删除数据库 |
drop database kk; |
显示存储引擎列表 |
show engines; |
查看默认存储引擎 |
show variables like‘storage_engine%’ |
创建表 |
create table 表名( id int, name varchar(20), age float ); |
查看表定义 |
describe 表名 |
修改表名 |
alter table 老表名 rename 新表名 |
在表的最后一个位置增加字段 |
alter table 表名 add 字段名 字段类型定义 |
在表的第一个位置增加字段 |
alter table 表名 add 字段名 字段类型定义 first |
在表的指定字段后增加字段 |
alter table 表名 add 字段名 字段类型定义 after 指定字段 |
删除字段 |
alter table表名 drop 字段名 |
修改字段定义 |
alter table 表名 modify 字段名 字段类型定义 |
修改字段名称 |
alter table 表名 change 旧字段名 新字段名 旧字段数据类型定义 |
修改字段名称及数据类型 |
alter table 表名 change 旧字段名 新字段名 新字段数据类型定义 |
修改字段位置 |
alter table 表名 modify 字段名 数据类型 first (将字段调整到第一个位置) Alter table 表名 modify 字段名1 数据类型 after 字段名2 |
五、MySQL存储引擎和数据类型
1.1、MySQL引入了存储引擎的概念,由于存储引擎是以插件的形式被引入,所以需要根据实际应用和领域来选择相应的存储引擎;如果想创建表,需要了解数据类型,而存储引擎决定了表中可以存储的数据类型。
其中一种引擎的参数如下:
Engine: InnoDB
Support: DEFAULT
Comment: Supports transactions, row-level locking, and foreign keys
Transactions: YES
XA: YES
Savepoints: YES
(1) Engine:存储引擎名称
(2) Support:表示MySQL是否支持该存储引擎,DEFAULT表示默认使用
(3) Comment:表示关于存储引擎的简要评论
(4) Transactions:表示存储引擎是否支持事务
(5) XA:表示该存储引擎所支持的分布式存储是否符合XA规范
(6) Savepoints:表示该存储过程是否支持事务处理中的保存点
1.2、MySQL存储引擎支持的数据类型有整数类型,浮点数类型,定点数类型和位类型,日期和时间类型,字符串类型。
(1)存储小数数据,可选择float或double,需精确到小数点后10位以上的,需要选择double类型。
(2)定点数类型(参与运算的数的小数点位置固定不变)DEC(M,D)与DECIMAL(M,D)精确到比double还高,有效取值范围由M(数据总长度)和D(小数点后长度)
(3)年月日的使用一般是DATE类型,年月日时分秒是DATETIME类型。若经常插入或更新的时间为系统当前时间,一般使用TIMESTAMP类型。时分秒为Time类型。年份用YEAR。
(4)存储少量字符串可选用CHAR和VARCHAR类型,如果需要经常发生变化,选VARCHAR类型。
(5)BLOB和TEXT文本类型十分相似,不同的是前者可以存储二进制数据(图片,音频文件),而后者只能存储字符数据。
(6)BINARY和VARBINARY 与 CHAR和VARCHAR字符串类型十分相似,不同的是前者可以存储二进制数据(图片,音频文件),而后者只能存储字符数据。