复制操作
复制表
CREATE TABLE `新表名` like `旧表名`
CREATE TABLE `member` like `user`
CREATE TABLE 新表 SELECT * FROM 旧表,这种方式会遗漏主键、自增、索引等,不建议使用
CREATE TABLE `member` SELECT * FROM `user`
复制数据。可以全表、根据字段、根据select条件。全表不需要写字段,字段不同需要AS。
表结构相同
INSERT INTO `新表名` SELECT * FROM `旧表名`
表结构不相同
INSERT INTO `新表名`(`字段名`) SELECT `字段名` FROM `旧表名`
使用select子条件
INSERT INTO `新表名` SELECT * FROM `旧表名` WHERE id<100
INSERT INTO `新表名`(`字段名`) SELECT `字段名` FROM `旧表名` WHERE id<100
复制表及数据
表结构相同
INSERT INTO `新表名` SELECT * FROM `旧表名`
表结构不相同
INSERT INTO `新表名`(`字段名`) SELECT `字段名` FROM `旧表名`
使用select子条件
INSERT INTO `新表名` SELECT * FROM `旧表名` WHERE id<100
INSERT INTO `新表名`(`字段名`) SELECT `字段名` FROM `旧表名` WHERE id<100
sql变量赋值
@VAR1='变量名/或sql函数'
SELECT @create_time:=new() as create_time FROM `user`
表字段操作
字段查询
SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE`TABLE_SCHEMA` = '库名' AND `TABLE_NAME` = '表名'
DESC `表名`
DESCRIBE `表名`
SHOW COLUMNS FROM `表名`
新增字段
ALTER TABLE `表名` ADD COLUMN `字段名` 字段类型 是否为空 默认值 备注 在哪个字段后面
ALTER TABLE `user` ADD COLUMN `name` varchar(30) NULL COMMENT '用户名' AFTER `id`
修改字段
ALTER TABLE `表名` CHANGE `新字段` `旧字段` 字段类型 是否为空 默认值 备注 `在哪个字段后面`;
ALTER TABLE `user` CHANGE `name` `username` varchar(30) NOT NULL DEFAULT NULL COMMENT "用户名" AFTER `id`;
删除字段
ALTER TABLE `表名` DROP `字段名`
ALTER TABLE `user` DROP `name`
查询库、表
查询库、库信息
1、查询全部
SHOW DATABASES
2、传库名查询
SELECT * FROM INFORMATION_SCHEMA.SCHEMATA WHERE`SCHEMA_NAME` = "库名"
查询表、表信息
1、查询全部
SHOW TABLES
2、传库名表名查询,不传库名查全库
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE`TABLE_NAME` = '表名' AND `TABLE_SCHEMA` = '库名'
SHOW TABLE STATUS LIKE '%表名%';
表结构
SHOW CREATE TABLE `表名`
INFORMATION_SCHEMA用法
-- SELECT * FROM INFORMATION_SCHEMA.COLUMNS
SCHEMATA表:提供了关于数据库的信息。
TABLES表:给出了关于数据库中的表的信息。
COLUMNS表:给出了表中的列信息。
STATISTICS表:给出了关于表索引的信息。
USER_PRIVILEGES表:给出了关于全程权限的信息。该信息源自mysql.user授权表。
SCHEMA_PRIVILEGES表:给出了关于方案(数据库)权限的信息。该信息来自mysql.db授权表。
TABLE_PRIVILEGES表:给出了关于表权限的信息。该信息源自mysql.tables_priv授权表。
COLUMN_PRIVILEGES表:给出了关于列权限的信息。该信息源自mysql.columns_priv授权表。
CHARACTER_SETS表:提供了关于可用字符集的信息。
COLLATIONS表:提供了关于各字符集的对照信息。
COLLATION_CHARACTER_SET_APPLICABILITY表:指明了可用于校对的字符集。
TABLE_CONSTRAINTS表:描述了存在约束的表。
KEY_COLUMN_USAGE表:描述了具有约束的键列。
ROUTINES表:提供了关于存储子程序(存储程序和函数)的信息。此时,ROUTINES表不包含自定义函数(UDF)。
VIEWS表:给出了关于数据库中的视图的信息。
TRIGGERS表:提供了关于触发程序的信息。