查看表
数据表存在于数据库中,若要查看数据表,先切换进入数据库中。
USE 数据库名;
使用 show 会列出此数据库中所有数据表
SHOW TABLES; -- 要先切换进数据库中
若要查看表内的数据结构,可用 describe
DESCRIBE 数据表名;
或者
DESC 数据表名;
如
DESC user;
建表
建立空表
CREATE TABLE 表名
(
字段名1 字段1类型,
字段名2 字段2类型,
......
字段名n 字段n类型
);
如
CREATE TABLE user
(
id CHAR(10),
name VARCHAR(10),
phone CHAR(11)
);
字段类型
在建表或者更新表的时候,要指定字段的类型,在字段名后用类项名(数量)
来表示。
- char(n) 是定长字符(串),n 是一个数字,定义了字段里能够保存的最多字符数量。如,定义一个 11 个字节的定长字符串类型用来表示电话号码:
phone CHAR(11)
。如果存入的是一个没有到 7 位的座机号码,那么剩余 4 位就会被记录为空格。但是,不要使用定长数据类型来保存长度不定的数据,否则可能会导致浪费内存空间。 - varchar(n) 是变长字符串,变长字符串也就是长度不固定的字符串,用于解决字符串长短不一的问题。n 是一个数字,表示字段里能够保存的最多字符数量。varchar 可变长字符串,不预先分配存储空间,长度不要超过 5000,如果存储长度大于此值,定义字段类型为 text。
- text 是一大串文本(即字符串),text 数据类型是一种长字符串类型,可以被看作一个大 varchar 字段,通常用于在数据库里保存大字符集。
- datetime 表示时间。
- integer 或者 int 表示整数。若确定表示的范围没有负数,应使用 unsigned,如
int unsigned
。无符号值既可以避免误存负数,又扩大了表示范围。 - decimal(p, s) 表示小数。p 表示字段的最大长度,s 表示小数点后面的位数,比如
length DECIMAL(4,2)
,能存储的最大值是99.99
,若要存储1.234
,便会进行四舍五入,为1.23
。float 和 double 在存储的时候,存在精度损失的问题,很可能在值的比较时,得到不正确的结果。 - NULL,表示什么都没有或者不知道该字段值。
- 布尔值可以用
unsigned tinyint
表示,其中,1 表示是,0 表示否。 之所以这样,是因为大多数数据库实现并没有一个严格意义上的布尔类型。
从现有表新建表
CREATE TABLE 新表名 AS --也可以不要AS
SELECT * -- 也可以是SELECT id, name
FROM 数据库.数据表
WHERE 数据库.数据表.id IS NOT NULL;