- 博客(35)
- 收藏
- 关注
原创 mysql补充知识(查缺补漏)
INSERT INTO users1 VALUES(NULL, '乔峰', 7600.23, 'hello', '江西省赣州市于都县', '备注n');INSERT INTO users1 VALUES(NULL, '令狐冲', 9800.543, DEFAULT, DEFAULT, '备注1');VALUES('张无忌', 8600.25, NULL, NULL, '备注3');VALUES('韦小宝', 9258.56, DEFAULT, '备注2');VALUES('杨过', 9755.36);
2024-12-02 13:08:17
357
原创 mysql流程控制案例
代表截取长度,随机范围1-(20-startIndex+1)SET len = FLOOR(RAND() * (20 - startIndex + 1) + 1);#代表起始索引,随机范围1-26。SELECT rand_str(3) AS "随机字符串", LENGTH(rand_str(3)) AS 长度$
2024-12-02 13:05:49
468
原创 mysql流程控制结构
--------------------------------循环结构总结--------------------------------IF socre >= 90 AND socre <= 100 THEN SET result = 'A';#案例1:创建存储过程,实现传入成绩,如果成绩>90,返回A,如果成绩>80,返回B,如果成绩>60,返回C,否则返回D。#案例2:创建函数,实现传入成绩,如果成绩>90,返回A,如果成绩>80,返回B,如果成绩>60,返回C,否则返回D。
2024-12-02 13:05:18
559
原创 mysql中函数的注意事项以及局部变量的注意事项
INSERT INTO book(bName, price, bTypeId) VALUES ('倚天屠龙记', 88.56, 10);INSERT INTO book(bName, price, bTypeId) VALUES ('萍踪侠影', 36.72, 10);INSERT INTO book(bName, price, bTypeId) VALUES ('鹿鼎记', 57.29, 10);局部变量必须写在begin end中的开头,即必须写在begin end中的第一句话。
2024-12-02 13:04:47
535
原创 mysql中函数
------------------------------案例演示----------------------------#定义局部变量(注意:局部变量可以只声明,不初始化)#定义局部变量(注意:局部变量可以只声明,不初始化)#定义局部变量并赋值初始化。#注意:局部变量必须写在begin end中的开头,即必须写在begin end中的第一句话。
2024-12-02 13:04:16
228
原创 mysql存储过程案例
五、创建存储过程或函数实现传入女神名称,返回:女神 and 男神 格式的字符串。SET @result = ''$ #注意:用户变量要求声明时必须初始化。CALL test_pro1('建宁公主', '666888')$CALL test_pro1('双儿', '666888');CALL test_pro5('范冰冰', @result)$CALL test_pro5('黄圣依', @res)$CALL test_pro5('小昭', @res)$SELECT @result AS 结果$
2024-12-02 13:03:44
409
原创 mysql子查询中使用LIMIT的情况(子查询补充案例)
删除成功(#但是在有LIMIT关键字的子查询的外面再包一层就可以了),以下sql语句正确执行。#会报错(子查询中是不能使用LIMIT的)
2024-12-02 13:03:14
405
原创 mysql中LIMIT分页查询和OFFSET关键字(补充案例)
从第5条数据开始查,查3条记录(注意:第一条数据的索引是0,第二条数据的索引是1,以此类推)#从第5条数据开始查,查3条记录(注意:第一条数据的索引是0,第二条数据的索引是1,以此类推)查询admin表中前10条记录,换句话说,就是查询10条记录,并且是从第1条数据开始查。住,LIMIT分页查询时,索引是从0开始的,不是从1开始的,大家要切记,切记,切记,重。录有20条数据,第1条数据的索引是0,第2条数据的索引是1,以此类推,所以大家要记。(注意:第一条数据的索引是0,第二条数据的索引是1,以此类推)
2024-12-02 13:02:37
208
原创 mysql存储过程和函数
--------------------------------案例演示-----------------------------------#创建存储过程(注意:in关键字可以省略不写,因为默认就是in,但是不建议省略in,最好是写上in,可读性比较好)SELECT IF(result > 0, '登录成功', '登录失败') AS "登录状态";CALL myP7(@num1, @num2, @num3)$ #@num3没办法正常返回。#使用select方式赋值(SELECT @局部变量名:=值;
2024-12-02 13:01:57
679
原创 mysql中的级联删除和级联置空(补充知识点)
(NULL, '420102200808270010', '令狐冲', '男', '2008-08-27', '汉族', 4),(NULL, '360731199803120010', '韦小宝', '男', '1998-03-12', '汉族', 1),(NULL, '360731199605210010', '张无忌', '男', '1996-05-21', '汉族', 1),(NULL, '320100199311120010', '段誉', '男', '1993-11-12', '汉族', 5),
2024-12-02 13:01:27
338
原创 mysql中的变量知识点
SELECT @max_salary, CONCAT('企业最高薪水为', @max_salary, '元') AS 最高薪水;注意:全局变量需要添加global关键字,会话变量需要添加session关键字,如果不写,默认会话级别。我们去修改全局变量的值后,mysql服务一旦重启,修改的全局变量的值又会被还原成服务器默认的初始值)作用域:服务器每次启动将为所有的全局变量赋初始值,针对于所有会话(连接)有效,但不能跨重启(作用域:针对于当前会话(连接)有效,作用域同于会话变量。
2024-12-02 13:00:44
579
原创 mysql题目(视图、事务)
INSERT INTO Book(bid, bName, price, bTypeId) VALUES(2, '射雕英雄传', 39.62, 10);bTypeId 类型编号,要求引用BookType表的id字段。#4.修改视图,实现查询价格在90-120之间的书名和价格。#3.创建视图,实现查询价格大于100的书名和类型名。#2.开启事务,向表中插入1行数据,并结束。price 浮点数,要求有默认值10。#mysql题目(视图、事务)#5.删除刚才创建的视图。#修改视图(方式一)#修改视图(方式二)
2024-12-02 13:00:14
239
原创 mysql视图
UPDATE v1 SET bName = '新笑傲江湖' WHERE bName = '笑傲江湖';UPDATE v6 SET bName = '新射雕英雄传' WHERE bName='射雕英雄传';注意:对于特别简单的视图,是可以更新视图中的数据的,但是对于复杂的视图,是没办法更新视图中的数据的,#对视图进行插入数据的操作(下面这条sql语句,能更新视图中的数据,同时也更新了原始表中的数据)#对一个超级简单的视图,插入数据,可以成功插入数据,同时原始表中也相应的插入了该条数据。
2024-12-02 12:59:43
294
原创 mysql之TCL事务控制语言
Oracle 默认的事务隔。#(执行完后,效果是,account表中数据没有删掉了,ROLLBACK回滚有效,是因为后面设置了autocommit=0;INSERT INTO account VALUES(1, '令狐冲', 1000), (2, '任盈盈', 1000);#(执行完后,效果是,account表中数据没有删掉了,ROLLBACK回滚有效,是因为设置了autocommit=0;#(执行完后,效果是,account表中数据删掉了,ROLLBACK回滚无效,是因为设置了autocommit=1;
2024-12-02 12:59:10
850
原创 mysql标识列
通过语句 :SET auto_increment_increment = 数值设置步长。4、标识列可以通过 SET auto_increment_increment=3;可以通过手动插入该值的方法设置起始值,取巧方法,并非真正设置了起始值。#mysql中的标识列不支持设置起始值,但是支持设置步长。含义:可以不用手动的插入值,系统提供默认的序列值。2、一个表可以有几个标识列?3、标识列的类型只能是数值型。该列类型只能为数值型。#一、创建表时设置标识列。#二、修改表时设置标识列。#三、修改表时删除标识列。
2024-11-29 09:48:18
385
原创 mysql常见约束
gender CHAR(1) CHECK(gender='男' OR gender ='女'),#检查(虽然语法不会报错,但是该约束不起效果,即不支持检查约束)gender CHAR(1) CHECK(gender IN ('男', '女')),#检查(虽然语法不会报错,但是该约束不起效果,即不支持检查约束)countryId INT REFERENCES country(id)#外键(虽然语法不会报错,但是该约束不起效果,即不支持列级外键约束)行SHOW INDEX FROM myUser7;
2024-11-29 09:47:43
426
原创 mysql常见的数据类型
char char(M) 最大的字符数,可以省略,默认为1 固定长度的字符 比较耗费 高。varchar varchar(M) 最大的字符数,不可以省略 可变长度的字符 比较节省 低。1. 如果不设置无符号还是有符号,默认是有符号,如果想设置无符号,需要添加unsigned关键字。season ENUM('春', '夏', '秋', '冬')如果是float和double,则会根据插入的数值的精度来决定精度。
2024-11-29 09:47:11
272
原创 mysql库和表的案例
8.在表dept和emp5中添加新列test_column,并检查所作的操作。#2.将表departments中的数据插入新表dept2中(可以跨库)#5.根据表employees创建employees2。#9.直接删除表emp5中的列test_column。#7.将表employees2重命名为emp5。#4.将列Last_name的长度增加到50。#使用IF NOT EXISTS提高容错性。#(仅仅复制了表的结构,没有复制数据)#1.创建表dept1。#3.创建表emp5。#6.删除表emp5。
2024-11-29 09:46:41
355
原创 mysql数据定义语言(DDL)库和表
author.`aName`, author.`nation`, author.`id` FROM author WHERE nation = '中国';#FIRST和AFTER这2个关键字是在添加新列的时候,表示添加到哪个位置,这2个关键字用的比较少。CREATE TABLE 新表名(列名 列的类型【(长度) 约束】, ......);#把某张表中查询到的结果集插入到另一张表中(注意:另一张表指的是已经存在的表)#2.修改列的类型或约束,COLUMN关键字可以省略,建议不要省略。
2024-11-29 09:46:02
553
原创 mysql数据的增删改案例
7.将userid 为Bbiri的user表和my_employees表的记录全部删除。#5.将3号员工的last_name修改为“drelxer”#6.将所有工资少于900的员工的工资修改为1000。#1.运行以下脚本创建表my_employees。#3.向my_employees表中插入下列数据。#2.显示表my_employees的结构。#10.清空表my_employees。#4.向users表中插入数据。#mysql数据的增删改案例。#级联删除/修改多表。#9.检查所作的修正。
2024-11-29 09:45:31
329
原创 mysql中的DML语言(数据操作、操纵语言,增删查改)
VALUES(29,'张天爱','女','1989-03-08','13655558888',NULL,1),VALUES(32,'汤唯','女','1985-11-06','13733225588',NULL,2),(34,'杨紫','女','1992-05-16','13625694583',NULL,NULL);(30,'李嘉欣','女','1972-04-09','13699664433',NULL,3),
2024-11-29 09:44:57
1508
原创 mysql联合查询
SELECT c.`c_id`, c.`c_name`, c.`c_sex` FROM china c WHERE c_sex = '女'要查询的结果来自于多个表,且多个表没有直接的连接关系,但查询的信息一致时。#案例:查询中国用户中女性的信息以及外国用户中女性的用户信息。union 联合 合并:将多条查询语句的结果合并成一个结果。2、要求多条查询语句的查询的每一列的类型和顺序最好一致。#引入的案例:查询部门编号>90或邮箱包含a的员工信息。1、要求多条查询语句的查询列数是一致的!
2024-11-29 09:44:21
263
原创 #mysql案例和题目
(SELECT COUNT(*) FROM student WHERE sex = '男' AND student.`majorid` = stu.`majorid`) AS boy,(SELECT COUNT(*) FROM student WHERE sex = '女' AND student.`majorid` = stu.`majorid`) AS girl。#三、查询姓张的每个学生的最低分大于60的学号、姓名。#七、查询大于60分的学生的姓名、密码、专业名。#九、查询学生名、专业名、分数。
2024-11-29 09:43:25
268
原创 #案例题目
8. 查询平均工资最高的部门的 manager 的详细信息: last_name, department_id, email, salary。# 1. 查询工资最低的员工信息: last_name, salary。# 7. 各个部门中 最高工资中最低的那个部门的 最低工资是多少。# 3. 查询平均工资最低的部门信息和该部门的平均工资。# 5. 查询平均工资高于公司平均工资的部门有哪些?# 4. 查询平均工资最高的 job 信息。# 2. 查询平均工资最低的部门信息。#所有部门中,平均工资最低的。
2024-11-29 09:42:48
257
原创 mysql分页查询
DELETE FROM `author3` WHERE nation = '中国' LIMIT 2;①limit语句放在查询语句的最后(limit从语法上和执行上都是最后)#案例2:查询第11条到第25条(起始索引从10开始,显示15条)应用场景:当要显示的数据,一页显示不全,需要分页提交sql请求。offset要显示条目的起始索引(起始索引从0开始)#案例3:有奖金的员工信息,并且工资较高的前10名显示出来。要显示的页数 page,每页的条目数size。size 要显示的条目个数。where 筛选条件。
2024-11-27 12:39:07
414
1
原创 mysql子查询(重点难点)
(SELECT COUNT(*) FROM employees WHERE employees.`department_id` = dep.`department_id`) AS 个数。(SELECT COUNT(*) FROM employees WHERE employees.`department_id` = dep.`department_id`) AS 个数。#案例3:返回其它工种中比job_id为‘IT_PROG’工种所有工资都低的员工的员工号、姓名、job_id 以及salary。
2024-11-27 12:38:33
655
原创 mysql连接查询(sql99)
④inner join连接和sql92语法中的等值连接效果是一样的,都是查询多表的交集。#案例4.查询哪个部门的员工个数>3的部门名和员工个数,并按个数降序(添加排序)#一、查询编号>3的女神的男朋友信息,如果有则列出详细,如果没有,用null填充。#5.查询员工名、部门名、工种名,并按部门名降序(添加三表连接)#3. 查询部门个数>3的城市名和部门个数,(添加分组+筛选)#案例2.查询名字中包含e的员工名和工种名(添加筛选)#查询姓名中包含字符k的员工的名字、上级的名字。
2024-11-27 12:37:53
496
原创 mysql连接查询
选在city在Toronto工作的员工的last_name,job_id,department_id,department_name。#查询员工表的employee_id,last_name, job_id,按department_id降序,salary升序。#选择所有有奖金的员工的last_name,department_name,location_id,city。选择指定员工的姓名、员工号以及他的领导的姓名和员工号,结果类似于下面的格式 (自连接)emp01.employee_id AS 员工id,
2024-11-27 12:36:10
1361
原创 mysql分组查询
group by子句支持单个字段分组,多个字段分组(多个字段之间用,逗号隔开,没有顺序要求),表达式或函数(用的比较少)#1.查询各job_id的员工工资的最大值,最小值,平均值,总和,并按job_id升序。#案例,按员工姓名的长度分组,查询每一组的员工个数,筛选员工个数大于5的有哪些。#按多个字段进行分组,GROUP BY后面的字段之间,可以调换顺序,效果一样。#如果没有group by子句,group_concat返回一列的所有值。#案例查询每个部门的每个工种的员工的平均工资,并且按照工资的高低显示。
2024-11-27 12:35:34
1109
原创 mysql分组函数
(UNIX_TIMESTAMP(MAX(hiredate)) - UNIX_TIMESTAMP(MIN(hiredate)))/(60*60*24*365) 相差年。(UNIX_TIMESTAMP(MAX(hiredate)) - UNIX_TIMESTAMP(MIN(hiredate)))/(60*60*24) 相差天数,INNODB存储引擎下,COUNT(*)和COUNT(1)的效率差不多,比COUNT(字段)要高一些。#统计个数,推荐使用COUNT(*),不推荐使用COUNT(字段名)
2024-11-27 12:34:50
433
原创 mysql之常见函数
SELECT HOUR('2019-01-08 18:36:25') AS '时', MINUTE('2019-03-06 18:36:25') AS 分, SECOND('2019-02-09 18:36:25') "秒";SELECT YEAR('2019-01-08') AS 'year', MONTH('2019-03-06') AS 月, DAY('2019-02-09') "日";SELECT REPLACE('岳灵珊令狐岳灵珊冲喜欢岳灵珊', '岳灵珊', '任盈盈') AS result;
2024-11-27 12:34:18
324
原创 mysql入门之排序查询
案例查询员工信息,要求先按工资升序,再按员工编号降序【按多个字段排序】#3.查询邮箱中包含e的员工信息,并先按邮箱的字节数降序,再按部门号升序。#2.选择工资不在8000到17000的员工的姓名和工资,按工资降序。#1.查询员工的姓名和部门号和年薪,按年薪降序 按姓名升序。1、asc代表的是升序,可以省略,因为默认就是asc升序。#案例,按年薪的高低显示员工的信息和年薪【按表达式排序】#案例,按年薪的高低显示员工的信息和年薪【按别名排序】#按姓名的长度显示员工的姓名和工资【按函数排序】
2024-11-27 12:33:38
561
原创 mysql入门之条件查询
不会把_下划线当成通配符了,当然啦,你也可以使用其他字符作为转义字符,不一定要使用$美元符号作为转义字符,你可以使用a啦,b啦作为转义字符。#还有另外一种方式,使用ESCAPE关键字,ESCAPE关键字的作用是转义,mysql数据库中推荐大家使用ESCAPE,如下。使用escape关键字来定义转义符,把$定义为转义字符,如此一来,此时会把$后面的_下划线当成一个普通的_下划线字符,而。使用escape关键字来定义转义符,把a定义为转义字符,如此一来,此时会把a后面的_下划线当成一个普通的_下划线字符,而。
2024-11-27 12:26:49
850
原创 mysql入门之基础
SELECT salary "薪#水", last_name AS 'name', email "OUT put", phone_number 'num ber' FROM employees;SELECT IFNULL(`commission_pct`, 0) AS 奖金率, `commission_pct` FROM `employees`;SELECT CONCAT('江西省', '赣州市', '于都县') AS 家乡;last_name, `email`, "令狐冲", 'hellojack',
2024-11-27 12:24:02
497
原创 Nmap简单使用手册
名称:nmap 网络探测工具和安全/端口扫描器 用法:nmap [扫描类型 ...] [选项] {扫描目标说明} 描述:nmap(“Network Mapper(网络映射器)”)是一款开源的网络探测和安全审核的工具。它的设计目标是快速的扫描大型网络,当然用它扫描单个主机也是没问题的。Nmap以新颖的方式使用原始IP报文来发现网络上有哪些主机,那些主机提供社么服务(应用程序名和版本),那些服务运行在什么操作系统(包括版本信息),它们使用什么类型的报文过滤器/防火墙,以及一堆其他的功能。虽然Nmap通常用于
2024-11-27 12:20:56
1384
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人