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] ...
详解:
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学习笔记(数据表基本操作)的更多相关文章
- MySQL学习笔记 -- 数据表的基本操作
数据库是一个可以存放数据库对象的容器,数据库对象包括:表.视图.存储过程.函数.触发器.事件.其中,表是数据库最基本的元素,是其他数据库对象的前提条件. 表中的一列称为一个字段,一行称为一条记录. 1 ...
- MySQL 5.6学习笔记(数据库基本操作,查看和修改表的存储引擎)
1. 数据库基本操作 1.1 查看数据库 查看数据库列表: mysql> show databases; +--------------------+ | Database | +------ ...
- MySQL:数据表基本操作
数据表基本操作 注意点: 1.数据表中已经有数据时,轻易修改数据类型,有可能因为不同的数据类型的数据在机器 中存储的方式及长度并不相同,修改数据类型可能会影响到数据表中已有的数据类型. 2. 数据表 ...
- MYSQL视图的学习笔记
MYSQL视图的学习笔记,学至Tarena金牌讲师,金色晨曦科技公司技术总监沙利穆 课程笔记的综合. 视图及图形化工具 1. 视图的定义 视图就是从一个或多个表中,导出来的表,是一个虚 ...
- mySQl数据库的学习笔记
mySQl数据库的学习笔记... ------------------ Dos命令--先在记事本中写.然后再粘贴到Dos中去 -------------------------------- mySQ ...
- Mysql数据库基础学习笔记
Mysql数据库基础学习笔记 1.mysql查看当前登录的账户名以及数据库 一.单表查询 1.创建数据库yuzly,创建表fruits 创建表 ) ) ,) NOT NULL,PRIMARY KEY( ...
- MYSQL中约束及修改数据表
MYSQL中约束及修改数据表 28:约束约束保证数据的完整性和一致性约束分为表级约束和列级约束约束类型包括: NOT NULL(非空约束) PRIMARY KEY(主键约束) UNI ...
- mysql存储过程之游标遍历数据表
原文:mysql存储过程之游标遍历数据表 今天写一个mysql存储过程,根据自己的需求要遍历一个数据表,因为对存储过程用的不多,语法不甚熟悉,加之存储过程没有调试环境,花了不少时间才慢慢弄好,故留个痕 ...
- C# 利用mysql.data 在mysql中创建数据库及数据表
C# 利用mysql.data 在mysql中创建数据库及数据表 using System; using System.Collections.Generic; using System.Linq; ...
- mysql 导入导出数据库、数据表的方法
mysql 导入导出数据库.数据表的方法. Linux操作系统中,均在控制台下操作.1,导入数据库:前提:数据库和数据表要存在(已经被创建)(1)将数据表 test_user.sql 导入到test ...
随机推荐
- 写出3个使用this的典型应用
(1).在html元素事件属性中使用,如: <input type=”button” onclick=”showInfo(this);” value=”点击一下” /> (2).构造函数 ...
- Flash XSS 漏洞详解 根治的好办法
本文的目的是深层次的分析Flash的ExternalInterface的XSS漏洞,并提出比较有效的解决方案. 首先,我们看看什么情况下,会出现XSS. 第一种情况: 把flas ...
- CSDN开源夏令营 基于Compiz的switcher插件设计与实现之编译compiz源代码
在開始介绍之前先吐个嘈:上周我们暑期ACM集训開始了.平均下来基本上是一天一赛.有时还不止.又是多校联赛,又是CodeForces,又是TopCoder.又是BestCoder,又是AcDream.还 ...
- 转 通过phpize为php在不重新编译php情况下安装模块openssl
假定:php编译安装路径:/usr/local/php/apache编译安装路径:/usr/local/apache/php配置文件路径:/etc/php.iniphp安装源路径:/usr/sourc ...
- 敏捷开发与Scrum
敏捷开发以用户的需求进化为核心,采用迭代.循序渐进的方法进行软件开发.在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视.可集成和可运行使用的特征.换言之,就是把 ...
- CSS的子选择器与后代选择器的区别
来源于:http://www.jianshu.com/p/599654ba5f4a 子选择器: 一个比较有用的选择器子选择器,即大于符号(>),用于选择指定标签元素的第一代子元素.如右侧代码编辑 ...
- Android 代码画角标 offcutView
效果如下: 代码: <com.andye.OffcutView android:layout_width="30dp" android:layout_h ...
- 在容器服务kubernetes上配置https
当前容器服务Kubernetes集群支持多种应用访问的形式,最常见形式如SLB:Port,NodeIP:NodePort和域名访问等.但是Kubernetes集群默认不支持HTTPS访问,如果用户希望 ...
- (原)ubuntnu中anaconda的g++提示crtbeginS.o:unrecognized relocation
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/6950263.html 自从使用anaconda后,方便是方便了,也遇到了很多蛋疼的问题. 这次使用an ...
- 简述MVC
强调:mvc不是框架而是一种设计模式 分层结构的好处:1.降低了代码之间的耦合性 2.提高了代码的重用性 一. 概述 MVC的全名Model View Controller,即模型-视图-控制器的缩写 ...