Mysql_练习
MysqL针对练习
HelloWorld__K
这个作者很懒,什么都没留下…
展开
-
19_流程控制结构
流程控制结构内容如下流程控制结构一、分支结构1.if函数2.case结构3.if结构二、循环结构1.while2.loop3.repeat例题 流程控制结构 顺序、分支、循环 一、分支结构 1.if函数 语法:if(条件,值1,值2) 功能:实现双分支 应用在begin end中或外面 2.case结构 语法: 应用在begin end 中或外面 情况1:类似于switch case 变量或表达式 when 值1 then 语句1; when 值2 then 语句2; ... else 语句n; end转载 2020-12-03 11:06:54 · 105 阅读 · 0 评论 -
18_函数
函数内容如下函数一、创建语法二、调用语法1.无参有返回2.有参有返回三、查看函数四、删除函数 函数 含义:一组预先编译好的SQL语句的集合,理解成批处理语句 1、提高代码的重用性 2、简化操作 3、减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率 区别: 存储过程:可以有0个返回,也可以有多个返回,适合做批量插入、批量更新 函数:有且仅有1 个返回,适合做处理数据后返回一个结果 一、创建语法 CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型 BEGIN 函数体原创 2020-12-03 10:01:23 · 251 阅读 · 0 评论 -
17_存储过程
存储过程和函数内容如下存储过程一、创建语法二、调用语法案例演示1.空参列表案例:插入到admin表中五条记录2.创建带in模式参数的存储过程案例1:创建存储过程实现 根据女神名,查询对应的男神信息案例2 :创建存储过程实现,用户是否登录成功3.创建out 模式参数的存储过程案例1:根据输入的女神名,返回对应的男神名案例2:根据输入的女神名,返回对应的男神名和魅力值4.创建带inout模式参数的存储过程案例1:传入a和b两个值,最终a和b都翻倍并返回三、删除存储过程四、查看存储过程的信息 存储过程和函数:类似原创 2020-12-03 09:42:50 · 147 阅读 · 0 评论 -
16_变量
变量内容如下变量一、系统变量1、全局变量2、会话变量二、自定义变量1、用户变量赋值操作符:=或:=2、局部变量案例:声明两个变量,求和并打印 变量 系统变量: 全局变量 会话变量 自定义变量: 用户变量 局部变量 一、系统变量 说明:变量由系统定义,不是用户定义,属于服务器层面 注意:全局变量需要添加global关键字,会话变量需要添加session关键字,如果不写,默认会话级别 使用步骤: 1、查看所有系统变量 show global|【session】variables; 2、查看满足条件的部分系统原创 2020-12-03 10:21:28 · 152 阅读 · 0 评论 -
15_常见约束
常见约束内容如下一、创建表时添加约束1.添加列级约束查看stuinfo中的所有索引,包括主键、外键、唯一2.添加表级约束通用的写法:★二、修改表时添加约束1.添加非空约束2.添加默认约束3.添加主键4.添加唯一5.添加外键三、修改表时删除约束1.删除非空约束2.删除默认约束3.删除主键4.删除唯一5.删除外键 含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性 分类:六大约束 NOT NULL:非空,用于保证该字段的值不能为空 比如姓名、学号等 DEFAULT:默认,用于保证该字段有默认原创 2020-12-02 15:28:22 · 154 阅读 · 0 评论 -
14_标识列
#标识列 又称为自增长列 含义:可以不用手动的插入值,系统提供默认的序列值 特点: 1、标识列必须和主键搭配吗?不一定,但要求是一个key 2、一个表可以有几个标识列?至多一个! 3、标识列的类型只能是数值型 4、标识列可以通过 SET auto_increment_increment=3;设置步长 可以通过 手动插入值,设置起始值 #一、创建表时设置标识列 DROP TABLE IF EXISTS tab_identity; CREATE TABLE tab_identity( id INT , NAM原创 2020-12-02 10:10:46 · 161 阅读 · 0 评论 -
13_视图
视图内容如下案例:查询姓张的学生名和专业名一、创建视图1.查询姓名中包含a字符的员工名、部门名和工种信息2.查询各部门的平均工资级别3.查询平均工资最低的部门信息4.查询平均工资最低的部门名和工资二、视图的修改三、删除视图四、查看视图五、视图的更新1.插入2.修改3.删除具备以下特点的视图不允许更新①包含以下关键字的sql语句:分组函数、distinct、group by、having、union或者union all②常量视图③Select中包含子查询④join⑤from一个不能更新的视图⑥where子原创 2020-12-01 16:58:37 · 219 阅读 · 0 评论 -
12_TCL
TCL内容如下1.演示事务的使用步骤2.演示事务对于delete和truncate的处理的区别3.演示savepoint 的使用 Transaction Control Language 事务控制语言 事务: 一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行。 案例:转账 张三丰 1000 郭襄 1000 update 表 set 张三丰的余额=500 where name='张三丰' 意外 update 表 set 郭襄的余额=1500 where name='郭襄'原创 2020-12-01 18:11:45 · 74 阅读 · 0 评论 -
11_DDL
DDL内容如下常见的数据类型一、整型1.如何设置无符号和有符号二、小数测试M和D三、字符型四、日期型一、库的管理1、库的创建案例:创建库Books2、库的修改更改库的字符集3、库的删除二、表的管理1.表的创建 ★案例:创建表Book案例:创建表author2.表的修改①修改列名②修改列的类型或约束③添加新列④删除列⑤修改表名3.表的删除4.表的复制1.仅仅复制表的结构2.复制表的结构+数据3.只复制部分数据4.仅仅复制某些字段 数据定义语言 库和表的管理 一、库的管理 创建、修改、删除 二、表的管理 创建、原创 2020-12-01 14:12:17 · 90 阅读 · 0 评论 -
10_DML语言
DML语言内容一、插入语句方式一:经典的插入1.插入的值的类型要与列的类型一致或兼容2.不可以为null的列必须插入值。可以为null的列如何插入值?3.列的顺序是否可以调换4.列数和值的个数必须一致5.可以省略列名,默认所有列,而且列的顺序和表中列的顺序一致方式二:两种方式大pk ★1、方式一支持插入多行,方式二不支持2、方式一支持子查询,方式二不支持二、修改语句1.修改单表的记录★案例1:修改beauty表中姓唐的女神的电话为13899888899案例2:修改boys表中id好为2的名称为张飞,魅力值原创 2020-12-01 10:54:23 · 238 阅读 · 0 评论 -
09_联合查询
联合查询内容如下引入的案例:查询部门编号>90或邮箱包含a的员工信息案例:查询中国用户中男性的信息以及外国用户中年男性的用户信息 union 联合 合并:将多条查询语句的结果合并成一个结果 语法: 查询语句1 union 查询语句2 union ... 应用场景: 要查询的结果来自于多个表,且多个表没有直接的连接关系,但查询的信息一致时 特点:★ 1、要求多条查询语句的查询列数是一致的! 2、要求多条查询语句的查询的每一列的类型和顺序最好一致 3、union关键字默认去重,如果使用union all原创 2020-11-30 23:26:21 · 92 阅读 · 0 评论 -
08_分页查询
分页查询内容如下分页查询 分页查询 应用场景:当要显示的数据,一页显示不全,需要分页提交sql请求 语法: select 查询列表 from 表 【join type join 表2 on 连接条件 where 筛选条件 group by 分组字段 having 分组后的筛选 order by 排序的字段】 limit 【offset,】size; offset要显示条目的起始索引(起始索引从0开始) size 要显示的条目个数 特点: ①limit语句放在查询语句的最后 ②公式 要显示的页数 page,原创 2020-11-30 21:47:48 · 104 阅读 · 0 评论 -
07_子查询
子查询内容如下子查询一、where或having后面1.标量子查询(一行一列)★2.列子查询(一列多行)★3、行子查询(结果集一行多列或多行多列)二、select后面案例:查询每个部门的员工个数案例2:查询员工号=102的部门名三、from后面案例:查询每个部门的平均工资的工资等级①查询每个部门的平均工资②连接①的结果集和job_grades表,筛选条件平均工资 between lowest_sal and highest_sal四、exists后面(相关子查询)案例1:查询有员工的部门名inexists案原创 2020-11-30 15:30:40 · 192 阅读 · 0 评论 -
06_连接查询
sql99语法内容如下语法:内连接(一)等值连接案例1.查询员工名、部门名案例2.查询名字中包含e的员工名和工种名(添加筛选)3. 查询部门个数>3的城市名和部门个数,(添加分组+筛选)①查询每个城市的部门个数②在①结果上筛选满足条件的案例4.查询哪个部门的员工个数>3的部门名和员工个数,并按个数降序(添加排序)①查询每个部门的员工个数② 在①结果上筛选员工个数>3的记录,并排序5.查询员工名、部门名、工种名,并按部门名降序(添加三表连接)(二)非等值连接查询员工的工资级别查询工资级别的个原创 2020-11-29 15:21:40 · 172 阅读 · 0 评论 -
05_分组查询group by
分组查询group by分组查询案例引入:查询每个部门的员工个数1.简单的分组案例1:查询每个工种的员工平均工资案例2:查询每个位置的部门个数2、可以实现分组前的筛选案例1:查询邮箱中包含a字符的 每个部门的最高工资案例2:查询有奖金的每个领导手下员工的平均工资3、分组后筛选案例:查询哪个部门的员工个数>5①查询每个部门的员工个数② 筛选刚才①结果案例2:每个工种有奖金的员工的最高工资>12000的工种编号和最高工资案例3:领导编号>102的每个领导手下的最低工资大于5000的领导编号和最原创 2020-11-27 17:33:54 · 175 阅读 · 0 评论 -
04_常见函数
单行函数主要内容1. 显示系统时间(注:日期+时间)2. 查询员工号,姓名,工资,以及工资提高百分之20%后的结果(new salary)3. 将员工的姓名按首字母排序,并写出姓名的长度(length)4. 做一个查询,产生下面的结果5. 使用case-when,按照下面的条件: 1. 显示系统时间(注:日期+时间) SELECT NOW(); 2. 查询员工号,姓名,工资,以及工资提高百分之20%后的结果(new salary) SELECT employee_id,last_name,salary,s原创 2020-11-27 16:21:43 · 262 阅读 · 0 评论 -
03_排序查询
排序查询内容如下排序查询案例1、按单个字段排序2、添加筛选条件再排序3、按表达式排序4、按别名排序5、按函数排序6、按多个字段排序例题 排序查询 语法: select 查询列表 from 表名 【where 筛选条件】 order by 排序的字段或表达式; 特点: 1、 asc代表的是升序,可以省略 desc代表的是降序 2、order by子句可以支持 单个字段、别名、表达式、函数、多个字段 3、order by子句在查询语句的最后面,除了limit子句 案例 1、按单个字段排序 SELECT原创 2020-11-27 15:33:16 · 241 阅读 · 0 评论 -
02_条件查询
条件查询内容如下语法:题目一、按条件表达式筛选二、按逻辑表达式筛选三、模糊查询2.between and3.in4、is nullis null pk <=> 语法: select 查询列表 from 表名 where 筛选条件; 分类: 一、按条件表达式筛选 简单条件运算符:> < = != <> >= <= 二、按逻辑表达式筛选 逻辑运算符: 作用:用于连接条件表达式 && || ! and or not &&a原创 2020-11-27 14:50:06 · 273 阅读 · 0 评论 -
01_基础查询
基础查询内容如下1. 下面的语句是否可以执行成功2.下面的语句是否可以执行成功3.找出下面语句中的错误4.显示表departments的结构,并查询其中的全部数据5.显示出表employees中的全部job_id(不能重复)6.显示出表employees的全部列,各个列之间用逗号连接,列头显示成OUT_PUT 1. 下面的语句是否可以执行成功 SELECT last_name , job_id , salary AS sal FROM employees; 答:可以正常执行 2.下面的语句是否可以执行成功原创 2020-11-27 11:38:27 · 120 阅读 · 0 评论