库操作
1.系统数据库
- information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、字符信息等
- performance_schema: MySQL 5.5开始新增一个数据库:主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件、锁等现象
- mysql: 授权库,主要存储系统用户的权限信息
- test: MySQL数据库系统自动创建的测试数据库
2.创建数据库
- 语法(help create database)
CREATE DATABASE 数据库名 charset utf8;
- 数据库命名规则:
可以由字母、数字、下划线、@、#、$
区分大小写
唯一性
不能使用关键字如 create select
不能单独使用数字
最长128位
3.数据库相关操作
查看数据
show databases;
show create database db1;
select database();
选择数据库
- USE 数据库名
删除数据库
- DROP DATABASE 数据库名;
修改数据库
alter database db1 charset utf8;
表操作
1.什么是存储引擎:
存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。
因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型)
- mysql中建立的库===>文件夹
- 库中建立的表===>文件
- 存储引擎:表的类型 (表就是文件) 有不同的文件类型 .mp4 .txt
2.mysql支持得存储引擎:
show engines; #查看所有支持的存储引擎
show variables like 'storage_engine%'; #查看正在使用的存储引擎
1、InnoDB 存储引擎
- 支持事务,其设计目标主要面向联机事务处理(OLTP)的应用。
2、MyISAM 存储引擎
- 不支持事务、表锁设计、支持全文索引,主要面向一些 OLAP 数 据库应用。
- 在 MySQL 5.5.8 版本之前默认的存储引擎(除 Windows 版本外)。
3、NDB 存储引擎
- NDB 存储引擎是一个集群存储引擎,类似于 Oracle 的 RAC 集群。
4、Memory 存储引擎
- Memory 存储引擎中的数据都存放在内存中,数据库重 启或发生崩溃,表中的数据都将消失。
5、Infobright 存储引擎
- 第三方的存储引擎。其特点是存储是按照列而非行的,因此非常 适合 OLAP 的数据库应用。
- 其官方网站是 http://www.infobright.org/,上面有不少成功的数据 仓库案例可供分析。
6、NTSE 存储引擎
- 网易公司开发的面向其内部使用的存储引擎。
7、BLACKHOLE
- 黑洞存储引擎,可以应用于主备复制中的分发主库。
使用储存引擎
1.建表时指定
- create table t1(id int,name char);
- create table t2(id int,name char)engine=innodb;
- create table t3(id int,name char(6))engine=memory;
2.在配置文件中设置默认引擎
/mysql56/my.ini [mysqld] default-storage-engine=INNODB innodb_file_per_table=1
3.查看
4.练习
创建四个表,分别使用innodb,myisam,memory,blackhole存储引擎,进行插入数据测试
mysql> create table t1(id int)engine=innodb; #由表结构,和表数据 t1.frm t1.idb
mysql> create table t2(id int)engine=myisam; #有表结构,myisam的data文件,myisam的索引文件 t2.frm t2.MYD t2.MYI
mysql> create table t3(id int)engine=memory; #只有表结构,表数据存在内存中 t3.frm
mysql> create table t4(id int)engine=blackhole; #只有表结构,数据丢进去就没了 t4.frm