![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
大数据——关系型数据库Mysql
关系型数据库Mysql的基本操作
友培
感觉数据+AI之美
展开
-
mysql——获取子结点所有父结点
Mysql-获取子结点所有父结点分享一下mysql中获取子结点所有父结点,原始数据如下:注意观察,根节点父结点为0,这是循环结束条件,下面看过程DELIMITER $$USE `usmsc` $$DROP FUNCTION IF EXISTS `getParents` $$CREATE DEFINER=`root`@`%` FUNCTION `getParents`(self_Id VARCHAR(40)) RETURNS VARCHAR(1000) CHARSET utf8 ##定义返回原创 2022-02-09 21:00:48 · 1339 阅读 · 0 评论 -
Mysql的索引: Btree索引、 B+tree索引
1、Btree索引MySQL使用的是Btree索引。【初始化介绍】 一颗b树,白色的块我们称之为一个磁盘块,可以看到每个磁盘块包含几个数据项(紫色所示)和指针(蓝色所示),如磁盘块1包含数据项17和35,包含指针P1、P2、P3,P1表示小于17的磁盘块,P2表示在17和35之间的磁盘块,P3表示大于35的磁盘块。【查找过程】如果要查找数据项29,那么首先会把磁盘块1由磁盘加载到内存,此时发生一次IO,在内存中用二分查找确定29在17和35之间,锁定磁盘块1的P2指针,内存时间因为原创 2020-12-25 19:06:27 · 810 阅读 · 0 评论 -
表使用索引及常见的索引失效的情况(mysql)
#建表语句CREATE TABLE `dept` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `deptName` VARCHAR(30) DEFAULT NULL, `address` VARCHAR(40) DEFAULT NULL, ceo INT NULL , PRIMARY KEY (`id`)) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;CREATE TABLE `emp` ( `原创 2020-12-25 19:00:14 · 580 阅读 · 0 评论 -
mysql自学笔记十一(Navicat Premium 15)
#流程控制结构/*顺序结构:程序从上往下依次执行分支结构:程序从两条或多条路径中选择一条去执行循环结构:程序在满足一定条件的基础上,重复执行一段代码*/#分支结构#1、if函数/*功能:实现简单的双分支语法:select if(表达式1,表达式2,表达式3)执行顺序:如果表达式1成立,则if函数返回表达式的2的值,否则返回表达式3的值应用:任何地方*/#2、case结构情况1:类似于java中的switch语句,一般用于实现的等值判断语法: case 变量|表原创 2020-12-24 22:12:39 · 378 阅读 · 0 评论 -
jdbc作业题
需求:后台用户管理系统 //id(主键) username password name age sex String 注册 登录(查询一个)查询所有 修改(只能修改本身) 注销(只能注销本身) 退出登录之后 才能实现的功能为 查询所有 修改 删除 退出1.void 登录(username,passowrd){select * from user where username=xx and password=xx;idif(rs时是否登录成功){} }2.注销void 注销(){原创 2020-12-24 20:04:23 · 277 阅读 · 6 评论 -
mysql进阶--shell操作mysql
#/bin/shMYSQL="mysql -h192.168.18.140 -uroot -p123456 --default-character-set=utf8"sql="select * from stu.stu"result="$($MYSQL -e "$sql")"echo -e "$result"原创 2020-12-24 11:33:40 · 108 阅读 · 1 评论 -
mysql自学笔记十(Navicat Premium 15)
#存储过程和函数/*存储过程和函数:类似于java中方法好处:1、提高代码的重用性2、简化操作*/#存储过程/*含义:一组预先编译好的sql语句的集合,理解成批处理语句1、提高代码的重用性2、简化操作3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率*/#一、创建语法create procedure 存储过程名(参数列表)begin 存储过程体(一组合法的sql语句)end注意:1、参数列表包含三部分参数模式 参数名 参数类型举原创 2020-12-24 09:03:07 · 317 阅读 · 0 评论 -
mysql自学笔记九(Navicat Premium 15)
#主表如何删除从表所绑定的外键列?/*方式一:级联删除在从表设置外键的时候可以添加 on delete cascade;方式二:级联置空在从表设置外键的时候可以添加 on delete set null;*/#自增长列/*特点:1、不用手动的插入值,可以自动的提供序列值,默认从1开始,步长为1auto_increment_increment如果要更改起始值:手动拆入值如果要更改步长:更改系统变量set auto_increment_increment=值;2、一个表至原创 2020-12-23 14:41:55 · 453 阅读 · 0 评论 -
mysql自学笔记八(Navicat Premium 15)
#视图/*含义:虚拟表,和普通表一样的使用mysql5.1版本出现的新特性,是通过动态生成的数据 创建语法的关键字 是否实际物理空间 使用视图 create view 只是保存了sql逻辑 增删改查,只是一般不能增删改表 create table 保存了数据 增删改查*/#一、创建视图/*语法:create view 视图名as查询语句;*/#1、查询邮箱中包原创 2020-12-23 14:29:23 · 353 阅读 · 0 评论 -
mysql自学笔记七(Navicat Premium 15)
#常见的数据类型/*数值型: 一、整型:TINYINT、SMALLINT、MEDIUMINT、int/INTEGER、BIGINT(字节数从左到右:1 2 3 4 8 ) 特点: ①如果不设置无符号数还是有符号,默然是有符号的,如果想设置无符号的,需要添加unsigned关键字 ②如果插入的数值超过了整型的范围,会报out of range 异常,并且插入临界值 ③如果不设置长度,会有默认的长度,长度代表着下面是的最大宽度,如果不够会用0在左边填充,搭原创 2020-12-23 14:28:38 · 1021 阅读 · 0 评论 -
mysql自学笔记六(Navicat Premium 15)
#分页查询/*应用场景:当要显示的数据。一夜显示不全的时候,需要分页提交sql请求语法: select 查询列表 from 表 【join type join 表2 on 连接条件 where 筛选条件 group by 分组字段 having 分组后的筛选 order by 排序后的字段】 limit offest,size; offest 要显示条目的起始索引(起始索引从0开始) size 要显示的条目个数特点: ①limit语句放在查询原创 2020-12-23 14:27:53 · 450 阅读 · 0 评论 -
mysql自学笔记五(Navicat Premium 15)
#子查询/*含义:出现在其他语句中的select语句,称为子查询或内查询分类:按子查询出现的位置: select后面: 仅仅支持标量子查询 from后面: 支持表子查询 where或having后面: 标量子查询 列子查询 行子查询 exists后面(相关子查询) 表子查询 按结果集的行列数不同:原创 2020-12-23 14:27:04 · 211 阅读 · 0 评论 -
mysql自学笔记四(Navicat Premium 15)
#连接查询/*含义:又称为多表查询,当查询的字段来自于多个表时,就会用到连接查询笛卡尔乘积现象:表1 有m行,表2有n行,结果为=m*n行发生原因:没有有效的连接条件如何避免:添加有效的连接条件分类: 按年代分类 sq192标准 sq199标准【推荐】 按功能分类: 内连接: 等值连接 非等值连接 自连接 外连接: 左外连接原创 2020-12-23 14:26:00 · 258 阅读 · 0 评论 -
mysql自学笔记三(Navicat Premium 15)
#分组查询/*语法: select 分组函数,列(要求出现在group by的后面) from 表 where 筛选条件 GROUP BY 分组的列表 order by 子句注意: 查询列表必须特殊,要求分组函数是group by后出现的字段特点: 1、分组前的筛选条件分为两类 数据源 位置 关键字 分组前筛选 原始表 group by子句的前面 where 分组后筛原创 2020-12-23 14:24:48 · 269 阅读 · 0 评论 -
mysql自学笔记二(Navicat Premium 15)
select version(); #查看版本号select user(); #查看当前用户#流程控制函数#1、IF函数 类似于三元表达式select IF(10>5,'大于','小于');select last_name,commission_pct,if(commission_pct,'有奖金,可以','没奖金,哈哈哈') from employees;#2、case函数的使用一:switch case的效果/*case 要判断的字段或者表达式when 常量 then原创 2020-12-23 14:23:36 · 425 阅读 · 0 评论 -
mysql自学笔记一(Navicat Premium 15)
#日期函数:#返回当前系统的时间select now();#curdate 返回当前系统日期,不包含日期select curdate();#curtime 返回当前时间,不包含日期select curtime();#可以获取指定的部分,年、月、日、小时、分钟、秒select year(now()) 年;select year('1998-1-1');select year(hiredate) 年 from employees;select month(now()) 月;se原创 2020-12-23 14:22:12 · 491 阅读 · 0 评论 -
mysql中str函数小练习(Navicat Premium 15)
#函数小练习 求每七天的平均数create table demo(datetime date,var int(11))ENGINE=INNODB default CHARSET='utf8';insert into demo (datetime,var) values('2018-6-1',10),('2018-6-2',11),('2018-6-3',11),('2018-6-4',12),('2018-6-5',14),('2018-6-6',15),('2018-6-7',原创 2020-12-21 20:23:48 · 261 阅读 · 0 评论 -
mysql中sql92和sql99分析(Navicat Premium 15)
#一、sq192标准#1、等值连接/*①多表的等值连接的结果为多表的交集部分②n表连接,至少需要n-1连接条件③多表的顺序没有要求④一般需要为表起别名⑤可以搭配前面所有的查询子句使用,比如排序、分组、筛选*/#查询女神名和对应的男神名select name,boyName from boys,beauty where beauty.boyfriend_id=boys.id;#查询部门名对应的员工名select department_name,last_name from empl原创 2020-12-19 22:50:36 · 328 阅读 · 1 评论 -
mysql查询基本操作三(Navicat Premium 15)
student表中内容如下:#获取当前年月日时分秒函数select CURRENT_TIMESTAMP;#日期转换为字符串的函数select DATE_FORMAT(now(),'%Y-%m-%d');select DATE_FORMAT('2017-09-01','%Y,%m,%d');#字符串转换为时间 #注意:select用于显示结果时间格式一定要给正确select STR_TO_DATE('2020-09-01 12:12:12','%Y-%m-%d %H:%i:%s');原创 2020-12-19 16:06:35 · 1559 阅读 · 1 评论 -
mysql查询基本操作二(Navicat Premium 15)
student表中内容如下:/* limit分页 格式1:limit 数字; 数字表示从头开始显示多少行 格式2:limit 数字1,数字2; 数字1表示开始位置 数字2表示显示行数*/select * from student limit 5;select * from student limit 2,3;/*distinct 去重 格式:distinct 字段1,字段2...字段n 例如:select distinct name,age from stud原创 2020-12-18 18:39:44 · 1212 阅读 · 1 评论 -
mysql查询基本操作一(Navicat Premium 15)
student表中内容如下:-- 删除表中的所有数据delete from student;-- 查看表中的所有信息select * from student;/*修改表结构: 修改表名:rename table 表名 to 表名 添加字段:alter table 表名 add 字段名称 字段属性....; 修改字段:alter table 表名 change 旧字段名称 字段名称 字段属性...; 修改字段:alter tblae 表名 modify 字段名称 字段属性....原创 2020-12-18 18:38:12 · 2585 阅读 · 2 评论 -
mysql员工表练习(Navicat Premium 15)
一 将下列数据插入mysql表。DROP TABLE IF EXISTS `emp`;CREATE TABLE `emp` ( `EMPNO` int(4) NOT NULL, `ENAME` varchar(10) DEFAULT NULL, `JOB` varchar(9) DEFAULT NULL, `MGR` varchar(10) DEFAULT NULL, `HIREDATE` date DEFAULT NULL, `SAL` int(7) DEFAULT NULL原创 2020-12-16 23:17:11 · 2533 阅读 · 0 评论