创建库
create database 库名(charset utf8 对库的编码进行设置,不写就用默认值)
库名可以由字母、数字、下划线、特殊字符,要区分大小写,唯一性,不能使用关键字,不能用数字开头,最长128位
查看数据库
注意:在cmd中输入指令是不区分大小写的
show databases; #这查看的是所有的库
show create database db1; #这是查看指定的库
select database(); #这是查看当前的库
选择数据库
USE 数据库名 #相当于在电脑上双击文件夹,进入文件夹
删除数据库
DROP DATABASE 数据库名;
修改数据库
alter database db1 charset utf8; #只能修改库的编码格式
二、表操作
1,存储引擎
存储引擎就是表的类型,MySQL中根据不同的存储引擎会有不同的处理机制,存储引擎的概念是MySQL里面才有的。
1.1,MySQL的一个整个工作流程
1.2,存储引擎的分类
在cmd中输入show engines可以查看所有的引擎,输入show variables like 'storage_engine%'可以查看当前使用的引擎。
MyISAM引擎特点:
1.不支持事务
事务是指逻辑上的一组操作,组成这组操作的各个单元,要么全成功要么全失败。
2.表级锁定
数据更新时锁定整个表:其锁定机制是表级锁定,也就是对表中的一个数据进行操作都会将这个表锁定,其他人不能操作这个表,这虽然可以让锁定的实现成本很小但是也同时大大降低了其并发性能。
3.读写互相阻塞
不仅会在写入的时候阻塞读取,MyISAM还会再读取的时候阻塞写入,但读本身并不会阻塞另外的读。
4.只会缓存索引
MyISAM可以通过key_buffer_size的值来提高缓存索引,以大大提高访问性能减少磁盘IO,但是这个缓存区只会缓存索引,而不会缓存数据。
5.读取速度较快
占用资源相对较少
6.不支持外键约束,但只是全文索引
7.MyISAM引擎是MySQL5.5版本之前的默认引擎,是对最初的ISAM引擎优化的产物。
单一对数据库的操作可以使用MyISAM,就是尽量纯度、纯写
InnoDB引擎
介绍:InnoDB引擎是MySQL数据库的另一个重要的存储引擎,正称为目前MySQL AB所发行新版的标准,被包含在所有二进制安装包里。和其他的存储引擎相比,InnoDB引擎的优点是支持兼容ACID的事务(类似于PostGreSQL),以及参数完整性(即对外键的支持)。Oracle公司与2005年10月收购了Innobase。Innobase采用双认证授权。它使用GNU发行,也允许其他想将InnoDB结合到商业软件的团体获得授权。
InnoDB引擎特点:
1.支持事务:支持4个事务隔离界别,支持多版本读。
2.行级锁定(更新时一般是锁定当前行):通过索引实现,全表扫描仍然会是表锁,注意间隙锁的影响。
3.读写阻塞与事务隔离级别相关(有多个级别,这就不介绍啦~)。
4.具体非常高效的缓存特性:能缓存索引,也能缓存数据。
5.整个表和主键与Cluster方式存储,组成一颗平衡树。(了解)
6.所有SecondaryIndex都会保存主键信息。(了解)
7.支持分区,表空间,类似oracle数据库。
8.支持外键约束,不支持全文索引(5.5之前),以后的都支持了。
9.和MyISAM引擎比较,InnoDB对硬件资源要求还是比较高的。
小结:三个重要功能:Supports transactions,row-level locking,and foreign keys
Memory引擎:把数据放在内存中
BLACKHOLE引擎:黑洞引擎,数据放进去就消失
1.3,存储引擎的使用
create table 表名(id int)engine=InnoDB 在创建表的时候可以指定引擎
2,创建表