![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
MySQL
文章平均质量分 66
1-20:DQL
pangpd
Just a boy caught up in dreams and fantasies !
展开
-
【MySQL】三十一、数据库设计三范式
文章目录口诀1. 什么是设计范式2. 三范式2.1 第一范式2.2 第二范式2.3 第三范式3. 三范式总结4. 一对一怎么设计?口诀第一范式:有主键,原子性,不可再分;第二范式:不可产生部分依赖;(多对多,三张表,关系表加外键。)第三范式:不可产生传递依赖;(一对多,两张表,多的表加外键。)一对一的设计:主键共享,外键唯一提醒: 在实际的开发中,以满足客户的需求为主,并非全部遵循三范式,有的时候会拿冗余换执行速度。1. 什么是设计范式设计表的依据。按照这个三范式设计的表不会出现数据冗余。原创 2021-03-02 11:25:08 · 398 阅读 · 0 评论 -
【MySQL】三十、数据库授权,数据的导入导出
1. 新建用户CREATE USER username IDENTIFIED BY 'password';说明:username——你将创建的用户名, password——该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.例如:create user p361 identified by '123';–可以登录但是只可以看见一个库 information_schema2. 授权 grant all privileges on dbname.tbname to 'u原创 2021-03-01 23:37:50 · 204 阅读 · 0 评论 -
【MySQL】二十九、视图(view)
文章目录1. 什么是视图2. 创建,删除视图3. 面向视图操作3.1 查看视图3.2 通过视图修改原表数据3.3 通过视图删除原表数据4. 视图的作用1. 什么是视图站在不同的角度去看到数据。(同一张表的数据,通过不同的角度去看待)。• 视图是一种根据查询(也就是SELECT表达式)定义的数据库对象,用于获取想要看到和使用的局部数据。• 视图有时也被成为“虚拟表”。• 视图可以被用来从常规表(称为“基表”)或其他视图中查询数据。相对于从基表中直接获取数据,视图有以下好处:访问数据变得简单原创 2021-03-01 23:21:11 · 167 阅读 · 0 评论 -
【MySQL】二十八、索引
文章目录1. 索引,作用explain关键字2. 创建索引对象3. 删除索引对象4.什么时候考虑给字段添加索引(满足什么条件)5. 索引实现原理原理1. 索引,作用索引就相当于一本书的目录,通过目录可以快速的找到对应的资源。在数据库方面,查询一张表的时候有两种检索方式:全表扫描根据索引检索(效率很高)索引为什么可以提高检索效率:其实最根本的原理是缩小了扫描的范围。索引虽然可以提高检索效率,但是不能随意的添加索引,因为索引也是数据库当中的对象,也需要数据库不断的维护。是有维护成本的。比如,原创 2021-03-01 22:34:07 · 131 阅读 · 0 评论 -
【MySQL】二十七、TCL——事务
1. 什么是事务?事务是一个完整的业务逻辑单元,不可再分。比如:银行账户转账,从A账户想B账户转账10000,需要执行两条update语句。update t_act set balance = balance - 10000 where acton = 'act-001';update t_act set balance = balance + 10000 where acton = 'act-002';以上两条DML语句必须同时成功,或者同时失败,不允许出现一条成功,一条失败。要想保证以上原创 2021-02-21 20:25:06 · 148 阅读 · 0 评论 -
【MySQL】三十二、MySQL34道作业题
文章目录1. 取得每个部门最高薪水的人员名称1. 取得每个部门最高薪水的人员名称第一步:取得每个部门的最高薪水;select deptno, max(sal) as maxsal from emp group by deptno;+--------+---------+| deptno | maxsal |+--------+---------+| 10 | 5000.00 || 20 | 3000.00 || 30 | 2850.00 |+--------+原创 2021-02-21 11:52:38 · 161 阅读 · 0 评论 -
【MySQL】二十六、存储引擎(了解知识)
文章目录1. 完整的建表语句2. 什么是存储引擎3. 查看当前MySQL支持的存储引擎4. 常见的存储引擎4.1 MyISAM4.2 InnoDB4.3 MEMORY1. 完整的建表语句我们创建一张表:create table t_x ( id int(11) DEFAULT NULL)我们使用show create table t_x 查看建表语句:+-------+-----------------------------------------------------------------原创 2021-02-21 11:25:43 · 120 阅读 · 0 评论 -
【MySQL】二十五、约束(非空,唯一,主键,外键)
文章目录1. 什么是约束?2. 常见的约束有哪些呢?3. 非空约束(not null)1. 什么是约束?在创建表的时候,可以给表的字段添加相应的约束,添加约束的目的是为了保证表中数据的合法性、有效性、完整性。2. 常见的约束有哪些呢?非空约束(not null):约束的字段不能为NULL;唯一约束(unique):约束的字段不能重复 主键约束(primary key):约束的字段既不能为NULL,也不能重复(简称PK);外键约束(foreign key):…(简称FK);检查约束(check原创 2021-02-20 00:20:14 · 965 阅读 · 0 评论 -
【MySQL】二十四、DML——修改,删除表中的数据(update,delete,truncate)
文章目录1. 修改数据1.1 修改指定字段数据1.2 更新所有记录2. 删除数据2.1 按指定条件删除数据2.2 删除所有数据记录2.3 删除大表中的数据(重点)1. 修改数据语法格式:update 表名 set 字段名1 = 值1, 字段名2=值2, ... where 条件; 注意:没有条件表示整张表数据全部更新。1.1 修改指定字段数据案例:将dept表中的的部门10的数据的LOC(地点)改为SHANGHAI,DNAME(部门名)改为RENSHIBU表dept1 原始记录:mys原创 2021-02-20 00:17:44 · 279 阅读 · 0 评论 -
【MySQL】二十三、表的复制以及批量插入
文章目录1. 表的复制2. 将查询结果插入一张表中1. 表的复制语法:create table 表名 as select语句将查询结果当表创建出来。(1) 选中全部字段复制create table emp1 as select * from emp ;可以记忆为,创建一张 以后面查询结果为记录的一张新表;mysql> select * from emp1;+-------+--------+-----------+------+------------+---------+--原创 2021-02-19 22:45:43 · 178 阅读 · 0 评论 -
【MySQL】二十二、DML——向表中插入数据(insert into)
文章目录1. insert 插入语句语法2. 正常插入3. 调整字段顺序插入4. 插入部分字段5. 省略字段名插入6. 一次插入多行数据1. insert 插入语句语法语法格式:insert into 表名 (字段名1, 字段名2, 字段名3, ......) values (值1, 值2, 值3, ......)要求:字段的数量和值的数量相同,并且数据类型要对应相同。2. 正常插入(1)正常插入一条数据:insert into t_student (no, name, sex, cla原创 2021-02-19 21:51:40 · 2178 阅读 · 0 评论 -
【MySQL】二十一、DDL——表的创建,删除,修改(create,drop,alter)
在之前1-20博客中,我们学习了DQL语句,学习完了一系列的查询语句外,我们似乎还不会创建表呢!文章目录1. 创建表的语法格式2. 关于字段的数据类型2.1 char和varchar怎么选择?2.2 BLOB和CLOB类型的使用3. 创建一张学生表1. 创建表的语法格式注意: 表名在数据库当中一般建议以:t_或者tbl_开头create table 表名( 字段名1, 数据类型, 字段名2, 数据类型, 字段名3, 数据类型, ......);在创建表的时候,难点是字段的数据类型的选择原创 2021-02-19 13:40:07 · 307 阅读 · 0 评论 -
【MySQL】二十、limit的使用(重点),通用SQL分页
在实际的开发中,我们不可能把数据库中的所有数据全部站展出来,全部战术可能导致浏览器卡死,用户体验不好,因此要用到分页查询,没一页可能只显示5行,或10行等数据。文章目录1. limit特点2. 语法机制:3. 案例: 取出工资前5名的员工(思路:降序,取前5个)。4. 案例: 取出工资第4到第9名的员工。5. 通用的标准分页sql6. 总结sql语句的执行顺序1. limit特点(1)limit的使用(重点中的重点,以后的分页查询全靠它)(2)limit是MySQL数据库特有的,其他数据库中没有,不原创 2021-02-19 12:50:01 · 300 阅读 · 0 评论 -
【MySQL】十九、union的用法
union:可以将查询结果集相加;案例:找出工作岗位是SALESMAN和MANAGER的员工。方法一:使用 or 关键字select ename,job from emp where job = 'SALESMAN' or job = 'MANAGER';方法二:使用 in 关键字select ename, job from emp where job in ('SALESMAN', 'MANAGER')方法三:使用union关键字select ename, job from emp wh原创 2021-02-19 12:06:29 · 702 阅读 · 0 评论 -
【MySQL】十八、where,from,select后面嵌套子查询
文章目录1. 什么是子查询?子查询都可以出现在哪里?2. where子句中嵌套子查询3. from子句中嵌套子查询1. 什么是子查询?子查询都可以出现在哪里?select 语句当中嵌套select语句,被嵌套的select语句时子查询。子查询可以出现在哪里?select ...(select)...from ...(select)...where ...(select)...2. where子句中嵌套子查询案例:找出高于平均薪资的员工信息。select * from emp whe原创 2021-02-19 00:08:53 · 12023 阅读 · 1 评论 -
【MySQL】十七、三张以上的表连接查询
案例1:找出每一个员工的部门名称、工资等级(1)emp表:员工名(ename),员工工资,部门编号(deptno);+--------+---------+--------+| ename | sal | deptno |+--------+---------+--------+| SMITH | 800.00 | 20 || ALLEN | 1600.00 | 30 || WARD | 1250.00 | 30 || JONES | 2975.原创 2021-02-18 22:09:04 · 1489 阅读 · 0 评论 -
【MySQL】十六、外连接(左连接,右连接)
文章目录1. 什么是外连接,和内连接有什么区别?2. 外连接的分类2.1 **案例:** 找出每个员工的上级领导(所有员工必须查询出来)2.2 案例2:找出哪个部门没有员工?1. 什么是外连接,和内连接有什么区别?内连接: 假设A和B表进行连接,使用内连接的话,凡是A表和B表能够匹配上的记录查询出来。A和B两张表没有主付之分,两张表是平等的。外连接: 假设A和B表进行连接,使用外连接的话,A,B两张表中有一张是主表,一张是副表,主要查询主表中的数据,捎带着查询副表。当副表中数据没有和主表中的数据匹配上原创 2021-02-17 22:15:30 · 4056 阅读 · 1 评论 -
【MySQL】十五、内连接(等值连接,非等值连接,自连接)
文章目录1. 内连接2. 非等值连接3. 自连接1. 内连接内连接最大的特点是:条件是等量关系。案例:查询每个员工的部门名称,要求显示员工名和部门名。从emp表中取ename,从dept表中取dnameSQL92(太老了,不用):select e.ename,d.dname from emp e, dept d where d.deptno = e.deptno; SQL99(常用):select e.name, d.dname from emp e join dept d on d.d原创 2021-02-17 15:19:57 · 1775 阅读 · 0 评论 -
【MySQL】十四、连接查询,笛卡尔积现象
文章目录1. 什么是连接查询?2. 连接查询的分类3. 笛卡尔积现象(笛卡尔乘积现象)4. 表的别名5. 怎么避免笛卡尔积现象?1. 什么是连接查询?在实际开发中,大部分情况下都不是从单表中查询数据,一般都是多张表联合查询出最终结果。在实际的开发中,一般一个业务都会对应多张表,比如:学生和班级,起码两张表。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给用户带来很大的灵活性,他们可以在任何时候增加新的数据类型。为不同实体创建新的表,然后通过连接进行查询。stuno原创 2021-02-17 12:41:51 · 1555 阅读 · 3 评论 -
【MySQL】十三、关于查询结果的去重(distinct)
select job from emp;查询结果:+-----------+| job |+-----------+| CLERK || SALESMAN || SALESMAN || MANAGER || SALESMAN || MANAGER || MANAGER || ANALYST || PRESIDENT || SALESMAN || CLERK || CLERK || ANALYST || CL原创 2021-02-16 20:48:02 · 732 阅读 · 0 评论 -
【MySQL】十二、总结DQL语句的执行顺序
语法一个完整的DQL语句的语法格式:select ... from ... where ... group by ... having ... order by ..执行顺序:select ... 5 from ... 1where ... 2group by ... 3having ... 4order by .. 6从哪张表中查,from筛选出要求的信息 where再进行分组 group by分组后再筛选出有符合要求的信息 havin原创 2021-02-16 20:01:46 · 638 阅读 · 0 评论 -
【MySQL】十一、分组函数(group by,having),多字段分组查询
1. group bygroup by :按照某个字段或者某些字段进行分组;having:对分组之后的数组进行再次过滤;案例:找出每个工作岗位的最高薪资。select max(sal) from emp group by job;查询结果:+----------+-----------+| max(sal) | job |+----------+-----------+| 3000.00 | ANALYST || 1300.00 | CLERK || 2原创 2021-02-16 19:52:43 · 2452 阅读 · 1 评论 -
【MySQL】十、分组函数(多行处理函数)和单行处理函数(ifnull)
文章目录1. 分组函数(聚合函数,统计函数,多行统计函数):1.1 分组函数的分类1.2 分组函数的特点2. 分组函数使用案例3. 单行处理函数4. 单行处理函数案例4.1 计算每个员工的年薪4.1 计算所有员工的补助1. 分组函数(聚合函数,统计函数,多行统计函数):作用:用作统计使用,又称为聚合函数或者统计函数或者组函数。1.1 分组函数的分类分组函数一共有下面5个:sum() 求和avg() 求平均值max() 求最大值min() 求最小值count() 计算个数1.2 分原创 2021-02-11 15:56:02 · 511 阅读 · 1 评论 -
【MySQL】九、数据排序(升序 order by ... asc,降序 desc),sql语句的执行顺序
文章目录1. 语法2. 案例(1)按照工资升序,找出员工名和薪资。(2)按照工资降序,找出员工名和薪资。(3)按照工资的降序排列,当工资相同的时候在按照名字的升序排列。(4)找出员工岗位是SALESMAN 的员工,并按照工资的降序排列(5)另一种升序降序的写法3. 总结sql语句的执行顺序3.1 简单的查询语句3.2 带有where,order by 的查询语句1. 语法order by 语句用于根据指定的列对结果集进行排序。order by 语句默认按照升序对记录进行排序。如果希望按照升序对记录进原创 2021-02-09 23:10:12 · 13706 阅读 · 0 评论 -
【MySQL】八、模糊查询(like)
文章目录案例1.找出名字中含有o的人员信息2.找出名字中第二个字母是A的人员信息3.找出名字的最后字母是t的4.找出名字中有下划线的在模糊查询中,需要要掌握两个特殊的符号,一个是 %,一个是 _% 表示任意多个字符,_ 代表1个字符案例1.找出名字中含有o的人员信息select ename from emp where ename like '%o%';查询结果:+-------+| ename |+-------+| JONES || SCOTT || FORD |+----原创 2021-02-09 21:32:09 · 969 阅读 · 0 评论 -
【MySQL】七、条件查询(in,not in)
文章目录1. in关键字2. 案例2.1 找出工作岗位是MANAGER和SALESMAN的员工3. not in3.1 案例1. in关键字in等同于or2. 案例2.1 找出工作岗位是MANAGER和SALESMAN的员工方式1(使用or关键字):select ename, job from emp where job = 'MANAGER' or 'SALESMAN';方式2(使用in关键字): select ename, job from emp where job in ('MAN原创 2021-02-09 16:11:35 · 803 阅读 · 0 评论 -
【MySQL】六、条件查询(where,is null和is not null ,and,or)
文章目录1. 回顾2. 案例2.1 找出哪些人没有津贴2.2 找出哪些人有津贴2.3 找出工作岗位是MANAGER 和 SALESMAN的员工2.4 找出薪资大于3000并且部门编号是20或者30的部门员工(and 和 or 联合使用)1. 回顾在上一篇博客中【MySQL】五、条件查询(where,between … and 关键字),我们知道,sql查询语句的语法为:select 字段1, 字段2,..,字段n from 表名 where 条件语句;2. 案例2.1 找出哪些人没有津贴我原创 2021-02-09 15:51:05 · 5423 阅读 · 1 评论 -
【MySQL】五、条件查询(where,between ... and 关键字)
文章目录1. 语法格式2. 案例2.1 查询工资等于5000的员工姓名?2.2 查询SMITH的工资?2.3 查询工资大于等于3000的员工?2.4 查询工资不等于3000的员工?2.5 找出工资在1100和3000之间的员工(包括1100和3000)2.6 between ... and ... 应用在字符(左闭右开)1. 语法格式select 字段1,字段2 ,..., from 表名 where 条件;注意:首先执行的是from,然后是where,最后select。2. 案例2.1 查询原创 2021-02-09 14:51:56 · 5426 阅读 · 0 评论 -
【MySQL】四、简单的查询语句
文章目录1. 语法2. 案例2.1 简单查询2.2 重命名查询字段名2.3 重命名中文字段名2.4 查询所有字段1. 语法select 字段名1,字段名2,字段名3,... from 表名;注意:1. 任何一条SQL语句都要以 “;” 结尾;2. SQL语句不区分大小写;2. 案例2.1 简单查询例如:查询员工的年薪:mysql> select ename, sal * 12 from emp;+--------+----------+ | ename | sal*12原创 2021-02-07 22:21:11 · 126 阅读 · 0 评论 -
【MySQL】二、对表的理解
什么是表?表:table,是数据库的基本组成单元,所有的数据都以表的形式组织,目的是可读性强。1. 一个表包括行和列:行:被称为数据/记录(data)列:被称为字段(column)2. 每一个字段应该包括哪些熟悉?字段名、数据类型、相关的约束。...原创 2021-02-03 19:22:45 · 256 阅读 · 0 评论 -
【MySQL】一、数据库概述(MySQL和Oracle)和SQL语句的分类(DQL,DML,DDL,TCL,DCL)
序列化:反序列化:常见的数据库:Oracle,MySQL,DB2,Sybase,“MS SQLServer 支持标准sql的数据库管理系统“;MySQL:开源,免费,被广泛用户互联网公司,因为它轻量级,可用于搭集群。Oracle:收费,应用于传统行业(银行,政府部门)极其庞大,安装包上G,卸载和安装极其麻烦。...原创 2021-02-02 23:14:24 · 180 阅读 · 0 评论 -
【MySQL】三、MySQL常用命令(导入初始化数据,查看表结构和表中的数据,其他常用命令)
查看所有用户的权限select * from mysql.user\G原创 2021-01-26 12:50:57 · 321 阅读 · 0 评论 -
【Java+JDBC+MySQL】使用Java操作JDBC连接MySQL数据库
1. 导入jar包将jar拷贝到lib目录,右键jar包-【Add as Library】导入项目中2 操作步骤(加,连,语,执,释)2.1 加载注册驱动通过下述语句实现注册驱动,原理是这句语句会将 Driver.class 这份字节码加载到 JVM 中,然后 JVM 会执行该字节码的静态代码块,mysql 提供的这个驱动包中,Driver 的字节码内的静态代码块就完成了驱动对象的创建和注册。//加载注册驱动Class.forName("com.mysql.jdbc.Driver");2.转载 2020-09-07 20:34:29 · 346 阅读 · 0 评论 -
【MySQL】DDL 和 DML操作
1. DML操作DML是指数据操作语言,英文全称是Data Manipulation Language,用来对数据库中表的记录进行更新。关键字:SELECT、UPDATE、INSERT、DELETE,是对数据库中的数据进行操作。1.1 insertinsert into tname[(fie1,fie2,...)] values(val1,val2,...);1.1.1 单条插入#插入一条完整的记录:值的顺序要和表中字段的顺序保持一致insert into stu values('haha@1原创 2020-09-07 15:00:22 · 268 阅读 · 0 评论 -
【MySQL】添加新用户并赋予权限
1. 创建用户CREATE USER 'username'@'host' IDENTIFIED BY 'password';username – 你将创建的用户名说明:host – 指定该用户在哪个主机上可以登陆,如果是本地用户可用 localhost , 如果想让该用户可以从任意远程主机登陆,可以使用通配符 %password – 该用户的登陆密码,密码可以为空,若为空则该用户可以不需要密码登陆如:CREATE USER 'pangpd'@'localhost' IDENTI原创 2020-09-07 14:31:03 · 216 阅读 · 0 评论 -
【MySQL】MySQL-5.7.25安装
文章目录1. 下载2. 开始安装2 .1 安装MySQL2.2 配置MySQL3. 测试安装是否成功1. 下载MySQL 5.7.25 下载连接:【https://downloads.mysql.com/archives/get/p/25/file/mysql-installer-community-5.7.25.0.msi】其他版本下载连接:【https://downloads.mysql.com/archives/installer/】2. 开始安装2 .1 安装MySQL(1) 接受许原创 2020-09-07 14:05:39 · 884 阅读 · 0 评论