一.表约束

  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支持多种类型,大致可以分为三类:

  • 数值日期/

  • 时间

  • 字符串(字符)类型。

笔记2:MYSQL 表操作的更多相关文章

  1. Python 3 mysql 表操作

    Python 3 mysql 表操作 表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段 id,name,qq,age称为字段,其余的,一行内容称为 ...

  2. (2.3)学习笔记之mysql基础操作(表/库操作)

    本系列学习笔记主要讲如下几个方面: 本文笔记[六:表操作--线上可以直接删除表吗?] 附加:库操作 [1]创建制定字符集的数据库 需求描述: 在创建DB的时候指定字符集. 操作过程: 1.使用crea ...

  3. Python学习笔记15—mysql的操作

    安装 Python-MySQLdb pip install mysql-Python Python对mysql的操作 建立一个实验数据库demo mysql> create database d ...

  4. 数据库 -- mysql表操作

    一,存储引擎介绍 存储引擎即表类型,mysql根据不同的表类型会有不同的处理机制 详见:https://www.cnblogs.com/peng104/p/9751738.html 二,表介绍 表相当 ...

  5. 8.3 mysql 表操作

    库操作 一 系统数据库 information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息.列信息.权限信息.字符信息等    performance_sch ...

  6. MySQL表操作及数据操作

    表操作 表相当于一个文件,其形式与现实中的表格相同.表中的每条记录都有相应的字段,字段就类似于表格的表头. 表操作详细: #对表进行操作(文件) #首先要切换到指定库(即文件夹)下:use db1; ...

  7. SQL学习笔记三之MySQL表操作

    阅读目录 一 存储引擎介绍 二 表介绍 三 创建表 四 查看表结构 五 数据类型 六 表完整性约束 七 修改表ALTER TABLE 八 复制表 九 删除表 一 存储引擎介绍 存储引擎即表类型,mys ...

  8. Mysql笔记4数据表操作1

    1查看表的结构 (1)show create table +数据库名称 (2)desc+数据库名称 2修改表 (1)表中添加列 alter table 数据库名称 add column addr va ...

  9. (2.2)学习笔记之mysql基础操作(登录及账户权限设置)

    本系列学习笔记主要讲如下几个方面: 本文笔记[三:mysql登录][四:账户权限设置][五:mysql数据库安全配置] 三.mysql登录 常用登录方式如下: 四.账户权限设置 (4.1)查看用户表, ...

随机推荐

  1. react解决roadhog buildDll 【转】

    本地删了 node module 目录,重新安装的时候,提示 找了找,可如下解决 ------- 转自: https://www.cnblogs.com/huhanhaha/p/7605722.htm ...

  2. JAVA 分布式 - 分布式介绍

    什么是分布式系统? 要理解分布式系统,主要需要明白一下2个方面: 1.分布式系统一定是由多个节点组成的系统. 其中,节点指的是计算机服务器,而且这些节点一般不是孤立的,而是互通的. 2.这些连通的节点 ...

  3. 【Python】Java程序员学习Python(二)— 开发环境搭建

    巧妇难为无米之炊,我最爱的还是鸡蛋羹,因为我和鸡蛋羹有段不能说的秘密. 不管学啥,都要有环境,对于程序员来说搭建个开发环境应该不是什么难题.按顺序一步步来就可以,我也只是记录我的安装过程,你也可以滴. ...

  4. maven 结合mybaits整合框架,打包时mapper.xml文件,mapper目录打不进war包去问题

    首先,来看下MAVENx项目标准的目录结构: 一般情况下,我们用到的资源文件(各种xml,properites,xsd文件等)都放在src/main/resources下面,利用maven打包时,ma ...

  5. 1.CSS基础简介

    一.基础简介 1.简介 CSS(Cascading Style Sheet)可译为“层叠样式表”或“级联样式表”,它定义如何显示 HTML 元素,用于控制Web页面的外观.通过使用CSS实现页面的内容 ...

  6. ARM CPU 架构

    1978年12月5日,物理学家赫尔曼·豪泽(Hermann Hauser)和工程师Chris Curry,在英国剑桥创办了CPU公司(Cambridge Processing Unit),主要业务是为 ...

  7. I/O复用及epoll基础知识

    IO multiplexing IO multiplexing这个词可能有点陌生,但是如果我说select,epoll,大概就都能明白了.有些地方也称这种IO方式为event driven IO.我们 ...

  8. SqlServer查询存储过程中包含指定的内容

    存储过程太多,有时只记得存储过程里面的某一点类容,想要找到对应的存储过程: SELECT obj.Name 存储过程名, sc.TEXT 存储过程内容 FROM syscomments sc INNE ...

  9. C++ 入门随手笔记及联系

    一.第一个C++程序 1.文件扩展名  C++源代码的文件扩展名.cpp.C.cxx.c(需要指定编译语言)  自定义的头文件依然保留.h 2.头文件  C++标准库的头文件不带.h,最常用的是ios ...

  10. Fuckey V1.0 Beta版发布!!!

    Fuckey,以前叫FullNexus4,只因为当时想做一个软件给自己的Nexus 4,方便方便一下,不过这名字感觉太局限了,毕竟很多朋友不是使用的Nexus 4的手机,但却还是使用了FullNexu ...