MySQL 数据表

创建数据表

创建数据表之前,应使用语句 “ USE<数据库名> ” 指定在那个数据库中进行操作。如果没选择数据库,会出现 “ No database selected ” 的错误。

1.基本的必须制定部分:

表的常用语法:CREATE TABLE table_name ( column_name    column_type    [ NULL | NOT NULL ]    [ DEFAULT default_value ]    [ AUTO_INCREMENT ]    [ PRIMARY KEY ]    [ COMMENT 'string' ] )

table_name:创建的表的名称。

column_name:表中某一列的列名,一个表可以有多个列。

column_type :列的类型。

例:

员工号:

姓名: 年龄: 出生日期: 工资:
1001 张三 34 1972-01-29 6000.00
1002 李四 37 1969-06-02 6200.00
1003 王五 26 1980-12-12 3800.00
mysql> create table mytable
    -> (id int (5),
    -> name char (10),
    -> age smallint (3),
    -> birthday date,
    -> salary float (15,2));
Query OK, 0 rows affected (0.17 sec)

表名为 mytable,表列分别为 id name age birthday salary。其中,员工号是一个5位的整形数据,姓名是一个10位的字符串型数据,年龄是一个3位的整形数据,生日是一个日期型数据,工资是一个15位的有2位小数的浮点型数据。

2.列的基本属性

NULL NOT NULL 是一个可选的二选一的选项,表示这一列是否为空,不指定则默认允许为空。

DEFAULT default_value 是一个可选的是否存在默认值的选项,如果指定这个选项,在以后对该表插入数据时如果没有指定这一列的值,则该列的值将为 default_value 的值。

AUTO_INCREMENT 是一个可选的标识该列是否自动递增的选项,如果指定了这个选项,则每次插入一条记录时,该列的值自动加1。

PRIMARY KEY 选项标识这一列是否为主键,表中的一列或多列主键唯一标识一条记录

COMMENT 'string' 用来输入对该列的一个说明,MySQL不会读取这个选项,但会将创建表时写入的说明储蓄在表的定义中,供以后参考。

例:

mysql> create table mytable(
    -> id int(5) not null auto_increment primary key comment '员工号',
    -> name char(10) not null comment '姓名',
    -> age smallint(3) not null default 0 comment '年龄',
    -> birthday date null comment '出生日期',
    -> salary float(15,2) not null default 0.0 comment '工资');
Query OK, 0 rows affected (0.08 sec)

此代码指定了除了出生日期以外的其他列都不可以为空。员工号通过数据库进行自动递增分配,员工号是表的主键,唯一标识一条记录。每行均增加注释,此后可通过 show create table 命令来查看注释。

语法:show create table table_name ;  table_name 为表的名称

此实例输出这个命令:

+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table   | Create Table                                                                                                                                                                                                                                                                                                                                                                  |
+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| mytable | CREATE TABLE `mytable` (
  `id` int(5) NOT NULL AUTO_INCREMENT COMMENT '员工号',
  `name` char(10) NOT NULL COMMENT '姓名',
  `age` smallint(3) NOT NULL DEFAULT '0' COMMENT '年龄',
  `birthday` date DEFAULT NULL COMMENT '出生日期',
  `salary` float(15,2) NOT NULL DEFAULT '0.00' COMMENT '工资',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8              |
+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.03 sec)

3.复制表结构

语法:create table new_table_name like old_table_name ; new_table_name 指新创建表的名称,old_table_name指要被复制已经存在的表的名称

例:

mysql> create table mytable_new like mytable;
Query OK, 0 rows affected (0.18 sec)

show create table 来验证新表是否与旧表格式相同

+-------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table       | Create Table                                                                                                                                                                                                                                                                                                                                                                      |
+-------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| mytable_new | CREATE TABLE `mytable_new` (
  `id` int(5) NOT NULL AUTO_INCREMENT COMMENT '员工号',
  `name` char(10) NOT NULL COMMENT '姓名',
  `age` smallint(3) NOT NULL DEFAULT '0' COMMENT '年龄',
  `birthday` date DEFAULT NULL COMMENT '出生日期',
  `salary` float(15,2) NOT NULL DEFAULT '0.00' COMMENT '工资',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8              |
+-------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)

猜你喜欢

转载自blog.csdn.net/Qjy_985211/article/details/82291206