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张三341972-01-296000.00
1002李四371969-06-026200.00
1003王五261980-12-123800.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)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值