mysql管理数据库、数据表和索引

1、数据库操作
(1)查看创建数据库的帮助:
help create database
(2)创建数据库:
CREATE SCHEMA students CHARACTER SET ‘gbk’ COLLATE ‘gbk_chinese_ci’
说明:CHARACTER定义字符集,COLLATE定义排序规则,SCHEMA跟DATABASE意思一样。在mysql的students数据库目录中会生成db.opt文件,里面保存着字符集和排序规则的相关信息。

upload successful
(3)修改数据库:
针对数据库修改的就只有两项,字符集和排序规则
alter schema character set=’xxx’
alter schema collate=’xxx’
(4)删除数据库:
drop schema db_name

2、数据表操作
(1)查看创建数据表的帮助:
help create table
(2)创建数据表:(有三种方法)
方法一、直接定义一张空表:
CREATE TABLE tb1(id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,name CHAR(20),age TINYINT NOT NULL)
说明:使用AUTO_INCREMENT的字段必须使用定义为主键
类似于下面这种写法:
CREATE TABLE tb2(id INT UNSIGNED NOT NULL AUTO_INCREMENT,name CHAR(20),age TINYINT NOT NULL,PRIMARY KEY(id))
说明:PRIMARY_KEY可以单独定义,然后在括号中指明是作用在哪个字段上即可。如果是多个字段定义为键的话必须使用这种方法
方法二、从其他表中查询出数据,并以之创建新表
CREATE TABLE tb3 SELECT * FROM tb1 WHERE id <=2;
方法三、以其他表为模板创建一个空表
CREATE TABLE tb4 LIKE tb1;
(3)修改数据表:alter table
添加、删除、修改字段 说明:修改是modify、change
添加、删除、修改索引
例子:
ALTER TABLE tb1 ADD PRIMARY KEY(id) REFERENCE tb2(id);
说明:外键约束只能用于支持事务的存储引擎上,也就是InodeDB上,Myisam不支持事务,因此不支持外键的使用。外键约束可以防止误删,但是外键约束在一定程度上也会消耗系统资源
修改表引擎:
ALTER TABLE tb1 ENGINE=InnodeDB;
(4)删除数据表
DROP TABLE tb_name [RESTRICT|CASCADE];
说明:
restrict:如果想要删除父表的记录时,而在子表中有关联该父表的记录,则不允许删除父表中的记录
cascade:表示级联,会同时删除与之有外键约束关系的表

3、索引操作
(1)查看创建索引的帮助:
HELP CREATE INDEX;
(2)创建索引:
CREATE INDEX index_name ON tb_name(col_name); #用于哪张表的哪个字段
CREATE INDEX index_name ON tb_name(col_name(#num));用于哪张表的哪个字段的前num个字符上
(3)查看索引:
SHOW INDEXES FROM tb_name;
(4)删除索引:
DROP INDEX index_name ON tb_name(col_name);
说明:索引不能修改,要修改只能先删除再创建即可

备注:
1、键和索引的区别:键也称作约束,可用作索引,属于特殊索引
2、主键和唯一键的区别:
主键和唯一键都是唯一标识字段的;
每张表只能有一个主键,但是每张表可以有多个唯一键;
主键不能为空,唯一键可以为空;