笔记2:MYSQL 表操作

一.表约束

  1.非空约束:not null

  作用:定义表的某一列不能为空。

>> alter table 表名 modify 列名 int not null;
   "添加非空约束"
>> alter table 表名 modify 列名 int;
   "取消非空约束"

  2.唯一约束:uniqe key

  作用:确定某一列不能存在相同的值。

>> alter table 表名 add unique key(列);
   "添加唯一约束"
>> alter table 表名 drop key 列;
   "取消唯一约束"

  3.主键约束:primay key

  作用:列中唯一标识一条数据,每张表里面只能有一个主键;主要是帮助MYSQL更快的查找某一条信息。

  特征:非空并唯一,当表里没有主键的时,默认第一个出现的非空并唯一的列就是主键。

>> alter table 表名 add primary key(列);
   "添加主键约束"
>> alter table 表名 drop primary key;
   "取消主键约束"

  4.外键约束:foreign key

  作用:保持数据的一致性,减少数据冗余,实现一对多关系。外键一般关联另一张表的主键。

>> alter table 需要外键的表 add constraint 外键名 foreign key(需要外键表的字段名) referencnes 关联表名(关联字段名);
"添加外键约束"(注意:外键名不能重复)
>> alter table 存在外键的表 drop foreign key 关联字段名;
"删除外键约束"

   5.自增长约束:auto_increment

  作用:自动编号。一般与主键组合使用。一个表里面只有一个自增,默认情况下起始值为1,每次增量为1

>> alter table 表名 modify 列 int auto_increment;
"添加自增长约束"
>> alter table 表名 modify 列 int;
"删除自增长约束"

  6.默认约束:default

  作用:没有插入数据时,自动赋予默认值。

>> alter table 表名 modify 列 int default 默认值;
"添加默认约束"
>> alter table 表名 modify 列 int;
"删除默认约束"

 

二.表关系

  1. 一对一关系:

  例:2张表通过主键进行关联。 学生信息表:学生表=1:1

#建立学生信息表:
create table student_details(
    id int primary key,
    sex varchar(20) not null,
    age  int,
    address varchar(20) comment '家庭住址',
    parents varchar(20),
    home_num varchar(20),
    foreign key (id) references student(s_id)
);

  2.一对多关系

  例:2张表通过外键进行关联。    学生表:学院表=n:1

##创建学生表
create table student(
   s_id int primary key auto_increment,   # 学生id
   s_name varchar(20) not null,                     # 学生名字
   dept_id int not null,            #  所属学院 id
   constraint SD_id foreign key(dept_id) references department(d_id)   #外键
);
#创建学院表
create table department( 
   d_id int primary key auto_increment,  # 学院id
   d_name varchar(20) not null        # 学院名
);

  3.多对多关系

   例:通过创建中间表进行关联 。  学生表:课程表=m:n

#建立课程表:
create table cours(
    cours_id int primary key auto_increment,
    cours_name varchar(20) not null 
);
# 选课表  (中间表)
create table `select`(
    s_id int,           #用来记录学生id
    cours_id int,       #用来记录 课程id
    primary key(s_id,cours_id),                # 联合主键 
    foreign key(s_id) references student(s_id),       #  关联学生id
    foreign key(cours_id) references cours(cours_id)  #  关联课程id
);

 

 三.数据类型

  MySQL支持多种类型,大致可以分为三类:

  • 数值日期/

  • 时间

  • 字符串(字符)类型。

 

 

 

posted @ 2019-03-21 16:36 想养猫的小周同学 阅读(...) 评论(...) 编辑 收藏