mysql表的创建和删除

在创建数据库表时,最好是在编辑器中写好创建表的代码,然后粘贴到命令行中,这样如果有错修改起来方便。

现在来创建一个user表:

-- 打开数据库, --后面必须要有空格, 表示注释
USE mydb3;

-- 创建表(user)
-- 编号:id 
-- 用户名:username
-- 年龄:age
-- 性别: sex
-- 邮箱:email
-- 地址:addr
-- 生日:birth
-- 薪水:salary
-- 电话:tel
-- 是否结婚:married


-- 当有中文的时候需要临时 转换客户端的编码方式,SET NAMES utf8, 对当前连接有效
-- 字段注释,通过comment 给字段添加注释
-- 使用反引号是为了防止表名与关键字重名
-- 可以指定表的存储引擎和编码方式
CREATE TABLE `user`(
id SMALLINT,
username VARCHAR(20),
age TINYINT,
sex ENUM('', '', '保密'),
email VARCHAR(50),
addr VARCHAR(200),
birth YEAR,
salary FLOAT(8,2),
tel INT,
married TINYINT(1) COMMENT '0代表未结婚,非0代表结婚'
)ENGINE=INNODB CHARSET=utf8;

 

查看数据库中的所有数据表:

mysql> SHOW TABLES;
+-----------------+
| Tables_in_mydb3 |
+-----------------+
| cms_cate        |
| cms_news        |
| course          |
| user            |
+-----------------+
4 rows in set (0.01 sec)

 

查看表结构:

三种方法: DESC table_name;    DESCRIBE table_name;  SHOW COLUMNS FROM table_name;

mysql> DESC user;
+----------+----------------------------+------+-----+---------+-------+
| Field    | Type                       | Null | Key | Default | Extra |
+----------+----------------------------+------+-----+---------+-------+
| id       | smallint(6)                | YES  |     | NULL    |       |
| username | varchar(20)                | YES  |     | NULL    |       |
| age      | tinyint(4)                 | YES  |     | NULL    |       |
| sex      | enum('','','保密')     | YES  |     | NULL    |       |
| email    | varchar(50)                | YES  |     | NULL    |       |
| addr     | varchar(200)               | YES  |     | NULL    |       |
| birth    | year(4)                    | YES  |     | NULL    |       |
| salary   | float(8,2)                 | YES  |     | NULL    |       |
| tel      | int(11)                    | YES  |     | NULL    |       |
| married  | tinyint(1)                 | YES  |     | NULL    |       |
+----------+----------------------------+------+-----+---------+-------+
10 rows in set (0.01 sec)

 

再创建一个整型的表test1,测试一下字段类型:

CREATE TABLE test1(
num1 TINYINT,
num2 SMALLINT,
num3 MEDIUMINT,
num4 INT,
num5 BIGINT
);

 

向表中插入一条记录:

-- 向表中插入数据
INSERT test1 VALUES(-128,-32768,-8388608,-2147483648,-9223372036854775808);

 

查询一下,看看是否插入成功 :‘

mysql> select * from test1;
+------+--------+----------+-------------+----------------------+
| num1 | num2   | num3     | num4        | num5                 |
+------+--------+----------+-------------+----------------------+
| -128 | -32768 | -8388608 | -2147483648 | -9223372036854775808 |
+------+--------+----------+-------------+----------------------+
1 row in set (0.00 sec)

 

修改一下,让num1超出范围,看是否能插入成功:

mysql> INSERT test1 VALUES(-129,-32768,-8388608,-2147483648,-9223372036854775808);
ERROR 1264 (22003): Out of range value for column 'num1' at row 1

 

 

创建一个具有无符号的字段的表:

-- 无符号
CREATE TABLE test2(
num1 TINYINT UNSIGNED,
num2 TINYINT
);
插入数据
-- 插入
INSERT test2 VALUES(0,-12);
mysql> INSERT test2 VALUES(-10,-12);
ERROR 1264 (22003): Out of range value for column 'num1' at row 1

 

零填充ZEROFILL

-- 零填充ZEROFILL, 加上ZEROFILL后自动变成无符号的
-- 如果不指定显示长度,默认为最大长度
CREATE TABLE test3(
num1 TINYINT(3) ZEROFILL,
num2 INT ZEROFILL
);


-- 插入数据
INSERT test3 VALUES(1,1);

看一下填充效果:

mysql> select * from test3;
+------+------------+
| num1 | num2       |
+------+------------+
|  001 | 0000000001 |
+------+------------+
1 row in set (0.01 sec)

 

 

表的删除:

-- 删除数据表
-- 表删除之后,数据就没有了
-- DROP TABLE [IF EXISTS] tb_name
DROP TABLE user12;
-- 一次删除多张表
DROP TABLE user11,user10,user9;
posted @ 2016-08-03 17:45  黄小墨  阅读(478)  评论(0编辑  收藏  举报