zoukankan      html  css  js  c++  java
  • MySQL中表的操作

    在MySQL中,表是一种数据库对象,表由若干个字段(列)组成,表的操作包括增删查改。

    一个表中的书库对象包括:列(column)、索引(index)及触发器:

    列也称属性列,在创建表时,必须指定列的名字和类型,同时也可以指定约束;

    索引是根据指定的数据库表列建立起来的顺序;

    触发器是指用户定义的事务命令的集合,当对表中的数据进行插入、更新和删除时,这组命令就会自动执行,以确保数据的安全性和完整性。

    以下在对表的操作中都是伴随着字段和数据类型一起的,约束可以不要,但是字段名和数据类型缺一不可。

    1、创建表

    1 create table 表名(
    2     字段名 数据类型 约束,
    3     字段名 数据类型 约束,
    4       ...   ...   ...);

    【注】创建的表名不可与存在的表名字重复;

    在创建完表之后,可以查看创建的表结构的详细定义,可以使用:

    show create table 表名;

    也可以使用以下语句查看表的定义:

    desc 表名;

    【注】desc与describe相同。

    2、删除表

    drop table 表名;

    3、修改表(alter table 表名  ...)

    有时我们在创建表时考虑的问题不是很全面,可能后续需要修改,存在以下情况:

    (1)只修改表名:

    alter table 旧表名 rename 新表名;

    (2)增加列(字段)

    alter table 表名 add 字段 数据类型 约束;

    【注】默认添加在表的最后一列;

    也可以一次添加多个表名:

    alter table 表名 add(字段 数据类型 约束,
        字段 数据类型 约束,
        字段 数据类型 约束)

    在表的第一个位置增加字段:

    alter table 表名 add 字段 数据类型 约束 first;

    在表的指定字段后增加字段:

    alter table 表名 add 字段名 数据类型 约束 after 属性名;

    删除某个字段:

    alter table 表名 drop 字段名;

    修改字段的数据类型:

    alter table 表名 modify 字段名 数据类型;

    【注】数据类型为要修改成的数据类型;

    修改字段的名字:

    alter table 表名 change 旧属性名 新属性名 旧数据类型;

    给已创建表的字段添加单一约束:

    alter table 表名 add 约束名 (字段名);

    如:

    alter table test add primary key(id);

    在创建表时,可以设置字段约束,常见的约束类型有:

    not null(设置非空约束)

    default(设置字段的默认值)

    unique key(uk)(约束字段的值是唯一的)

    primary key(pk)  (设置主键约束) 

    【注】:表的主键可以不唯一

    auto_increment(约束字段的值自动增加)

    foreign key(约束字段为表的外键)

    在创建表时可以添加约束,一般为:

    create table 表名(
      字段名 数据类型 约束类型,
      字段名 数据类型 约束类型
      ...   ....     ....);

    可以给字段设置的约束设置一个名字,在创建表时,在最后添加:

    constraint uk_bname unique(字段名)

    最后再以);结尾,uk_dname是为约束创建的名字。

    在为字段创建主键时,主键可以有多个,此时需要通过以下语句来实现:

    constraint 约束名 primary key(字段名1, 字段名2)

    最后再以);结尾。

    在创建表时也可以创建外键约束,只需要在最后一行添加:

    constraint 约束名 foreign key(字段名1) references 表名(字段名2)

    最后再以);结尾,在设置外键时,两个字段的数据类型必须一致。

    给已创建表添加外键约束:

    alter table 表名 add constraint fk_name foreign key (字段名) references 表名(字段名);
  • 相关阅读:
    Vue项目和微信小程序项目的区别与比较
    在Vue中应该如何封装Axios 管理API接口
    Vue2.x 项目踩坑笔记
    微信小程序日常踩坑笔记
    面试题之JavaScript 请写一个深度克隆的函数
    面试题之JavaScript 请编写实现一个对js类型检测函数(支持检测基本类型,对象,函数,正则,时间等)
    面试题之 HTML && CSS && JavaScript 总结
    面试题之JavaScript 有一个url 'http://www.youdao.com/newcard.html?sid=50&a=5&add=9&type=all',请写一个获取url中'?'后制定参数值的函数
    面试题之JavaScript 请给Array本地对象增加一个原型方法,它用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组。
    面试题之JavaScript 正则相关题
  • 原文地址:https://www.cnblogs.com/jdwfff/p/10492768.html
Copyright © 2011-2022 走看看