术语:
数据库:按照数据结构来组织,存储和管理的数据仓库
数据库管理系统DBMS:是一种操纵和管理数据库的大型软件,用于建立,使用和维护数据库
结构化查询语言SQL:功能包括查询,操纵,定义和控制,是一个综合的,通用的关系型数据库语言,同时又是一种高度非过程化的语言,只要求用户指出做什么而不需要指出怎么做
RDBMS(关系型数据库管理系统)术语:
表:具有固定的列数和任意的行数
数据库:是一些关联表的集合
列:一个数据项field字段
行:一条记录row
主键:主键是唯一的,一个数据表中只能包含一个主键,可以使用主键来查询数据
外键:用于关联两个表
索引:使用索引可快速访问数据库表中的特定信息,索引是对数据库表中一列或多列的值进行排序的结果,类似书籍的目录
常用数据库命令:
命令行进入数据库:mysql -u 用户名 -p
mysql -u root -p
创建数据库:create database 数据库名称;
creat database test;
删除数据库:drop database 数据库名称;
drop database test;
查看数据库:show databases;
show databases;
使用数据库:use 数据库名称;
use test;
查看数据库当中有多少张表:show tables;
show tables;
(先查看数据库,再使用数据库,再查有多少张表)
MySQL存储引擎:
数据库对象:存储,管理和使用数据的不同结构形式,如表,视图,存储过程,函数,触发器,事件等
数据库:存储数据库对象的容器
存储引擎:MySQL数据库用各种不同的技术存储在文件(或内存)中,每一种技术都使用不同的存储机制,索引技巧,锁定水平并且最终提供广泛的不同的功能和能力,通过选择不同的技术,能够获得额外的速度或者功能,从而改善你的应用的整体功能.不同的存储引擎性能是不一样的
事务:作为单个逻辑工作单元执行的一系列操作,要么全部执行,要么全部不执行.比如转账
存储引擎分类:
MYISAM:不支持事务也不支持外键,尤其是访问速度快对事务完整性没有要求或者以SELECT,INSERT为主的应用基本都可以使用这个引擎来创建表,每个MYISAM在磁盘上存储3个文件,其中文件名和表名都相同,但是扩展名分别为.frm(存储表定义), MYD(MYData,存储数据),MYI(MYIndex,存储索引)
INNODB:提供了具有提交,回滚和奔溃恢复能力的事务安全,但是对比MYSIAM的存储引擎,INNODB处理的效率差些并且会占用更多的磁盘空间以保留数据和索引
MERORY:使用存在内存中的内容来创建表,每个MERORY表实际对应一个磁盘文件,格式是.frm,MERORY类型的表访问的非常快,因为它的数据是放在内存中的,并且默认使用HASH索引,但是一旦服务器关闭,表中的数据就会丢失,但表还会继续存在
MySQL数据库分为两种:
系统数据库(数据库服务器自带的4个):
information_schema:存储数据库对象信息,如用户表信息,列信息,根除,字符,分区里面的内容我们不能动
performance_schema:存储数据库服务器性能参数信息
mysql:存储数据库用户权限信息
sys:通过这个库可以快速的了解系统的元数据信息,这个库是通过视图的形式把information_schema和performance_schema结合起来,查询出更加容易理解的数据
SQL功能分类:
DDL:数据定义语言, 用来定义数据库对象:创建库,表,列等
DML:数据操作语言,用来操作数据库表中的记录
DQL:数据查询语言,用来查询数据
DCL:数据控制语言,用来定义访问权限和安全级别
SQL数据类型:
数值类型:
字符串类型:
日期和时间类型:
常用数据类型:
double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99
char:固定长度字符串类型; char(10) 'abc '
varchar:可变长度字符串类型;varchar(10) 'abc'
text:字符串类型
blob:二进制类型
date:日期类型,格式为:yyyy-MM-dd
time:时间类型,格式为:hh:mm:ss
datetime:日期时间类型 yyyy-MM-dd hh:mm:ss