• MySQL笔记下


    目录

    ?

    #学生信息表添加数据

    #一次添加一条数据

    #省略into

    #有约束的列添加信息

    #添加calss班级表信息

    #修改数据

    #修改单条数据

    #级联问题(主外键)

    #:主外建级关系修改

    #删除表数据

    #删除一行或者一条学生信息

    #根据主键删除信息

    分组

    #分组查询

    #1.单列查询

    #2.多列分组

    分组查询后规定条件: HAVING 筛选分组查询结果里面的条件

    多表链接

    1.内连接查询(等值查询):两个表或者两个表以上

    2. INNER JOIN 也可以不写


    本文是本人以前笔记,如果说是在掘金上看到的话没错,还是本人程程呀 的个人主页 - 动态 - 掘金只有这一个。如果有哪里不对的话欢迎各位大佬指出问题,本人是一个小白。

    上一篇文章链接为:MySQL笔记上_的博客-CSDN博客,本篇是下。

    如果是springboot的话请看springboot创建项目_的博客-CSDN博客,这个是从头开始的还没有学完springboot,一起学习呀!!!!

    #学生信息表添加数据

    #一次添加一条数据

    INSERT into student(stuid,stuname,stusex,studate,classid)
    
    values(1003,"小明","女","2020-05-08",202004)
    
    • 1
    • 2
    • 3

    #省略into

    INSERT student(stuid,stuname,stusex,studate,classid)
    
    values(1004,"小张","女","2020-05-08",202006)
    
    • 1
    • 2
    • 3

    #省略列名

    INSERT student VALUES(1006,"小花","女","2020-05-08",202007)
    
    • 1

    #一次添加多条数据

    INSERT student VALUES
    
    (1007,"小李","女","2020-05-08",202008),
    
    (1008,"小苏","女","2020-05-08",202009),
    
    (1009,"小周","女","2020-05-08",202010)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    #有约束的列添加信息

    #添加calss班级表信息

    INSERT class VALUES(4,"网络六班","2021-05-08 13:56:17",NULL,remark,3)
    
    • 1

    修改一条

    update?表名 set 字段1=值1?where?条件
    
    • 1

    #修改数据

    #修改单条数据

    #根据学生编号主键修改学生信息

    update student set Stuname="小宁",Stusex="男" WHERE Stuid=1003;
    
    • 1

    #修改多条数据

    update student set classid=1,
    
    Stusex="男"where Stuid in(1006,1007,1008)
    
    #UPDATE student set classid=1,Stusex="男",WHERE Stuid in(1006,1007,1008)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    #级联问题(主外键)

    -- 有主外级关系,并且有外键约束是不可以更改
    
    UPDATE student set classid=2022,Stusex="女"where Stuid in(1003,1006)
    
    • 1
    • 2
    • 3

    #:主外建级关系修改

    ALTER TABLE student DROP FOREIGN key fk_classid;
    
    • 1

    – 更改班级表中的班级编号和班级名称

    UPDATE calss set classid=110,classname='程程'WHERE classid=1;
    
    • 1

    #更改学生信息表中的classid=1

    UPDATE student set classid=1 where classid=1;
    
    • 1

    #重新添加外键约束

    ALTER TABLE student
    
    add CONSTRAINT fk_classid FOREIGN key(classid) REFERENCES calss(classid);
    
    • 1
    • 2
    • 3

    删除一条

    delete?from?表名?where?条件
    
    • 1

    #删除表数据

    #删除一行或者一条学生信息

    #根据主键删除信息

    delete FROM student WHERE stuid=1004;
    
    • 1

    #删除多行包含in

    delete FROM studentinfo WHERE stuid in(1003,1007);
    
    • 1

    #删除用truncate效率高

    truncate table studentinfo;
    
    • 1

    分组

    select?字段1,字段2?from 表名 group by?字段1;
    
    • 1

    #分组查询

    #1.单列查询

    #group by 分组
    
    SELECT Stusex 性别, count(Stusex) 人数 from student GROUP BY Stusex;
    
    • 1
    • 2
    • 3

    #2.多列分组

    SELECT??classid 班级编号 ,Stusex 性别, count(Stusex) 人数 from student GROUP BY classid,Stusex;
    
    • 1

    分组查询后规定条件: HAVING 筛选分组查询结果里面的条件

    SELECT??classid 班级编号 ,Stusex 性别, count(Stusex) 人数 
    from student 
    GROUP BY classid,Stusex HAVING Stusex='女';
    
    • 1
    • 2
    • 3

    多表链接

    1.内连接查询(等值查询):两个表或者两个表以上

    – 指令:inner join

    – 语法:SELECT 列 from 表一 [inner] join 表二 on <表达式>

    #学生信息表 和班级表 内连接查询

    – 等值的部分取出来 ,不同的就舍掉了表起一个别名

    SELECT s.Stuid??'学生编号', s.Stuname??'学生名称',s.Stusex '性别', s.Studate '入学时间', s.classid '班级编号(s表:外键)',
    
    c.classid '班级编号(c表:主键)',c.classname '班级名称', c.begintime '入学时间',c.endtime '结束时间',c.remark '备注',c.gradeid
    
    FROM student s INNER JOIN calss c on s.classid=c.classid;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2. INNER JOIN 也可以不写

    SELECT s.Stuid ‘学生编号’,s.Stuname ‘学生姓名’, s.Stusex ‘学生性别’, c.classid ‘班级编号(c表:主键)’, c.classname ‘班级名称’,

    c.gradeidFROM student s,calss c where s.classid=c.classid;

    SELECT s.Stuid’学生编号’, s.Stuname’学生名称’,s.Stusex ‘性别’, s.Studate ‘入学时间’, s.classid ‘班级编号(s表:外键)’,

    c.classid ‘班级编号(c表:主键)’,c.classname ‘班级名称’, c.begintime ‘入学时间’,c.endtime ‘结束时间’,c.remark ‘备注’,c.gradeid

    FROM student s , calss c where s.classid=c.classid;

    #自连接:等值匹配1,自己表中列匹配。只存在一张表中

    – 表自己连接自己

    SELECT??s1.classid 学生编号,s1.Stuname 学生姓名,s2.zid??组别 
    FROM student s1 JOIN student s2 on s1.zid=s2.Stuid;
    
    • 1
    • 2

    #自连接和内连接都用inner join inner 可以不写

    SELECT??s1.classid 学生编号,s1.Stuname 学生姓名,s2.zid??组别 
    FROM student s1 ,student s2 where s1.zid=s2.Stuid;
    
    • 1
    • 2

    #3.外连接:左外连接和右外连接(两个表及以上)

    – 左外连接:left join指定:不仅可以匹配到等值数据还可以匹配到左其他没有匹配到的数据

    SELECT s.Stuid??'学生编号',
    
    s.Stuname??'学生名称',
    
    s.classid '班级编号(s表:外键)',
    
    c.classid '班级编号(c表:主键)',
    
    c.gradeid '班级名称(c表:外键)'
    
    FROM student s LEFT JOIN calss c on s.classid=c.classid;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    本文是本人以前笔记,如果说是在掘金上看到的话没错,还是本人程程呀 的个人主页 - 动态 - 掘金只有这一个。如果有哪里不对的话欢迎各位大佬指出问题,本人是一个小白。

    如果是springboot的话请看springboot创建项目_的博客-CSDN博客,这个是从头开始的还没有学完springboot,一起学习呀!!!!

  • 相关阅读:
    RabbitMQ常用命令
    [python 刷题] 4 Median of Two Sorted Arrays
    腾讯待办停止运营怎么办?导出的ics文件数据怎么打开查看
    C++QT开发——QWidget
    pthread_create函数的应用
    stack&queue&priority_queue
    企业微信vs个人微信:对比对照一览表
    BSV 中的零开销私人时间戳
    快速上手Flask(一) 认识框架Flask、项目结构、开发环境
    MySQL-存储过程
  • 原文地址:https://blog.csdn.net/m0_67391521/article/details/126037295