• Mysql数据库 ---高级操作


    一、修改表名

    alter table [旧的表名] rename [新表名]

    alter table sjl rename sjc;   ##修改sjl这张表的名字 改成sjc

    二、拓展表结构(增加字段)

    alter table [表名] add  [新加字段] [字段类型] default '字段内容';

    alter table  sjl  add address varchar[50] default '地址不详';

    三、修改字段(列)名,添加唯一键

    alter table [表名] change [旧列名] [新列名] [数据类型] [unique key];

    alter table sjl  change name  username varchar(10)  unique key;          ###添加唯一键

    ps : 唯一键是允许空值的,但是不允许重复字段

      不可以重复但是可以为空

     

     四、删除字段 

    alter table [表名] drop  [删除字段]

    alter table sjl  drop address;   ##删除sjl表中的 address 这个字段 

    五、案例扩展:

    use kgc;
    create table if not exists  info  (                                      #info是表名
    id int (4) zerofill primary key auto_incremebt,            #指定主键的第二种方式
    name varchar ( 10) not null default '匿名',        #设置默认值为匿名,如果插入数据为空使用默认值
    address int ( 18 ) not null unique key,
    hobby varchar (50) ) ;

    #if not exists:表示检测要创建的表是否已存在,如果不存在就继续创建

    #int (4) zerofill:表示若数值不满4位数,则前面用"0"填充,例0001
    #auto _increment:表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增:自增长字段数据不可以重复;自增长字段必须是主键。如添加的记最数操没有指定此字段的值且添加失败也会自动递增一次
    #unique key:表示此字段唯一键约束,此字段数据不可以重复;一张表中只能有一个主键,但是一张表中可以有多个唯一键#not null:表示此字段不允许为NULL

    unsigned ## 无符号类型

     自增长如果上一次插入的数据指定id为10 ,那么下次自增长为11

     

    六、克隆表

    方法一:     可以保证表结构和表数据是一致的

    create table [新表] like [旧表]    ##复制旧表的表结构

    create table sjl like st;      ##把st这张表的结构复制给sjl

    insert into sjl select * from st; 把st表中查询的数据插入到sjl这张表

    方法二:

        create table sjc (select * from st)

        create table 新表 (select  * from [旧表]);  ##在创建表的时候直接引用旧表

    但是有问题,可能会出现新表的表结构和旧表不一致,新表的表数据和旧表是一样的

    七 、查看表结构

    desc 表名;

    show create table 表名;  获取数据表结构 引索信息

    八、清空表,删除表内所有的数据

    方法1:

    delete from test0

    使用delete删除数据,他是一条一条删除的速度比较慢

    自增长字段,会继续递增

    方法二:truncate table test1

    清空后 把表结构重新建立 速度比delete快

    清除后在插入数据,自增长字段,从1开始记录

    九、创建临时表

    create temporary table 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);

    例: create temporary table test3 ( id int(4) zerofill primary key auto_increment, name varchar(10) not null, sex char(2) not null); insert into test3 values(1,'zhangsan','男'); select * from test03; show tables;

    临时表只能在当前连接中有效,能正常增删改查,但是show tables是看不到的,并且换一个或者退出当前后临时表都会失效

    十、创建外键约束

    外键的定义:如果同一个属性字段x在表一中是主键,而在表二中不是主键,则字段x成为表二的外键,用来保证表数据的完整和一致性

    添加主键

    alter table 表名 add primary key(主键字段);

    添加外键

    alter table student add constraint FK_pro foreign key(pid) references profession(proid)

    #foreign key  设置外键

    # references   关联主键

    #constraint FK_pro      FK_pro是外键名称    constraint是命名这个关联主外键表的关联名称

    插入数据时,先主再外   删除数据时,先外在主

    创建两张表 (专业表 和学生表)给主表添加主键 

     设置外键并且主键和外键做关联

  • 相关阅读:
    Docker 搭建Redis Cluster 集群
    C++引用的基本用法及拓展用法
    科技资讯|2023全球智能手表预估出货1.3亿块,智能穿戴提升AI功能
    【黑马程序员pink名师讲CSS】学好CSS有这一篇就够了(CSS笔记)
    docker部署ElasticSearch过程记录
    Scroll View到达底部加载新页
    docker基于alpine基础镜像合集(java、python)集成chrome
    java计算机毕业设计ssm+vue高校人事管理系统
    Rust踩雷笔记(7)——两个链表题例子初识裸指针
    【MyBatis笔记04】MyBatis框架中各种参数类型绑定的方式
  • 原文地址:https://blog.csdn.net/weixin_48271370/article/details/127400735