【Mysql】MySQL表和数据类型
【摘要】 创建数据表CREATE TABLE <表名> ([表定义选项])[表选项][分区选项];其中, [表定义选项] 的格式为:<列名1> <类型1> [,…] <列名n> <类型n>CREATE TABLE 命令语法比较多,其主要是由表创建定义(create-definition)、表选项(table-options)和分区选项(partition-options)所组成的。CREATE TAB...
创建数据表
CREATE TABLE <表名> ([表定义选项])[表选项][分区选项];
其中, [表定义选项] 的格式为:<列名1> <类型1> [,…] <列名n> <类型n>
CREATE TABLE 命令语法比较多,其主要是由表创建定义(create-definition)、表选项(table-options)和分区选项(partition-options)所组成的。
CREATE TABLE 语句的主要语法及使用说明如下:
- CREATE TABLE:用于创建给定名称的表,必须拥有表CREATE的权限。
- <表名>:指定要创建表的名称,在 CREATE TABLE 之后给出,必须符合标识符命名规则。表名称被指定为 db_name.tbl_name,以便在特定的数据库中创建表。无论是否有当前数据库,都可以通过这种方式创建。在当前数据库中创建表时,可以省略 db-name。如果使用加引号的识别名,则应对数据库和表名称分别加引号。例如,'mydb'.'mytbl' 是合法的,但 'mydb.mytbl' 不合法。
- <表定义选项>:表创建定义,由列名(col_name)、列的定义(column_definition)以及可能的空值说明、完整性约束或表索引组成。
数值类型
- 1) 数值类型:整数类型包括 TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,浮点数类型包括 FLOAT 和 DOUBLE,定点数类型为 DECIMAL。
- 2) 日期/时间类型:包括 YEAR、TIME、DATE、DATETIME 和 TIMESTAMP。
- 3) 字符串类型:包括 CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM 和 SET 等。
- 4) 二进制类型:包括 BIT、BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。
eg:创建一个员工表
CREATE TABLE emp (
id INT(11),
name VARCHAR(25),
deptId INT(11),
salary FLOAT
);
删除数据表
DROP TABLE [IF EXISTS] 表名1 [ ,表名2, 表名3 ...]
对语法格式的说明如下:
- 表名1, 表名2, 表名3 ...表示要被删除的数据表的名称。DROP TABLE 可以同时删除多个表,只要将表名依次写在后面,相互之间用逗号隔开即可。
- IF EXISTS 用于在删除数据表之前判断该表是否存在。如果不加 IF EXISTS,当数据表不存在时 MySQL 将提示错误,中断 SQL 语句的执行;加上 IF EXISTS 后,当数据表不存在时 SQL 语句可以顺利执行,但是会发出警告(warning)。
eg:
DROP TABLE tb_emp3;
查看表结构
DESCRIBE <表名>;
DESCRIBE/DESC 语句可以查看表的字段信息,包括字段名、字段数据类型、是否为主键、是否有默认值等
eg-查看员工工表结构
desc emp
修改数据表
ALTER TABLE <表名> [修改选项]
修改选项的语法格式如下:
{ ADD COLUMN <列名> <类型>
| CHANGE COLUMN <旧列名> <新列名> <新列类型>
| ALTER COLUMN <列名> { SET DEFAULT <默认值> | DROP DEFAULT }
| MODIFY COLUMN <列名> <类型>
| DROP COLUMN <列名>
| RENAME TO <新表名> }
eg-添加字段
ALTER TABLE emp ADD COLUMN col1 INT FIRST; --首项添加
ALTER TABLE emp ADD COLUMN age INT after name; --name字段后面添加
eg-修改字段
ALTER TABLE emp MODIFY name VARCHAR(30);
eg-删除字段
ALTER TABLE emp DROP age;
eg-修改表字段
ALTER TABLE emp CHANGE col1 col3 CHAR(30);
eg-修改表名
ALTER TABLE emp RENAME TO new_emp;
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)