记得第一次看mysql基础的时候是去年暑假,差不多花了一个多月时间,边看边敲代码来记忆,但是感觉久了,许多不用的指令久忘了;现在用一个文章系列来系统性、有条理的去总结一下sql语句的基本操作,加深记忆,顺便分享给现在初学sql语句的小伙伴。如有不对的地方,请大佬们指正,感谢!
今晚总结内容为:数据库基本操作,引擎查看,表的操作、索引操作、字段修改
1、数据库基本操作
(1)创建数据库:create database db_name(数据库名);
(2)查看所创建的数据库:show databases;
(3)打开/使用数据库:use db_name; //数据库下创建表之前都要先执行的命令
(4)删除数据库:drop database db_name;//删除数据库db_name
2、查看引擎
(1) 查看数据库所支持的引擎:show engines;
(2)查看数据库默认的引擎:show variables like ‘storage_engine%’;
3、表的操作
(1)创建表常用方式:create table table_name(id int(10), dept_name varchar(255) ,primary_key (id));
(2)复制一个同样的表:create table class like depart;//不会复制表中的数据,只是将字段结构和索引复制过去
(3)复制一个同样的表:create table class as select id,dept_name from depart; 会将原表中的数据完整复制一份,但表结构中的索引会丢失。
(4)删除表:drop table class,class1;//删除表class和class1
(5)查看表:Show tables; //当前数据库中含有哪些表
(6)查看表定义:desc table_name; Show create table table_name;//查看表详细定义
(7)显示表字段:Show columns from table_name或describe table_name;//显示表列,每一行表示一个字段,包含字段名、字段类型等等
4、修改表字段
(1)增加字段(默认最后一列):alter table table_name add column class_id int(10);
(2)在第一列增加字段:alter table table_name add class_id int(10) first;
(3)指定位置增加字段:alter table table_name add field_name data_type after field_name;//field_name之后增加
(4)修改字段名字:alter table table_name change old_field_name new_field_name old_data_type;
(5)更改字段顺序:alter table table_name MODIFY field_name_1 data_type [FIRST]|[AFTER field_name_2];
(6)设置字段为非空约束:alter table table_name change old_field_name new_field_name old_data_type not NULL;
(7)给字段设置默认值:alter table table_name change old_field_name new_field_name old_data_type default default_value;
(8)删除字段:alter table table_name drop field_name;
5、索引操作
(1)创建索引:create index index_name on table_name ( field_name [(index_length)] [ASC|DESC]) ;
(2)增加索引:ALTER table table_name ADD INDEX index_name(field_name [(index_length)] [ASC|DESC]);
(3)创建唯一索引:CREATE unique INDEX index_name ON table_name ( field_name [(index_length)] [ASC|DESC]) ;
或ALTER table table_name ADD unique INDEX index_name(field_name [(index_length)] [ASC|DESC]);
(4)创建全文索引:CREATE fulltext INDEX index_name ON table_name ( field_name [(index_length)] [ASC|DESC]) ;
或ALTER tabletable_name ADD fulltext INDEX index_name(field_name [(index_length)] [ASC|DESC]);//创建全文索引
(5)创建多列索引:CREATE index index_name ON table_name ( field_name1,field_name2... ) ;//这里忽略了[ ]里面的内容
(6)删除索引:drop index idxname on table;//索引是不可更改的,想更改必须删除重新建。
(7)查看已经创建的索引:show index from table_name;
注:[ ]里面表示可选项
今天晚上先总结到这里啦,欢迎大家来吐槽!