goon.gif

1. 创建数据表


语法:

  1. CREATE TABLE <表名> ([表定义选项])[表选项];
  2. CREATE [TEMPORARY] TABLE <表名> (
  3. 字段名|数据类型[列级完整性约束条件][默认值]
  4. [,字段名2 数据类型[列级完整性约束条件][默认值]]
  5. [,....]
  6. [,表级完整性约束条件]
  7. )[ENGINE=引擎类型]

表定义选项:就是定义列选项

  • 字段名|数据类型[列级完整性约束条件][默认值]

表选项,就是创建一个表的时候,对该表的整体设定,主要有如下几个:

  • charset = 要使用的字符编码,
  • engine = 要使用的存储引擎(也叫表类型),
  • auto_increment = 设定当前表的自增长字段的初始值,默认是1
  • comment = ‘该表的一些说明文字’

说明:

  • 设定的字符编码是为了跟数据库设定的不一样。如果没有设置,其会自动使用数据库级别的设定;
  • engine(存储引擎)在代码层面,就是一个名词:InnoDB, MyIsam, BDB, archive, Memory。默认是InnoDB。
  • 什么是存储引擎?

存储引擎是将数据存储到硬盘的“机制”。不同的存储引擎,其实主要是从2个大的层面来设计存储机制:

  1. 尽可能快的速度;
  2. 尽可能多的功能;

选择不同的存储引擎,就是在权衡性能和功能

实例:

  1. mysql>CREATE TABLE istester (
  2. ->id INT(10) NOT NULL UNIQUE PRIMARY KEY,
  3. ->uname VARCHAR(20) NOT NULL ,
  4. ->sex VARCHAR(4) ,
  5. ->birth YEAR,
  6. ->department VARCHAR(20) ,
  7. ->address VARCHAR(50) ,
  8. ->idoxu VARCHAR(20)
  9. ->);
  10. mysql>
  11. mysql>CREATE TABLE IF NOT EXISTS idoxu (
  12. ->id INT(10) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT ,
  13. ->stu_id INT(10) NOT NULL ,
  14. ->c_name VARCHAR(20) ,
  15. ->istester VARCHAR(50) ,
  16. ->grade INT(10)
  17. ->)ENGINE=InnoDB DEFAULT CHARSET=utf8;

goon.gif

2. 复制数据表


1)只复制表结构到新表

语法:

  1. CREATE TABLE <target_table_name> LIKE <source_table_name>;
  2. #或者
  3. CREATE TABLE <target_table_name> AS SELECT * FROM <source_table_name> WHERE 1=2; #其中 1=2 可写成其他假的表达式如 1<>1

注意:第二种方式复制表结构,并不是完全复制,表中字段的某些属性不会复制,比如primary key, unique等属性就没有复制。

实例:

  1. mysql>create table istester2 like istester;
  2. # 或者
  3. mysql>create table idoxu2 as select * from idoxu where 1=2;

2)只复制表结构个别字段到新表

实例:

  1. mysql>create table idoxu2 as select id,stu_id,istester from idoxu;
  2. # 不复制数据
  3. mysql>create table idoxu2 as (select id,stu_id,istester from idoxu where 1<>1);

3)复制表结构和数据到新表

语法:

  1. CREATE TABLE <target_table_name> AS SELECT * FROM <source_table_name>;

实例:

  1. mysql>create table idoxu2 as select * from idoxu;
  2. # 也可以
  3. mysql>create table istester2 like istester;
  4. mysql>INSERT INTO istester2 SELECT * FROM istester; # AS 可加也可不加

goon.gif

3. 查看数据表


语法:

  1. SHOW TABLES;

实例:

  1. mysql>use istester; #先进入数据库之后再看表
  2. mysql>show tables;

1)查看表结构
**
语法:

  1. mysql>desc <table_name>;
  2. mysql>show create table <table_name>;

goon.gif

4. 修改数据表


语法:

实例:

goon.gif

5. 删除数据表


语法:

  1. DROP TABLE table_name ;
  2. # 或者
  3. DROP TABLE [IF EXISTS] <table_name_1> [ ,table_name_2, table_name_3 ...];

实例:

  1. mysql>drop table istester2;
  2. mysql>
  3. mysql>drop table idoxu2, idoxu3;
  4. mysql>
  5. mysql>drop table if exists istester3;

end1.gif