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. eclipse debug模式下总是自动跳到ThreadPoolExecutor.java类

      1.情景展示 使用eclipse,debug模式运行项目时,总是会调用这个ThreadPoolExecutor.java类,明明没有打断点却自动停止运行. 2.原因分析 在eclipse中,默认是 ...

  2. django之创建第2个项目

    如上为项目结构 1.创建项目helloworld 2.把目录切换到django/helloworld目录下创建blog站点 3.需要修改的信息如下: 1)修改blog站点的views.py # Cre ...

  3. 转 php简单伪静态实例

    mod_rewrite是Apache的一个非常强大的功能,它可以实现伪静态页面.下面我详细说说它的使用方法!对初学者很有用的哦! 1.检测Apache是否支持mod_rewrite 通过php提供的p ...

  4. centos7 在docker swarm中运行Jenkins,利用gitlab的webhook触发自动部署脚本

    1.宿主机中创建目录 mkdir -p /jenkins_home 2.编辑compose文件,文件名jenkins.yml version: '3.4' services: jenkins-upgr ...

  5. WIN10-修改网卡MAC

    在注册表位置: 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002 ...

  6. TCP_Wrappers

    TCP_Wrappers配置 这里主要涉及到两个配置文件/etc/hosts.allow和/etc/hosts.deny./usr/sbin/tcpd进程会根据这两个文件判断是否对访问请求提供服务. ...

  7. Windows开发进阶之VC++中如何实现对话框的界面重绘

    技术:Windows 系统+Visual studio 2008   概述 应用程序界面是用户与应用程序之间的交互的桥梁和媒介,用户界面是应用程序中最重要的组成部分,也是最为直观的视觉体现.对用户而言 ...

  8. QQ登录整合/oauth2.0认证-01-申请appkey和appid

    本节需要你申请appkey和appid还有绑定域名的空间 首先 再讲课之前 你需要准备以下东西 到腾讯开发平台中申请 开发者 获得appid 和appkey 这两个东东 这两个东东 就算没审核 也可以 ...

  9. 抗衡Win Linux全凭这些桌面环境

    2012年01月25日 元老级桌面环境KDE     Linux操作系统最早使用在服务器上,而桌面操作系统并不是Linux的重点突围.但是,近几年Linux桌面操作系统有崛起的趋势,抢夺了部分桌面操作 ...

  10. Out of memory error : GC overhead limit exceeded

    GC overhead limit exceeded 是指垃圾回收器通过分析当前内存使用趋势,提前抛出异常而不是真正等到内存耗尽再抛出异常.如果真正等到内存耗尽再抛出异常,可能的后果是:我们连保存重要 ...