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] ...

详解:

table_option:
ENGINE [=] engine_name
| AUTO_INCREMENT [=] value
| AVG_ROW_LENGTH [=] value
| [DEFAULT] CHARACTER SET [=] charset_name
| CHECKSUM [=] { | }
| [DEFAULT] COLLATE [=] collation_name
| COMMENT [=] 'string'
| CONNECTION [=] 'connect_string'
| DATA DIRECTORY [=] 'absolute path to directory'
| DELAY_KEY_WRITE [=] { | }
| INDEX DIRECTORY [=] 'absolute path to directory'
| INSERT_METHOD [=] { NO | FIRST | LAST }
| KEY_BLOCK_SIZE [=] value
| MAX_ROWS [=] value
| MIN_ROWS [=] value
| PACK_KEYS [=] { | | DEFAULT}
| PASSWORD [=] 'string'
| ROW_FORMAT [=] {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}
| STATS_AUTO_RECALC [=] {DEFAULT||}
| STATS_PERSISTENT [=] {DEFAULT||}
| TABLESPACE tablespace_name [STORAGE {DISK|MEMORY|DEFAULT}]
| UNION [=] (tbl_name[,tbl_name]...)

更多语法详细信息,参考: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 5.6学习笔记(数据表基本操作)的更多相关文章

  1. MySQL学习笔记 -- 数据表的基本操作

    数据库是一个可以存放数据库对象的容器,数据库对象包括:表.视图.存储过程.函数.触发器.事件.其中,表是数据库最基本的元素,是其他数据库对象的前提条件. 表中的一列称为一个字段,一行称为一条记录. 1 ...

  2. MySQL 5.6学习笔记(数据库基本操作,查看和修改表的存储引擎)

    1. 数据库基本操作 1.1  查看数据库 查看数据库列表: mysql> show databases; +--------------------+ | Database | +------ ...

  3. MySQL:数据表基本操作

    数据表基本操作 注意点: 1.数据表中已经有数据时,轻易修改数据类型,有可能因为不同的数据类型的数据在机器 中存储的方式及长度并不相同,修改数据类型可能会影响到数据表中已有的数据类型. 2.  数据表 ...

  4. MYSQL视图的学习笔记

    MYSQL视图的学习笔记,学至Tarena金牌讲师,金色晨曦科技公司技术总监沙利穆 课程笔记的综合. 视图及图形化工具   1.       视图的定义 视图就是从一个或多个表中,导出来的表,是一个虚 ...

  5. mySQl数据库的学习笔记

    mySQl数据库的学习笔记... ------------------ Dos命令--先在记事本中写.然后再粘贴到Dos中去 -------------------------------- mySQ ...

  6. Mysql数据库基础学习笔记

    Mysql数据库基础学习笔记 1.mysql查看当前登录的账户名以及数据库 一.单表查询 1.创建数据库yuzly,创建表fruits 创建表 ) ) ,) NOT NULL,PRIMARY KEY( ...

  7. MYSQL中约束及修改数据表

    MYSQL中约束及修改数据表 28:约束约束保证数据的完整性和一致性约束分为表级约束和列级约束约束类型包括:    NOT NULL(非空约束)    PRIMARY KEY(主键约束)    UNI ...

  8. mysql存储过程之游标遍历数据表

    原文:mysql存储过程之游标遍历数据表 今天写一个mysql存储过程,根据自己的需求要遍历一个数据表,因为对存储过程用的不多,语法不甚熟悉,加之存储过程没有调试环境,花了不少时间才慢慢弄好,故留个痕 ...

  9. C# 利用mysql.data 在mysql中创建数据库及数据表

    C# 利用mysql.data 在mysql中创建数据库及数据表 using System; using System.Collections.Generic; using System.Linq; ...

  10. mysql 导入导出数据库、数据表的方法

    mysql 导入导出数据库.数据表的方法. Linux操作系统中,均在控制台下操作.1,导入数据库:前提:数据库和数据表要存在(已经被创建)(1)将数据表 test_user.sql 导入到test ...

随机推荐

  1. Linux文件系统操作

    1:查看磁盘使用情况 df [-选项] 目录名 2:查看目录下文件大小 du 目录名称 3:实体链接 创建inode产生一个新文件名,链接到一个已有的文件. 限制:不能垮文件系统进行实体链接:不能链接 ...

  2. 【转发】Linq To EF添加记录后获取添加的自增ID和叫“ID”的列不是自增列不让插入的问题

    1:添加记录后,如何获取新添加的ID的值 比如,一个实体 TestEntity   对应一个表TestEntity(ID主键自增,Name,age),使用linq to ef   添加一条记录后,如何 ...

  3. VTK中的装配体(vtkAssembly)

    Actors有时也会组合在一起形成层次结构,当其中的某个Actor运动时,会影响到其他Actor的位置.例如,一个机械手臂可能由上臂.前臂.手腕和末端等部分通过关节连接起来.当上臂绕着肩关节旋转时,我 ...

  4. Easyui入门视频教程 第07集---Accordion的使用

    Accordion 是一个 收缩的组件 类似挂历的 百度了一下 意思是 accordion 英[əˈkɔ:diən] 美[əˈkɔrdiən] n. 手风琴 adj. 可折叠的 他就是 一个折叠的 很 ...

  5. java mongodb 基础系列---查询,排序,limit,$in,$or,输出为list,创建索引,$ne 非操作

    官方api教程:http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-java-driver/#getting-started ...

  6. iOS 对 HTTPS 证书链的验证

    HTTPS从最终的数据解析的角度,与HTTP相同.HTTPS将HTTP协议数据包放到SSL/TSL层加密后,在TCP/IP层组成IP数据报去传输,以此保证传输数据的安全:而对于接收端,在SSL/TSL ...

  7. Nginx 和 PHP 的两种部署方式比较

    2种部署方式简介 第一种 前置1台nginx服务器做HTTP反向代理和负载均衡 后面多态服务器部署Nginx Web服务和php-fpm提供的fast cgi服务 第二种 前置1台nginx服务器做W ...

  8. C语言学习笔记 (001) - 常量指针与指针常量的区别(转帖)

    三个名词虽然非常绕嘴,不过说的非常准确.用中国话的语义分析就可以很方便地把三个概念区分开. 一) 常量指针. 常量是形容词,指针是名词,以指针为中心的一个偏正结构短语.这样看,常量指针本质是指针,常量 ...

  9. 微信多客服插件获取openid

    <!doctype html> <html> <head> <meta http-equiv="Content-Type" content ...

  10. sqlyog v12.09 注册码

    1.小巧的自动完成.2.HTTP/HTTPS和SSH通道.3.向导化的汇入工具包.4.结构化的同步,可以设定任务计划,按照特定的时间进行同步作业,并对同步数据进行校验.5.工作管理器.计划备份.以及通 ...