mysql sql操作,复制表、复制数据、变量赋值、字段操作、表结构、INFORMATION_SCHEMA用法

复制操作

复制表
    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表:提供了关于触发程序的信息。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Mysql数据库:端口号3306,超级用户 root unsigned 正值 修改提示符:--prompt ...
    yzw12138阅读 2,622评论 0 0
  • 1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop dat...
    空KGZMC阅读 1,137评论 0 0
  • [TOC] 第一章:MySQL介绍 1.1-什么是SQL Structured Query Language 结构...
    雷哒哒阅读 5,092评论 0 3
  • 1.SQL语句的分类 DDL语句(数据定义语句)主要用于定义数据库对象的SQL语句数据库对象:表(table),列...
    上仙_8e6b阅读 2,695评论 0 0
  • 初识sql语句 有了mysql这个数据库软件,就可以将程序员从对数据的管理中解脱出来,专注于对程序逻辑的编写 my...
    牛奶加醋阅读 4,179评论 0 1