MySQL数据表操作

数据表

创建表

如果数据表已创建且加上IF NOT EXISTS再创建系统不会报错。

--创建数据表:
CREATE TABLE tb1(
username VARCHAR(20) NOT NULL; --用户名称  字符型,非空
age TINYINT UNSIGNED NULL, --年龄  整型无负数,可为空值
salary FLOAT(8,2) UNSIGNED --工资 浮点型 整数6位 小数2位 无负数
);

SHOW TABLES [FROM db_name];--查看表
SHOW COLUMNS FROM table_name;--查看表结构

--INTO可以省略;列名可以省略,此时必须为所有的列赋值。   
INSERT [INTO] table_name [(col_name,...)] VALUES (val,...);   

修改表

添加(多)列
ALTER TABLE table_name ADD [COLUMN] column_name column_definition [FIRST | AFTER column_name]
ALTER TABLE table_name ADD [COLUMN] (column_name column_definition,...)

ALTER TABLE user1 ADD age TINYINT UNSIGNED NOT NULL DEFAULT 10;
删除列
ALTER TABLE tbl_name DROP [COLUMN] col_name

ALTER TABLE user1 DROP truename;--删除表user1的truename单列

ALTER TABLE user1 DROP password,DROP age;--删除多列,用逗号分隔开
增删主键约束
ALTER TABLE tbl_name ADD [CONSTRAINT [自己起的约束名字]] PRIMARYKEY  [index_type] (index_col_name,...)
--index_type 可选参数,创建的索引类型(B树,Hash),默认B树
ALTER TABLE table_name DROP PRIMARY KEY;
增删外键约束:
ALTER TABLE tb_name ADD [CONSTRANINT [约束名]] FOREIGN KEY  [index_name]  (index_col_name,...) references_definition;
ALTER TABLE table_name DROP FOREIGN KEY (约束名);
--外键约束的名字 约束名 可通过 SHOW CREATE TABLE table_name; 查询
--示例
ALTER TABLE user2 ADD FOREIGN KEY (pid) REFERENCES provinces (id);
增删唯一约束
ALTER TABLE tbl_name ADD [CONSTRAINT [约束名]] UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...)
ALTER TABLE table_name DROP INDEX 约束名;
--示例
ALTER TABLE user2 ADD UNIQUE (username);
增删默认约束
ALTER TBALE tb_name ALTER [COLUMN] col_name {SET DEFAULT 默认值 | DROP DEFAULT}
--示例
ALTER TABLE user2 ALTER age SET DEFAULT 15;
ALTER TABLE user2 ALTER age DROP DEFAULT;
修改列定义
ALTER TABLE tbl_name MODIFY [COLUMN] col_name column_definition [ FIRST | AFTER col_name]; 
--将id字段的位置提到第一列
ALTER TABLE users2 MODIFY id SMALLINT UNSIGNED NOT NULL FIRST; 
--修改数据类型,需注意数据丢失的问题 
SHOW COLUMNS FROM users2; ALTER TABLE users2 MODIFY id TINYINT UNSIGNED NOT NULL; 
修改列名称

尽量不要修改列名

ALTER TABLE tbl_name CHANGE [COLUMN] col_name new_col_name column_definition [ FIRST | AFTER col_name]; 
--修改列名称 pid -> p_id
ALTER TABLE users2 CHANGE pid p_id TINYINT UNSIGNED; 
数据表更名

尽量不要修改表名

--方法1 
ALTER TABLE tbl_name RENAME [TO/AS] new_tbl_name 
--示例
ALTER TABLE users2 RENAME (to/as) users3; 
SHOW TABLES; 
--方法2 
RENAME TABLE tbl_name TO new_tbl_name [, tbl_name2 TO new_tbl_name2] ... 
--示例
RENAME TABLE users5 TO users2; 

不要随意修改表明列名,以前引用过表名或列名的话,可能会影响某些视图存储过程的正常工作.

你可能感兴趣的:(mysql)