MySQL
文章平均质量分 93
学习MySQL
马尔科686
这个作者很懒,什么都没留下…
展开
-
【MySQL】JDBC编程 (Java的数据库编程:JDBC 导入驱动包 MySQL Connector Java 编写JDBC代码 插入操作 查询操作)
是java发布程序的典型方式,java是通过.java源文件编译成.class文件,jvm来解释执行.class,所以我们要想发布一个程序给别人使用,只需要把程序.class文件拷贝给对方让他用他的jvm来解释执行就可以了.但是每个.java都一 一对应一个.class,如果代码里.java非常多,我们就把一大堆的.class打成压缩包(类似于.rar .zip),我们这块的压缩包就是.jar.此时把jar拷贝给对方,对方就可以使用jvm来运行了.(1)mysql的官方网站获取.原创 2023-06-08 15:51:55 · 2370 阅读 · 0 评论 -
【MySQL】索引事务 (索引 索引使用场景 B+树事务使用 事务的特性 隔离性 并发执行产生的问题和解决方法 脏读问题 不可重复读 幻读 隔离级别 read uncommitted ......)
事务A提交了数据,此时为版本1,然后事务B就开始读取这个数据,于是事务C又修改数据,修改完成后提交版本2,事务B本来在读版本1的数据,读着读着数据变样了突然变成了版本2,此时同一个事务2之内多次读数据,读出的结果是不同的(预期是一个事务总多次读取结果是一样的)这样的问题就叫做"不可重复读"(第二次读取的结果不能复现第一次的结果).数据库使用"串行化"这样的方式来解决幻读,彻底放弃并发处理事务,一个接一个的串行的处理事务.这样做并发程度是最低的(效率最慢),隔离性是最高的(准确性也是最高的).原创 2023-06-07 12:44:56 · 89 阅读 · 0 评论 -
【MySQL】表的增删查改(进阶版)(2) (查询结果作为新增数据 查询进阶 聚合查询 聚合函数 GROUP BY子句 HAVING 联合查询 内连接 外连接 自连接 子查询 单多行子查询 合并查询)
由于笛卡尔积是排列组合出来的结果,这里有些数据是无效的.真正有效的数据就四条,我们可以发现这些数据 的两个classId都相等.当我们去掉无效数据之后,笛卡尔积里剩余的数据就是当前每个同学在哪个班级 这样的信息了.一张表自己和自己做笛卡尔积.这个操作本质上是把行转成列.SQL中进行条件查询,都是指定某一列/多个列之间进行运算,无法行和行之间关系运算,为了实现行之间的比较,就需要用自连接把行关系转成列关系.就相当于把查询结果作为新增的数据插入.也有要求:查询结果得到的列数,类型需要和插入表的列数;原创 2023-06-06 20:13:32 · 223 阅读 · 4 评论 -
【MySQL】表的增删查改(进阶版)(1) (数据库约束 NOT NULL UNIQUE DEFAULT PRIMARY KEY FOREIGN KEY 表的设计 一对一 一对多 多对多)
表的设计就是根据需求,把表应该是啥样的写出来.比如:有几个表,每个表是干啥的,每个表有几个字段,啥类型,有啥约束.如果是简单的场景,设计无从谈起,因为如何建表是比较明显的.主键,一条记录,主要表示这条数据的身份标识,身份标识就是用来区分这条数据和其他数据的关键指标.比如:手机号码,身份照吗,学号.所以主键要求是唯一的并且不能为空.这样的约束可以是程序员人工来保证,也可以是程序自动保证.和计算机相比,人往往"不靠谱",计算机的存储能力,远远超过人类.计算机的纪律性也是远远超过人脑的.原创 2023-06-05 13:32:14 · 142 阅读 · 3 评论 -
【MySQL】表的增删查改(基础版)(指定列、全列、时间日期插入 全列、指定列查询 查询字段是表达式 查询时指定别名 去重DISTINCT 按照查询结果排序 条件查询:WHERE 基本查询 ...)
用户在客户端输入的sql,通过请求发送给服务器,服务器解析并执行sql把查询的结构从硬盘中读取出来,通过网络响应还给客户端,客户端把这些数据以"临时表"(只是在客户端显示一下的临时表,和服务器那边的硬盘上的表没啥关系)的形式展示出来.表达式查询,是让列和列之间进行运算而不是行和行.按照表达式查询,临时表的列名就和表达式是一样的,很多时候,表达式的含义是不直观的.在查询的时候制定筛选条件,符合条件的数据留下,不符合的直接pass,想查询需要先描述条件,sql就通过一系列的运算符来表示条件.原创 2023-06-04 22:51:58 · 248 阅读 · 5 评论