基本概念:
数据库:一些关联表的集合。
数据表:数据的矩阵,在一个数据库中的表看起来像一个简单的电子表格。
列:即字段/数据元素,包含了相同的数据, 例如邮政编码的数据。
行:即元组/记录,是一组相关的数据,例如一条用户订阅的数据。
冗余:存储两倍数据,冗余可以使系统速度更快。
主键:主键是唯一的。一个数据表中只能包含一个主键。可以使用主键来查询数据。
外键:外键用于关联两个表。
视图:从一张或多张表中导出的表(也称虚拟表),是用户查看数据表中数据的一种方式。
存储过程:是一组为了完成特定功能的SQL语句集合(包含查询、插入、删除和更新等操作),经编译后以名称的形式存储在MySQL服务器端的数据库中,由用户通过指定存储过程的名字来执行。
系统数据库:是指安装完mysql服务器之后,会附带一些数据库:
information_schema:主要用于存储mysql服务器所有数据库信息,如数据库的名、表、访问权限、数据库表的数据类型、数据库索引信息等
mysql:是mysql的核心数据库,主要负责存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息
performance_schema:主要用于收集数据库服务器性能参数,可用于监控服务器在一个较低级别的运行过程中的资源消耗、资源等待等情况
sys:sys数据库中所有的数据源来自information_schema,目标是把information_schema的复杂度降低,让DBA能更好的阅读这个库的内容,让DBA更快的了解DB的运行情况
创建数据库:
数据库命名规则:
由任意字母、阿拉伯数字、下划线(_)和“$”组成
不能与其他数据库重名,并且在Windows系统下不区分大小写,Linux上是区分的,为了便于移植建议都用小写
名称最长可为64个字符,而别名最多可长达256个字符
不能使用MySQL关键字作为数据库名、表名:
create
begin
for
like
创建数据库:
Usage:
CREATE {DATABASE|SCHEMA} [if not exists] 数据库名 [ [default] charset [=] 字符集 [default] collate [=] 校对规则名称 ];
参数说明:
[if not exists]:创建数据库前判断是否存在同名数据库,只有不存在时才创建
charset [=] 字符集 用于指定数据库的字符集;也可以在数据库配置文件(my.ini//my.cnf)中配置,但这种方法对所有创建的数据库都生效添加:
create databases db_test charset [=] utf8;
示例:
create database if not exists db_test;
查看数据库:
Usage::
show databases [like '模式' where 条件];
参数说明:
like:指定匹配模式,可以使用模糊查询,%可以替换任何字符
where:指定查询范围条件
示例:
show databases like "db_%";
选择/切换数据库
USE 数据库名;
修改数据库:
Usage::
ALTER {DATABASE | SCHEMA} [数据库名] [DEFAULT] CHARSET [=] 字符集 | [DEFAULT] COLLATE [=] 较对规则名称
示例:
alter database db_test default charset utf8 default collate utf8_general_ci;
删除数据库:(不可恢复)
DROP DATABASE [if exists] 数据库名;