mysql表命令

查看表

数据表存在于数据库中,若要查看数据表,先切换进入数据库中。

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;