• Mysql常用sql语句(2)- 操作数据表


    测试必备的Mysql常用sql语句系列

    https://www.cnblogs.com/poloyy/category/1683347.html

    前言

    针对数据表的操作语句叫做数据定义语言(DDL)  

    数据表有哪些操作?

    • 创建数据表
    • 查看表结构
    • 查看数据表的创建语句
    • 复制数据表
    • 修改数据表
    • 删除数据表

    简称“增删改查“,点击右边目录即可跳转哦! -------------->>>>>>>>>> 

    创建数据表

    语法格式

    CREATE TABLE <表名> ( [表定义选项] )[表选项][分区选项];

    知识点

    • 表名:两种写法,可以直接写数据表的名字 tbl_name ,也可以  db_name.tbl_name ,先指定数据库再指定数据表名;后者写法是为了:无论是否在当前数据库,也能通过这种方式在指定数据库下创建表
    • 表定义选项:一般都是 列名、列定义、默认值、约束、索引组成

    实际栗子

    # 创建数据表
    CREATE TABLE yytest (
        id INT ( 10 ) NOT NULL UNIQUE PRIMARY KEY,
        uname VARCHAR ( 20 ) NOT NULL,
        sex VARCHAR ( 4 ),
        birth YEAR,
        department VARCHAR ( 20 ),
        address VARCHAR ( 50 ),
        yypolo VARCHAR ( 20 ) 
    );
    
    # 指定数据库,创建数据表
    CREATE TABLE yytest.polotest (
        id INT ( 10 ) NOT NULL UNIQUE PRIMARY KEY AUTO_INCREMENT,
        stu_id INT ( 10 ) NOT NULL,
        c_name VARCHAR ( 20 ),
        istester VARCHAR ( 50 ),
        grade INT ( 10 ) 
    );    

    查看表结构

    desc yytest.yytest;

    执行结果

     

    知识点

    • Null:表示该字段是否可以存储 NULL 值
    • Key:表示该字段是否已编制索引。PRI 表示主键,UNI 表示UNIQUE 索引,MUL 表示某个给定值允许出现多次
    • Default:表示该字段是否有默认值,如果有,值是多少
    • Extra:表示该字段的附加信息,如 AUTO_INCREMENT 等

    查看数据表的创建语句

    show create table yytest;

    执行结果

     

    知识点

    不仅可以查看创建表时的详细语句,而且可以查看存储引擎和字符编码

    复制数据表

    # 仅复制表结构
    create table yytest2 like yytest;
    
    # 复制表结构和数据
    create table yytest3 as select  * from yytest;
    
    # 仅复制表的指定字段结构
    create table yytest4 as select id,uname,sex from yytest where 1<>1;
    
    # 复制表的指定字段结构和数据
    create table yytest5 as select id,uname,sex from yytest;
    
    # 查看表创建语句:没有包含主键和自增
    show create table yytest5;

    知识点

    • 仅复制全部字段的结构直接加 like 
    • 复制表不包含主键、索引、自增等

    修改数据表

    语法格式

    ALTER TABLE <表名> [修改操作];

    知识点

    常用的修改表的操作

    • 修改表名
    • 修改字段数据类型或字段名
    • 增加和删除字段
    • 修改字段的排列位置
    • add、drop、change、modify、rename

    修改表名

    语法格式

    ALTER TABLE <旧表名> RENAME [TO] <新表名>

    注意

    • [TO] 加不加都行,不影响结果
    • 修改表名不影响表结构

    实际栗子

    alter table yytest2 rename to yytest22;
    alter table yytest22 rename yytest22;

    修改字段排列顺序

    语法格式

    ALTER TABLE <表名> MODIFY <字段名> <数据类型> [FIRST|AFTER 已存在的字段名];

    实际栗子

    # 放在首位
    alter table yytest22 modify sex int(2) first;
    
    # 放在birth字段后面
    alter table yytest22 modify sex int(2) after birth;

    修改字段数据类型

    语法格式

    ALTER TABLE <表名> MODIFY <字段名> <数据类型>;

    实际栗子

    # 修改字段数据类型
    alter table yytest22 modify sex int(2);

    修改字段名字

    语法格式

    ALTER TABLE <表名> CHANGE <旧字段> <新字段> <数据类型>;

    实际栗子

    # 修改字段名
    alter table yytest22 change sex sexs int(2);
    
    # 修改字段数据类型和字段名
    alter table yytest22 change sexs sex varchar(4);

    知识点

    change不仅可以改字段名,也可以改字段数据类型

    添加字段

    语法格式

    ALTER TABLE <表名> ADD <字段名> <数据类型>  [约束条件] [FIRST|AFTER 已存在的字段名];

    实际栗子

    # 添加字段
    alter table yytest22 add  phone varchar(11);
    
    # 添加字段到首位
    alter table yytest22 add  phone varchar(11) not null default 2 first;
    
    # 添加字段到某个字段后面
    alter table yytest22 add  phone varchar(11) after sex;

    删除字段

    语法格式

    ALTER TABLE <表名> DROP <字段名>

    实际栗子

    # 删除字段
    alter table yytest22 drop  phone;

    删除数据表

    语法格式

    DROP TABLE [IF EXISTS] 表名1 [ ,表名2, 表名3 ...]

    可以看到跟删除库差不多

    实际栗子

    # 删除表如果存在
    drop table if exists yytest,polotest

    谨慎操作吧!!数据会清空哦!!

  • 相关阅读:
    Codeforces 220C
    Codeforces 697D
    HDU 4417
    Codeforces 396C
    Codeforces 246C
    HDU 6333
    HDU 3389
    总结:树上启发式合并
    HDU 6319
    Codeforces 1009G
  • 原文地址:https://www.cnblogs.com/poloyy/p/12592229.html
Copyright © 2020-2023  润新知