![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
文章平均质量分 66
以Mysql为主,学习数据库相关知识。学习资料选择为动力节点老杜的课程。
枸杞仙人
这个作者很懒,什么都没留下…
展开
-
Mysql练习题13道(21-33题)
练习列出薪金高于公司平均薪金的所有员工, 所在部门, 上级领导, 雇员的工资等级列出与"SCOTT" 从事相同工作的所有员工及部门名称列出薪金等于部门 30 中员工的薪金的其他员工的姓名和薪金列出薪金高于在部门 30 工作的所有员工的薪金的员工姓名和薪金. 部门名称列出在每个部门工作的员工数量, 平均工资和平均服务期限列出所有员工的姓名、部门名称和工资。列出所有部门的详细信息和人数列出各种工作的最低工资及从事此工作的雇员姓名列出各个部门的 MANAGER( 领导) 的最低薪金列出所有员工的 年工资, 按 年原创 2021-02-13 12:23:53 · 779 阅读 · 0 评论 -
Mysql 练习题10道(11-20题)
练习取得最后入职的 5 名员工取得每个薪水等级有多少员工列出所有员工及领导的姓名列出受雇日期早于其直接上级的所有员工的编号,姓名,部门名称列出部门名称和这些部门的员工信息, 同时列出那些没有员工的部门列出至少有 5 个员工的所有部门列出薪金比"SMITH" 多的所有员工信息列出所有"CLERK"( 办事员) 的姓名及其部门名称, 部门的人数列出最低薪金大于 1500 的各种工作及从事此工作的全部雇员人数列出在部门"SALES"< 销售部> 工作的员工的姓名, 假定不知道销售部的部门编号.取得最原创 2021-02-10 17:30:43 · 354 阅读 · 0 评论 -
Mysql 练习题10道(1-10题)
练习取得每个部门最高薪水的人员名称哪些人的薪水在部门的平均薪水之上取得部门中(所有人的)平均的薪水等级不准用聚合函数max,取得最高薪水取得平均薪水最高的部门的部门编号取得平均薪水最高的部门的部门名称求平均薪水的等级最低的部门的部门名称取得比普通员工(员工代码没有在mgr 字段上出现的) 的最高薪水还要高的领导人姓名取得薪水最高的前五名员工取得薪水最高的第六到第十名员工取得每个部门最高薪水的人员名称第一步:取得每个部门最高薪水(按照部门编号分组,找出每一组最大值)select max(sal) m原创 2021-02-10 16:34:08 · 211 阅读 · 0 评论 -
Mysql数据库设计三范式
三范式什么是设计范式第一范式第二范式第三范式三范式总结一对多多对多一对一主键共享外键唯一(创造伪主键)什么是设计范式设计表的依据。按照这个三范式设计的表不会出现数据冗余。第一范式任何一张表都应该有主键,并且每一个字段原子性不可再分。不符合第一范式的示例:学生编号学生姓名联系方式1001张三zs@gmail.com,13599999991002李四ls@gmail.com,136999999991001王五ww@163.net,1348888888原创 2021-02-08 14:56:43 · 126 阅读 · 0 评论 -
Mysql的DBA命令(导入和导出)
导入和导出导入导出导入source sql脚本导出mysqldump 数据库名 表名 > 存储位置 -uroot -p密码其中表名是可选项,不选就是导出整个数据库。原创 2021-02-07 15:30:16 · 206 阅读 · 0 评论 -
Mysql视图
视图概述基本语法创建视图删除视图视图作用面向视图操作概述视图是一种根据查询(也就是SELECT表达式)定义的数据库对象,用于获取想要看到和使用的局部数据。视图有时也被成为“虚拟表”。视图可以被用来从常规表(称为“基表”)或其他视图中查询数据。相对于从基表中直接获取数据,视图有以下好处:访问数据变得简单可被用来对不同用户显示不同的表的内容基本语法创建视图create view view名 as select ... from ...;删除视图drop view view名视原创 2021-02-07 15:13:02 · 107 阅读 · 0 评论 -
Mysql索引
索引概述基本语法创建索引对象:删除索引对象:适用场景索引原理索引分类索引的失效索引应用查看sql语句的执行计划创建索引查看索引概述索引就相当于一本书的目录,通过目录可以快速的找到对应的资源。在数据库方面,查询一张表的时候有两种检索方式:第一种方式:全表扫描第二种方式:根据索引检索(效率很高)索引为什么可以提高检索效率呢?其实最根本的原理是缩小了扫描的范围。索引虽然可以提高检索效率,但是不能随意的添加索引,因为索引也是数据库当中的对象,也需要数据库不断的维护。是有维护成本的原创 2021-02-07 14:29:36 · 113 阅读 · 0 评论 -
Mysql事务(Transaction)
事务概述基本术语事务的四大特性:ACID事务的执行逻辑事务的隔离级别一致性问题四个隔离级别隔离级别与一致性问题的关系设置服务器缺省隔离级别通过修改配置文件设置通过命令动态设置隔离级别隔离级别的作用范围查看隔离级别演示事务自动提交模式准备表演示自动提交模式概述一个事务是一个完整的业务逻辑单元,不可再分。比如:银行账户转账,从A账户向B账户转账10000。需要执行两条update语句:一是A账户减10000,二是B账户加10000:update t_act set balance = balance -原创 2021-02-06 14:21:05 · 295 阅读 · 0 评论 -
Mysql存储引擎
存储引擎完整的建表语句(包括存储引擎的选择)什么是存储引擎查看当前mysql版本支持的存储引擎常见的存储引擎MyISAMInnoDB(缺省引擎)MEMORY选择合适的存储引擎完整的建表语句(包括存储引擎的选择)CREATE TABLE `t_x` ( `id` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;建表的时候可以指定存储引擎,也可以指定字符集。mysql默认使用的存储引擎是InnoDB方式,默认采用的字符集是U原创 2021-02-06 10:35:07 · 104 阅读 · 0 评论 -
Mysql约束
约束基本概念非空约束 not null唯一性约束列级唯一性约束表级唯一性约束主键约束单一主键复合主键使用表级约束方式定义主键主键值自增外键约束基本语法:关于外键约束的相关术语案例引入顺序要求:注意点基本概念什么是约束?在创建表的时候,可以给表的字段添加相应的约束,添加约束的目的是为了保证表中数据的合法性、有效性、完整性。常见的约束有哪些呢?非空约束(not null):约束的字段不能为NULL唯一约束(unique):约束的字段不能重复主键约束(primary key):约束的字段既不能为原创 2021-02-05 15:34:33 · 1157 阅读 · 4 评论 -
Mysql 添加、修改和删除数据
添加、修改和删除insert语法格式例1:字段名和值一一对应例2:插入的字段顺序不影响结果:例3:可以只插入部分字段,其余全部为NULL。例4:可以省略字段名但必须符合顺序和个数例5:一次插入多行数据例6:复制表例7:将查询结果插入到表例8:插入日期方法1:插入的日期格式和显示的日期格式一致方法2:采用str_to_date方法3:添加系统日期(now())update语法格式例:将部门10的LOC修改为SHANGHAI,将部门名称修改为HRdelete语法格式例1:普通数据删除例2:删除大量数据例3:删除原创 2021-02-04 16:28:18 · 239 阅读 · 0 评论 -
Mysql 创建表
创建表基本语法格式字段的数据类型char和varchar怎么选择?BLOB和CLOB类型的使用?案例基本语法格式建表语句的语法格式:create table 表名( 字段名1 数据类型(长度), 字段名2 数据类型(长度), 字段名3 数据类型(长度), ....);创建表的时候,表中有字段,每一个字段有:* 字段名* 字段数据类型* 字段长度限制* 字段约束字段的数据类型名称含义int整数型(java中的int)bigint长整型(java中的原创 2021-02-03 13:55:37 · 3683 阅读 · 0 评论 -
Mysql limit语句
limit简介基础语法执行顺序通用的标准分页sql简介mySql提供了limit ,主要用于提取前几条或者中间某几行数据。limit是mysql特有的,其他数据库中没有,不通用。(Oracle中有一个相同的机制,叫做rownum)基础语法select * from table limit m,n其中m是指记录开始的index,从0开始,表示第一条记录n是指从第m+1条开始,取n条。select * from tablename limit 2,4即取出第3条至第6条,4条记录。案例1:取出原创 2021-02-03 10:47:45 · 1116 阅读 · 0 评论 -
Mysql Union语句
UnionUnion 可以将查询结果相加案例:找出工作岗位是SALESMAN 和 MANAGER的员工方法1:select ename,job from emp where job='Manager' or job = 'SALESMAN';方法2:select ename,job from emp where job in ('manager'.'salesman');方法3:select ename,job from emp where job = 'manager' union sel原创 2021-02-02 20:31:28 · 182 阅读 · 0 评论 -
Mysql子查询
子查询在where语句中使用子查询案例1:找出高于平均薪资的员工信息。案例2:查询员工信息,查询哪些人是管理者在from语句中使用子查询案例1:找出每个部门平均薪水的等级。案例2:找出每个部门平均的薪水等级。案例三 查询员工信息,查询哪些人是管理者在select语句中使用子查询案例:找出每个员工所在的部门名称select语句当中嵌套select语句,被嵌套的select语句是子查询。子查询可以出现在哪里?select…(select).from…(select).where…(select)原创 2021-02-02 19:48:38 · 287 阅读 · 0 评论 -
Mysql 连接查询
连接查询笛卡尔积现象怎么避免笛卡尔积现象内连接等值连接SQL92(太老了不用)SQL99非等值连接SQL99自连接SQL99外连接什么是连接查询?在实际开发中,大部分的情况下都不是从单表中查询数据,一般都是多张表联合查询取出最终的结果。一般一个业务都会对应多张表,比如:学生和班级,起码两张表。大量信息存储到一张表中,数据会存在大量的重复,导致数据的冗余。根据语法出现的年代来划分的话,包括:SQL92(一些老的DBA可能还在使用这种语法。DBA:DataBase Administrator,数据库管理原创 2021-02-01 18:26:21 · 83 阅读 · 0 评论 -
Mysql 分组查询
分组查询group byhaving不使用分组函数使用分组函数select语句总结分组查询主要涉及到两个子句,分别是:group by和having。group by : 按照某个字段或者某些字段进行分组。having : having是对分组之后的数据进行再次过滤。group by取得每个工作岗位的工资合计,要求显示岗位名称和工资合计。select job,sum(sal) from emp group by job;| job | sum(sal) |+-----------原创 2021-01-31 15:18:37 · 242 阅读 · 0 评论 -
Mysql 分组函数/聚合函数/多行处理函数
分组函数/聚合函数/多行处理函数count分组函数又名聚合函数、多行处理函数。特点是输入多行,最终输出的结果是1行。表达式含义count取得记录数sum求和avg取平均max取最大的数min取最小的数分组函数自动忽略空值,不需要手动的加where条件排除空值。select count(*) from emp where xxx; 符合条件的所有记录总数。select count(comm) from emp; comm这个字段中原创 2021-01-31 14:22:15 · 334 阅读 · 0 评论 -
Mysql数据排序
排序数据普通字段排序按照单一字段排序按照多个字段排序手动指定排序顺序单个字段手动排序多个字段手动排序普通字段排序按照单一字段排序排序采用order by子句,order by后面跟上排序字段,排序字段可以放多个,多个采用逗号间隔,order by默认采用升序,如果存在where子句那么order by必须放到where语句的后面。select * from emp order by sal;| EMPNO | ENAME | JOB | MGR | HIREDATE | SAL原创 2021-01-31 11:47:13 · 209 阅读 · 0 评论 -
Mysql 条件查询
Mysql条件查询等号、小于号、大于号操作符等号操作符大于号操作符(小于号类比)<>号操作符between...and... 操作符is null 操作符and 操作符or 操作符表达式的优先级in 运算符not 运算符like 操作符语法格式:select 字段1,字段2… from 表名 where 条件;执行顺序:先from,然后where,最后select运算符说明=等于<>或!=不等于<小于<=小于等于原创 2021-01-29 15:47:26 · 153 阅读 · 0 评论 -
Mysql简单查询
Mysql简单的查询查询一个字段或多个字段查询一个字段:查询多个字段:字段可以参与数学运算:给查询结果的列重命名:别名有中文:as 关键字可以省略查询所有字段查询一个字段或多个字段语法格式:select 字段名1,字段名2,字段名3,… from 表名;提示: 1、任何一条sql语句以“;”结尾。 2、sql语句不区分大小写。查询一个字段:select ename from emp;| ename |+--------+| SMITH || ALLEN || WARD原创 2021-01-29 15:04:23 · 80 阅读 · 0 评论 -
Mysql常用命令(非SQL语句)
Mysql常用命令查看mysql版本创建数据库查询当前使用的数据库终止一条语句退出mysql查看现有的数据库查看当前库中的表查看其他库中的表查看表的结构查看表的创建语句本文所有命令都是mysql特有的常用命令,不是SQL,不与Oracle通用。查看mysql版本•MySQL程序选项具有以下两种通用形式:–长选项,由单词之前加两个减号组成–短选项,由单个字母之前加一个减号组成mysql --versionmysql Ver 8.0.23 for osx10.15 on x86_64 (Home原创 2021-01-29 09:28:19 · 296 阅读 · 0 评论 -
Mysql 数据库概述及数据准备
数据库概述及数据准备SQL概述什么是数据库MySql概述MySql的安装表SQL的分类导入演示数据表结构描述本文以动力节点老杜Mysql课程为蓝本,相应教材为参考资料,加上本人的理解和感悟组成。SQL概述SQL,一般发音为sequel,SQL的全称Structured Query Language),SQL用来和数据库打交道,完成和数据库的通信,SQL是一套标准。但是每一个数据库都有自己的特性别的数据库没有,当使用这个数据库特性相关的功能,这时SQL语句可能就不是标准了.(90%以上的SQL都是通用的原创 2021-01-28 16:45:27 · 222 阅读 · 0 评论