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. Android为ViewPager添加切换动画——自己定义ViewPager

    转载请注明出处:http://blog.csdn.net/allen315410/article/details/44224517 在上篇博客中,我写了一个使用属性动画为ViewPager加入切换动画 ...

  2. java sm3加密算法

      java sm3加密算法实现 CreationTime--2018年7月13日09点28分 Author:Marydon 1.准备工作 所需jar包: bcprov-jdk15on-1.59.ja ...

  3. Software development --daily scrum team

    History[edit] Scrum was first defined as "a flexible, holistic product development strategy whe ...

  4. mysql从时间字符串中取出日期数据

    addtime='2016-09-03 18:12:44' substr(addtime,1,10)  as 创建日期 SUBSTR(string, string charcter, number o ...

  5. pycharm安装提示 module 'pip' has no attribute 'main'

    问题描述: 环境: windows10 pycharm2016.2.3  //在最先版本的pycharm就没问题,可能还需要升级pip版本 python3.6 pip安装模块,提示 Attribute ...

  6. Android 控件进阶修炼-仿360手机卫士波浪球进度控件

    技术:Android+java   概述 像360卫士的波浪球进度的效果,一般最常用的方法就是 画线的方式,先绘sin线或贝塞尔曲线,然后从左到右绘制竖线,然后再裁剪圆区域. 今天我这用图片bitma ...

  7. Android游戏开发基本知识

    Android游戏开发 手机游戏被业内人士称为继短信之后的又一座金矿.Android虽然基于Java,但是其虚拟机是基于寄存器的,速度得到了很大的提升,这为Android平台上开发游戏提供了坚强的后盾 ...

  8. 自定义UITabbarcontrollerview

    // 初始化contentView [self initContentView]; #pragma mark 初始化contentView - (void)initContentView { CGSi ...

  9. Linux-系统负载

    cat /proc/loadavg 最直接查看系统平均负载命令 root@Slyar.com:~# cat /proc/loadavg 0.10 0.06 0.01 1/72 29632 除了前3个数 ...

  10. boost asio resolver

    asio 中的resolver一般用于将host等信息转化为socket信息,类似于getaddrinfo() 以下代码 boost::asio::io_service io; tcp::resolv ...