数据库之表的相关操作
1.表的操作:
 1、创建表的语法:
        create table 表名(
              id   int(10)   primary key auto_increment,
            字段1 类型[(宽度) 约束条件],
            字段1 类型[(宽度) 约束条件],
            字段1 类型[(宽度) 约束条件],);
 2、给表添加数据的操作:
  insert into 表名(字段名) valuse(数据)
3.约束相关:
 1.约束是除了数据类型以外额外添加的约束是为了保证数据的合法性,完整性
 2.约束分类
  not null 非空约束  数据不能为空
            create table student (id ind,name char(10) not null);
        default  默认值约束   可以指定字段的默认值
            create table user (id ind,sex char(1) default "woman");
        unique   唯一性约束  该字段的值不能重复
            1.unique其实是一种索引,用于提高查询效率
                可以为空一张表中可以有多个唯一约束
            2.单列唯一约束
                create table t5(idcard char(18) unique);
              多列联合唯一约束
                create table t6(idcard char(18),phonenumber char(11),unique(idcard,phonenumber));
        primary key  ******   称之为主键约束
            1.用于唯一标识表中一条记录
            2.primary key:单单从约束角度去看,primary key就等同于not null unique
    1、一张表中必须有,并且只能有一个主键
    2、一张表中都应该有一个id字段,而且应该把id字段做成主键
    3、同一个表中不可以有多个主键,没有任何意义
            3.语法:create table stu (stuid int primary key);
            4.有主键 和没有主键的区别
                1.无法区分两个相同记录 比如班级里有两个人名字相同
                2.有主键则意味有这索引  效率更高
                3.可以建立关联关系
            5.多列联合主键:
                create table t8(idcard char(18),phonenumber char(11),primary key(idcard,phonenumber));
  auto_increment ****** 自动增长,只能用于整型,默认起始位置是1,步长也为1
   1、通常与primary key连用,而且通常是给id字段加
   2、auto_incremnt只能给被定义成key(unique key,primary key)的字段加
   3、如果主键是自动增长,你可以跳过这个字段,也可以为它插入null,都可以
            4、修改自动增长的起始位置  **
    alter table t9 auto_increment = 7;
  foreign key ****** 外键:专门用于为表和表之间,建立物理关联(分表的结合),
   1、约束1:在创建表时,先建被关联的表dep,才能建关联表emp
    先创建关联表
     create table dep(id int primary key auto_increment,manager char(10));
    再创建被关联表,(foreign key)外键加到从表上
     create table emp(id int primary key auto_increment,dept_id int,foreign key(dept_id) references dept(id));
   2、约束2:在插入记录时,必须先插被关联的表dep,才能插关联表emp
   3、约束3:更新与删除都需要考虑到关联与被关联的关系
    主表dep应该先插入 ,从表emp后插入
                在删除主表dep前,要保证从表emp都删除了
                在更新部门编号前,要先保证没有员工关联到这个部门
   4、级联操作  指的是就是同步更新和删除
    语法:在创建外键时  在后面添加  on update cascade同步更新   on delete cascade同步删除
     create table class(id int primary key auto_increment);
        create table student(id int primary key auto_increment,
      c_id int,
      foreign key(c_id) references class(id) on update cascade on delete cascade);
   5、多对多关系的处理:
      建立一个第三方表 ,专门存储两个表之间的关系
      这个关系表 应该有两个字段  分别关联学生的id  和老师的id
      为了保证  数据的合法性 完整性 给这两个字段都添加外键约束   
       create table t_s (t_id int,
       s_id int auto_incremnt primary key,  #为了避免重复无用的关系数据  关系表加上关联的主键约束
       foreign key(t_id) references teacher(id),
       foreign key(s_id) references student(id),
       primary key(t_id,s_id)
       );

day40数据库之表的相关操作的更多相关文章

  1. [MySQL数据库之表的详细操作:存储引擎、表介绍、表字段之数据类型]

    [MySQL数据库之表的详细操作:存储引擎.表介绍.表字段之数据类型] 表的详细操作 存储引擎 mysql中建立的库======>文件夹 库中建立的表======>文件 用来存储数据的文件 ...

  2. MYSQL--表与表之间的关系、修改表的相关操作

    表与表之间的操作: 如果所有信息都在一张表中: 1.表的结构不清晰 2.浪费硬盘空间 3.表的扩展性变得极差(致命的缺点) 确立表与表之间的关系.一定要换位思考(必须在两者考虑清楚之后才能得出结论) ...

  3. 【Java框架型项目从入门到装逼】第九节 - 数据库建表和CRUD操作

    1.新建学生表 这节课我们来把和数据库以及jdbc相关的内容完成,首先,进行数据库建表.数据库呢,我们采用MySQL数据库,我们可以通过navcat之类的管理工具来轻松建表. 首先,我们得建一个数据库 ...

  4. Oracle language types(语言种类) 表的相关操作 DDL数据定义语言

    数据定义语言 Data Definition Language Statements(DDL)数据操纵语言 Data Manipulation Language(DML) Statements事务控制 ...

  5. 对mysql数据库表的相关操作

    虫师博客(Python使用MySQL数据库(新)): https://www.cnblogs.com/fnng/p/3565912.html 1.更改表的结构,增加一个字段放置新增的属性 alter ...

  6. MySQL(3) - 数据库表的相关操作

    1.数据库表的创建 逻辑库 1)创建逻辑库:CREATE DATABASE 逻辑库名称; 2)显示逻辑库:SHOW DATABASES; 3)删除逻辑库:DROP DATABASE 逻辑库名称; 数据 ...

  7. Mac下安装MySQL、Workbench以及建数据库建表最基础操作

    刚用上Mac,什么都不懂,加之以前还没有用过mysql,就想着在Mac上装一个mysql来自己玩,奈何,在网上找了大半天,没有一个干货!愤怒!下面是我安装的过程,希望能帮到和我情况差不多的朋友   首 ...

  8. Oracle之表的相关操作

    #添加字段 格式: alter table table_name add column_name datatype; 例子: alter table userinfo ); desc userinfo ...

  9. MySQL表的相关操作

    操作数据表之前,必须先选择相应数据表所在的数据库 mysql> USE databaseName; -- 选择数据库 查看该数据库下的数据表 mysql> show tables; 确定数 ...

随机推荐

  1. 结对作业——WordCount进阶版

    Deadline: 2018-10-7 22:00PM,以博客提交至班级博客时间为准 要求参考来自:https://www.cnblogs.com/xinz/archive/2011/11/27/22 ...

  2. [Codeforces771E]Bear and Rectangle Strips

    Problem 给你一个2*n的矩阵,要求你用补充叠的矩阵去框,要求每个矩阵框中的数之和为0,问最多可以用几个矩阵. Solution 首先预处理出一个点到离它最近的一段和为0的区间的左端点 然后到这 ...

  3. .net core IIS/Kestrel上传大文件的解决方法

    大文件,就是内容的大小超过了一定数量的文件,比如1个GB的文件. 站点一般会限制上传文件的大小,如果超过了一定限制,则会报错误. 在处理大文件上传的方式上,IIS代理和Kestrel宿主服务器的处理方 ...

  4. Scrapy爬虫框架中的两个流程

    下面对比了Scrapy爬虫框架中的两个流程—— ① Scrapy框架的基本运作流程:② Spider或其子类的几个方法的执行流程. 这两个流程是互相联系的,可对比学习. 1 ● Scrapy框架的基本 ...

  5. [HAOI2007]反素数

    这道题其实就是求在 [1,n] 的区间内,那个数的约数个数最多,如果同样多,取最小... 那么我们只需要把质因数分解反过来做,然后更新答案就好了... 素数不需要筛出来,直接打表就好,因为只能用到几个 ...

  6. js添加锚点

    <div name="1F" id="1F"></div> <div class="top_img displayno& ...

  7. Python实现基于DES加密源码的文本加密器

    这是自行制作的一个DES文本加密工具 最终效果图: 本加密器支持UTF-8字符的加解密(包含中文),由于其中的编码方式与常用编码方式不同,加密结果与网上工具不同,但是能实现正常加解密. 最终目标: 目 ...

  8. JAVA将汉字转换为全拼以及返回中文的首字母,将字符串转移为ASCII码

    import net.sourceforge.pinyin4j.PinyinHelper;import net.sourceforge.pinyin4j.format.HanyuPinyinCaseT ...

  9. C#如何运行外部程序(打开可执行程序):ShellExcute和Process

    最近的任务用到C#来调用C++内核程序,也就是C++编译运行后生成的.exe文件.网搜了一下C#中运行外部程序大致有两种方法,在此稍作总结: (1)使用API函数ShellExcute 添加引用 us ...

  10. WEBBASE篇: 第九篇, JavaScript知识4

    JavaScript 4 练习1 <!doctype html> <html lang="en"> <head> <meta charse ...