zoukankan      html  css  js  c++  java
  • Mysql表基本操作

    一. 创建表的方法

    语法:create table 表名(

    属性名数据类型完整约束条件,

    属性名数据类型条完整约束件,

    。。。。。。。。。

    属性名数据类型

    );

    (1)举例:
    1
    create table example0( 2 id int, 3 name varchar(20), 4 sexboolean);
    表的完整性约束
    约束条件 说明
    (1)primary key 标识该字段为表的主键,
      (2) foreign key 标识该字段为表的外键,与某主表相连系
      (3) not null 标识该属于的值不能为空
      (4) unique 标识这个属性值是唯一
      (5) auto_increment 标识该属性值的自动增加
      (6) default 为该属性值设置默认值

    1.1 设置表的主键

      主键是一个表的特殊字段,这个字段是唯一标识表中的每条信息,主键和记录的关系,跟人和身份证一样。名字可以一样,但是身份证号码绝对不会一样,主键用来标识每个记录,每个记录的主键值都不同。

      主键可以帮助Mysql以最快的速度查找到表中的每一条信息,主键必须要满足的条件那就是它的唯一性,表中的任意两条记录的主键值,不能相同,否则就会出现主键值冲突,主键值不能为空,可以是单一的字段,也可以是多个字段的组合。

      主键冲突:
    单主键情况:主键不能相同
    多主键情况:表中有多主键时,只要主键不完全相同都是符合条件的,只有当所有主键一模一样时才会主键冲突

    1 create table sxkj(
    2 User_id int primary key,
    3 user_name varchar(20),
    4 user_sexchar(7));
    主键

     1.2 设置多个字段做主键

    1 举例:
    2 create table sxkj2(
    3 user_id int,
    4 user_name float,
    5 grade float,
    6 primary key(user_id,user_name));
    多主键

    1.3 设置表的外键

      外键是表的一个特殊字段,如果aa是B表的一个属性且依赖于A表的主键,那么A表被称为父表,B表被称为子表。

      语法:

      constraint 外键别名 foreign key(外键字段1,外键字段2) references 表名(关联的主键字段1,主键字段2);

    1.4 设置表的非空值

      语法:属性名 数据类型  NOT NULL  

    1 举例:
    2 create table C(
    3 user_id int NOT NULL);

    1.5 设置表的唯一性约束

      唯一性指的就是所有记录中该字段不能重复出现

      语法:属性名 数据类型 unique

    1 举例:
    2 create table D(
    3 user_id int unique);

    1.6 设置表的属性值自动增加

      Auto_increment是Mysql数据库中特殊的约束条件,它的作用是向表中插入数据时自动生成唯一的ID,一个表只能有一个字段使用auto_increment 约束,必须是唯一的。

      语法:属性名 数据类型 auto_increment

      *默认字段值从1开始自增。

    1 举例:
    2 create table F(
    3 user_id int primary key auto_increment);
    1 插入一条空的信息
    2 insert into F values();
    3 
    4 查看表格F的内容
    5 select * from F;
    6 
    7 在结果中可以看到user_id为1

    1.7 设置表的默认值

      在创建表时,可以指定表中的字段的默认值,如果插入一条新的记录时,没有给这个字段复制,那么数据库会自动的给这个字段插入一个默认值,字段的默认值用default来设置。

      语法:属性名 数据类型 default 默认值

    举例:
    create table G(
    user_id int primry key auto_increment,
    user_name varchar(20) default 'zero');
    
    向表中插入空数据:
    insert into G values();    //系统会默认第一字段自增为1,第二字段为默认值zero
    

    二. 查看表结构的方法

      Mysql  DESCRIBE可以查看那表的基本定义,包括、字段名称,字段的数据类型,是否为主键以及默认值等。。

    2.1 语法:describe 表名;可以缩写为desc

    举例:

    desc B;

     

    2.2  show create table查询表详细的结构语句

     

    三. 修改表的方法

         额外:修改表默认自增,从1000开始。

         alter table F auto_increment=1000;

    3.1 修改表名

      语法:alter table 旧表名 rename 新表名;

    举例;
    alter table A rename zyA;
    

    3.2 修改表的数据类型

      语法:alter table 表名 modify 属性名数据类型;

    举例;
    alter table A modify user_name double;
    

    3.3 修改表的字段名称

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

    举例:
    alter table A change user_name user_zyname float;
    

     3.4 修改增加字段

      alter table 表名 ADD 属性名1  数据类型 [完整性约束条件] [FIRST |AFTER 属性名2]

    增加没有约束条件的字段:
    alter table A add phone varchar(20)
    增加有完整约束条件的字段:
    alter table A add age int(4) not null;
    

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

      默认情况每次增加的字段。都在表的最后。

    alter table tt add num int(8) primary key first; 
    

     执行在那个位置插入新的字段,在phone后面增加

    alter table A add address varchar(30) not null after phone;
    

    总结:

    (1)默认add增加字段是在最后面增加

    (2)如果想在表的最前端增加字段用first关键字

    (3)如果想在某一个字段后面增加的新的字段,使用after关键字

    3.5 删除一个字段

      alter table 表名 drop 属性名;

    举例:删除A表的age字段
    alter table A drop age;
    

    3.6 更改表的存储引擎

      alter table 表名 engine=存储引擎

    alter table A engine=MYISAM
    

     3.7 删除表的外键约束

      alter table 表名 drop foreign key 外键别名;

    四.  删除表的方法

    4.1 删除没有被关联的普通表

      drop table 表名;

    4.2 删除被其他表关联的父表

      在数据库中某些表之间建立了一些关联关系。一些成为了父表,被其子表关联,要删除这些父表,就不是那么简单了。

      删除方法:先删除所关联的子表的外键,再删除主表。

      1.先用show create table 子表名 G;查看子表的外键别名
      2.再alter table 子表名 drop foreign key 外键别名;删除外键别名
      3.此时可以用drop table 父表名;删除父表了

  • 相关阅读:
    springboot+fegin实现负载均衡
    springcloud实现微服务服务注册、负载均衡
    spring boot服务状态监控+shell远程连接服务
    微服务基础概念及相关技术组件
    集群分布式基础概念及了解
    http第一章-telnet测试
    spring整合netty

    springMVC+spring+JPA配置文件
    CAN信号值解析
  • 原文地址:https://www.cnblogs.com/xiami-xm/p/5729668.html
Copyright © 2011-2022 走看看