MySQL 5.6学习笔记(数据表基本操作)

1. 创建数据表

1.1 最基本的语法

CREATE TABLE tbl_name

    (col_name column_definition,...)

    [table_options]

-column_definition

详解:

column_definition:

    data_type [NOT NULL | NULL] [DEFAULT default_value]

      [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY]

      [COMMENT 'string']

      [COLUMN_FORMAT {FIXED|DYNAMIC|DEFAULT}]

      [STORAGE {DISK|MEMORY|DEFAULT}]

      [reference_definition]

-table_options

table_options: table_option [table_option] ...

详解:

MySQL 5.6学习笔记(数据表基本操作)
table_option:

    ENGINE [=] engine_name

  | AUTO_INCREMENT [=] value

  | AVG_ROW_LENGTH [=] value

  | [DEFAULT] CHARACTER SET [=] charset_name

  | CHECKSUM [=] {0 | 1}

  | [DEFAULT] COLLATE [=] collation_name

  | COMMENT [=] 'string'

  | CONNECTION [=] 'connect_string'

  | DATA DIRECTORY [=] 'absolute path to directory'

  | DELAY_KEY_WRITE [=] {0 | 1}

  | INDEX DIRECTORY [=] 'absolute path to directory'

  | INSERT_METHOD [=] { NO | FIRST | LAST }

  | KEY_BLOCK_SIZE [=] value

  | MAX_ROWS [=] value

  | MIN_ROWS [=] value

  | PACK_KEYS [=] {0 | 1 | DEFAULT}

  | PASSWORD [=] 'string'

  | ROW_FORMAT [=] {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}

  | STATS_AUTO_RECALC [=] {DEFAULT|0|1}

  | STATS_PERSISTENT [=] {DEFAULT|0|1}

  | TABLESPACE tablespace_name [STORAGE {DISK|MEMORY|DEFAULT}]

  | UNION [=] (tbl_name[,tbl_name]...)
View Code

更多语法详细信息,参考:http://dev.mysql.com/doc/refman/5.6/en/create-table.html

1.2 实例

创建基本表:

create table tb_temp1

(

  id int(11),

  name varchar(25)

);

创建带主键的表(两种方法):

create table tb_temp2

(

  id int(11) primary key,

  name varchar(25)

);



create table tb_temp3

(

  id int(11),

  name varchar(25),

  primary key(id)

);

支持联合主键(同时命名约束名):

create table tb_temp4

(

  id int(11),

  sub_id int(4),

  name varchar(25),

  constraint PK_TEMP4 primary key(id,sub_id)

);

创建带外键的表(注意:外键不能跨存储引擎使用):

create table tb_temp5

(

  id int(11) primary key,

  yourdesc varchar(25),

  constraint FK_TEMP5_ID foreign key(id) references tb_temp2(id)

);

非空约束(略)

唯一性约束(略)

默认约束(略)

创建主键自动增加的表:

create table tb_temp8

(

  id int(11) primary key auto_increment,

  name varchar(25)

);

2. 查看数据表结构

查看表基本结构:

desc tablename

查看表详细结构:

show create table tablename\G

示范:

mysql> show create table tb_temp2\G

*************************** 1. row ***************************

       Table: tb_temp2

Create Table: CREATE TABLE `tb_temp2` (

  `id` int(11) NOT NULL,

  `name` varchar(25) DEFAULT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8

1 row in set (0.00 sec)

3. 修改数据表

3.1 修改表名

alter table <旧表名> rename to <新表名>;

3.2 修改字段的数据类型

alter table <表名> modify <字段名> <数据类型>;

3.3 修改字段名

alter table <表名> change <旧字段名> <新字段名> <新数据类型>;

3.4 添加字段

alter table <表名> add <新字段名> <数据类型>

    [约束条件] [first | after 已存在的字段名];

“first或after已存在字段名”用于指定新增字段在表中的位置,默认加到最后。

示范:

alter table tb_temp4 add manageid int(10);
alter table tb_temp4 add f_id int(4) not null first;

3.5 删除字段

alter table <表名> drop <字段名>;

3.6 修改字段的排列位置

alter table <表名> modify <字段1> <数据类型> first|after <字段2>;

示范:

alter table tb_temp4 modify name varchar(25) after f_id;

3.7 更改表的存储引擎

alter table <表名> engine=<更改后的存储引擎名>;

3.8 增加表的外键约束

ALTER TABLE yourtablename

    ADD [CONSTRAINT 外键名] FOREIGN KEY [id] (index_col_name, ...)

    REFERENCES tbl_name (index_col_name, ...)

    [ON DELETE {CASCADE | SET NULL | NO ACTION | RESTRICT}]

    [ON UPDATE {CASCADE | SET NULL | NO ACTION | RESTRICT}];

示范:

alter table bbscomment add constraint FK_COMMENT_ID foreign key(detail_id) references bbsdetail(detail_id) on delete cascade;

3.9 删除表的外键约束

alter table <表名> drop foreign key <外键约束名>;

4. 删除数据表

语法:

drop table [if exists] 表1,表2,...表n;

如果表存在外键(被其它表引用),则需要先删除约束关系,参考3.8节。

示范:

drop table if exists tb_temp1;

 

你可能感兴趣的:(mysql)