mySQL
管几页
学生
展开
-
mySQL笔记(二十四):索引2-索引优化explain
explain:语法:explain sql语句执行计划所包含的信息:id | select_type | table | type | possible_keys | key | key_len | ref | rows | filteredid:表的读取顺序id相同:可以认为是一组,从上往下顺序执行 id不同:如果是子查询,id序号会递增,id值越大的优先级越高,越先被执行。...原创 2020-02-23 20:54:09 · 208 阅读 · 0 评论 -
mySQL笔记(二十三):索引1-简介、结构、分类
索引官方定义:索引(index)是帮助mysql高效获取数据的数据结构。一般来说索引本身很大,不可能全部存在内存中,因此索引往往以索引文件的形式存储在磁盘上。优势:提高数据检索的效率,降低数据库IO成本; 通过索引对数据进行排序,降低数据排序的成本,降低了CPU消耗。劣势:虽然索引大大提高了查询速度,同时会降低更新表的速度。 实际上索引也是一张表,保存了主键与索引字段,并指向...原创 2020-02-23 19:13:41 · 188 阅读 · 0 评论 -
mySQL笔记(二十二):存储引擎
常用存储引擎:Innodb引擎:是mySQL的默认事务型引擎,被设计用来处理大量的短期事务,优先考虑使用。 Myisqm引擎:提供了大量特性,包括全文索引,压缩,空间函数(GIS)等,但myisam不支持事务和行级锁,有一个毫无疑问的缺陷就是崩溃后无法安全恢复。系统表常用。Myisam和innodb的对比:1、外键和事务:myisam不支持,innodb支持;2、行表锁:myis...原创 2020-02-23 14:53:09 · 161 阅读 · 0 评论 -
mySQL笔记(二十一):mysql基础补充:函数
含义:一组预先编译好的sql语句的集合,理解成批处理语句,减少了编译次数和与数据库服务器的连接次数,提高了效率。与存储过程类似,区别:存储过程:可以有0个返回也可以有多个返回,适合做批量输入,批量更新函数:有且只有一个返回,适合做处理数据后返回一个结果语法:###创建create function 函数名(函数列表) returns 返回类型begin 函数体...原创 2020-02-22 21:55:40 · 198 阅读 · 0 评论 -
mySQL笔记(十九):mysql基础补充:视图
含义:虚拟表,和普通表一样使用,mysql5.1版本出现的新特性,数据是通过表动态生成的。视图只保存了sql逻辑,不保存查询结果。应用场景:— 多个地方用到同样的查询结果 — 该查询结果使用的sql语句较复杂好处:重用sql语句 简化复杂的sql操作,不必知道他的查询细节 保护数据,提高安全性。创建视图语法: create view 视图名...原创 2020-02-22 21:06:58 · 125 阅读 · 0 评论 -
mySQL笔记(十八):JDBC的使用5
1、事务* 使用步骤: * 1、开启新事务 * 取消隐式事务自动提交的功能 * setAutoCommit(false); * 2、编写组成事务的一组sql语句 * 3、结束事务 * commit();提交 ...原创 2020-02-21 23:03:21 · 83 阅读 · 0 评论 -
mySQL笔记(十七):JDBC的使用4:JDBC相关API
JDBC相关API:**DriverManager驱动管理类**registDriver(Driver对象):注册驱动,不推荐使用getConnection(url,user,pwd):获取连接**Connection 连接对象接口**createStatement():生成命令对象prepareStatement(sql):生成预编译命令对象**Statement命令...原创 2020-02-21 22:53:12 · 127 阅读 · 0 评论 -
mySQL笔记(十六):JDBC的使用3
* PreparedStatement和Statement的区别* 关系:* 1、都属于执行sql语句的命令接口,都提供了一系列执行sql语句的方法* 2、PreparedStatement继承了Statement* PreparedStatement的好处:* 1、不再使用+拼接sql语句,减少语法错误,语义性强* 2、将模板sql(固定的部分)和参数部分进行了分离,...原创 2020-02-21 22:48:43 · 104 阅读 · 0 评论 -
mySQL笔记(十五):JDBC的使用2
JDBC的使用步骤1:加载驱动* 类的加载时机:* 1、new 对象* 2、加载子类* 3、调用类中的静态成员* 4、通过反射* 使用new对象的方式加载类的不足:* 1、属于编译期加载,如果编译期间该类不存在,则直接编译报错,也就是依赖性太强* 2、导致driver对象创建了两遍,效率较低* 采用反射的方式加载类* 1...原创 2020-02-21 22:46:26 · 99 阅读 · 1 评论 -
mySQL笔记(十四):JDBC的使用1
JDBC:Java Database Connectivity:java和数据库的连接技术,sun公司推出的一套java应用程序访问数据库的技术规范。规范:抽象类或接口Java.sql包下的一组接口或抽象类Javax.sql包下的一组接口* JDBC的简单步骤前提:eclipse准备musql的驱动包,加载到项目中:复制mysql-connector-java...原创 2020-02-21 22:13:32 · 115 阅读 · 0 评论 -
mySQL笔记(十三):事务
#事务transaction control language 事务控制语言概念:由一条或多条sql语句组成,要么都成功,要么都失败事务的四大特性:ACID 原子性 一致性 隔离性 持久性分类: 隐式事务:没有明显的开启和结束标记 比如DML中的insert,update,delete语句本身就是一条事务 显...原创 2020-02-21 22:07:52 · 97 阅读 · 0 评论 -
mySQL笔记(十二):DML语言
DML(Data Manipulation Language)数据操纵语言:涉及到的关键字:insert update delete对表中的数据的增删改#DML语言#一、数据的插入/*语法:插入单行: insert into 表名(字段名1,字段名2 ,...) values (值1,值2,...);插入多行: insert into 表名(字段名1,字段名2 ,...原创 2020-02-20 13:51:10 · 211 阅读 · 0 评论 -
mySQL笔记(十一):DDL语言
Data Define Language数据定义语言,用于对数据库和表的管理和操作。#DDL语言#库管理-- 1、创建数据库CREATE DATABASE stuDB;CREATE DATABASE IF NOT EXISTS stuDB;-- 2、删除数据库DROP DATABASE stuDB;DROP DATABASE IF EXISTS stuDB;#表管理...原创 2020-02-19 23:22:50 · 115 阅读 · 0 评论 -
mySQL笔记(十):DQL语言
DQL(Data Query Language)数据查询语言DQL语言:1、基础查询2、条件查询3、排序查询4、常见函数5、分组查询6、连接查询7、子查询8、分页查询9、联合查询SQL查询语句的定义顺序和执行顺序1)定义顺序(书写顺序)SELECT DISTINCT 查询列表FROM 表名 别名JOIN 表名 别名ON 连接条件...原创 2020-02-19 23:18:54 · 136 阅读 · 0 评论 -
mySQL笔记(九):联合查询
#进阶9:联合查询/*说明:当查询结果来自于多张表,但多张表之间没有关联,这个时候往往使用联合查询,也称为union查询语法:select 查询列表 from 表1 where 筛选条件 unionselect 查询列表 from 表2 where 筛选条件 特点:1、多条待联合的查询语句的查询列数必须一致,查询类型、字段意义最好一致2、union实现去重查询 ...原创 2020-02-19 20:20:17 · 168 阅读 · 0 评论 -
mySQL笔记(八):分页查询
#进阶8:分页查询/*应用场景:当页面的数据一页显示不全,则需要分页显示分页查询的sql命令请求数据库服务器->服务器响应查询到的多条数据->前台页面语法:select 查询列表from 表名where 筛选条件limit 起始条目索引,显示的条目数执行顺序: from join on where group by having select or...原创 2020-02-19 19:59:59 · 236 阅读 · 0 评论 -
mySQL笔记(七):子查询
#进阶7:子查询/*说明:当一个查询语句中又嵌套了另一个完整的select语句,则被嵌套的select语句称为子查询或内查询外面的select语句称为主查询或外查询。分类:按子查询出现的位置进行分类:1、select后面 要求:子查询的结果为单行单列(标量子查询)2、from后面 结果可以为多行多列3、where或having后面 子查询的结果必须为单列 单行子查询 ...原创 2020-02-19 19:29:22 · 141 阅读 · 0 评论 -
mySQL笔记(六):连接查询
#进阶6:连接查询/*含义:又称多表查询,当查询的字段来自多个表时笛卡尔乘积现象:表1 有m行,表2有n行,结果=m*n行 发生原因:没有有效的连接条件 如何避免:添加有效的连接条件 分类:按年代分类: sql92标准:仅仅支持内连接 sql99标准【推荐】:支持内连接、外连接(左外和右外)、交叉连接 按功能分类: 内连接: 等值连接 非等值连接 自连接...原创 2020-02-19 15:39:48 · 135 阅读 · 0 评论 -
mySQL笔记(五):分组查询
#进阶5:分组查询/*语法:select 查询列表from 表名where 筛选条件group by 分组列表having 分组后筛选order by 排序列表;执行顺序: from子句 where子句 group by 子句 having子句 select子句 order by子句 特点:1、查询列表往往是分组函数和被分组的字段2、分组查询中的筛选分为两...原创 2020-02-18 22:24:52 · 194 阅读 · 0 评论 -
mySQL笔记(四):常见函数
#进阶4:常见函数/*函数:相当于java中的学过的”方法“,为了解决某个问题,编写一系列的命令集合封装在一起。对外仅仅暴露方法名,供外部调用。1、自定义方法函数2、调用方法(函数) 叫什么:函数名 干什么:函数功能 常见函数:1、字符函数2、数学函数3、日期函数4、流程控制函数*/#一、字符函数1、CONCAT拼接字符SEL...原创 2020-02-18 21:17:28 · 137 阅读 · 0 评论 -
mySQL笔记(三):排序查询
#进阶三:排序查询/*语法:select 查询列表from 表名【where 筛选条件】order by 排序列表执行顺序:1、from子句2、where子句3、select子句4、order by子句特点:1、排序列表可以是单个字段、多个字段、表达式、函数、列数、以及以上的组合2、升序,通过asc,默认行为 降序,通过desc*/#一、单个字段排序#...原创 2020-02-18 16:32:26 · 166 阅读 · 0 评论 -
mySQL笔记(二):条件查询
#进阶二:条件查询/*语法:select 查询列表from 表名where 筛选条件;执行顺序:1、from子句2、where子句3、select子句特点:1、按关系表达式筛选关系运算符:> < >= <= = <>不等于 !=也支持但不建议2、按逻辑表达式筛选逻辑运算符:and or not 补充:也可以使用&&...原创 2020-02-18 15:58:14 · 268 阅读 · 0 评论 -
mySQL笔记(一):基础查询
#进阶一:基础查询/*语法:select 查询列表 from 表名;特点:1、查询的结果集 是一个虚拟表2、select 查询列表 类似于system.out.println(打印内容);select后面跟的查询列表可以有多个部分组成,中间用逗号隔开例如:select 字段1,字段2,表达式 from 表;System.out.println()的打印内容只能有一个。3、...原创 2020-02-18 12:14:16 · 134 阅读 · 0 评论