首页 > 数据库 >MySQL 知识点小结

MySQL 知识点小结

时间:2022-11-01 23:01:46浏览次数:43  
标签:知识点 xxx group MySQL 分组 mysql null 小结 主键

------------------ 操作mysql的命令 --------------------

cmd命令行中查看mysql版本:
mysql -V
mysql --version

登陆mysql:
mysql -uroot -pluis
mysql -uroot -p

在mysql中查看数据库版本:
select version();

查看所有数据库:
show databases;

切换数据库:
use xxx;

查看当前库中的表:
show tables;

查看其他库中的表:
show tables from 库名;

创建数据库:
create database xxx;

删除数据库:
drop database xxx;

导表:(需要先有数据库)
source sql脚本;

查看表结构:
desc 表名;

查看当前库:
select database();

终止一条语句:
\c

退出mysql:
exit 或 Ctrl + c

查看某建表语句:
show create table 表名;

------------------ SQL语句 --------------------
条件查询 between and
条件查询 is null 和 is not null
and or
条件查询 in
模糊查询 like
数据排序 desc 和 asc
分组函数 group by
多字段分组查询
group by 之 having 二次过滤
去除重复记录 distinct
判空函数 ifnull()
内连接、外连接、全连接
内连接:等值连接、非等值连接、自连接
外连接:左外连接、右外连接
多表连接查询
够用测试题:找出每一个员工的部门名称、工资等级以及上级领导(内连接和外连接之多表查询)
select、where、from 后嵌套子查询(from后接子查询用的最多)
union 数据拼接
分页查询 limit mysql特有

desc asc 默认升序
count() 分组函数/多行处理函数
分组函数(sum,count,max,min,avg)自动忽略null
分组函数不可直接用于while子句中,因为分组函数是在group by之后执行,而group by是在while之后执行
ifnull() 空处理函数 有null参与的运算结果都为null
count(
) 和 count(字段) 区别:
count(*) 统计总记录条数
count(字段) 统计不为null的该字段记录的条数
分组函数一般都会和group by联合使用
重要结论:当一条语句后面有group by的话,select后面只能跟分组函数和参与分组的字段,其他
字段不能跟,有的话会有问题!(mysql中无意义,oracle中直接报错。)
多字段联合分组:group by后使用逗号分隔,按照字段先后顺序进行分组。
查询结果去重用distinct关键字
distinct出现在多字段最前面表示多字段联合去重

建表create、添加数据insert、修改数据update、删除数据delete、删除大表中数据truncate(留表头,删其他数据,不可回滚,永久删除)

表的复制create as select、表的删除drop

总结 DQL 语句执行顺序:

select      5
	xxx
from       1
	xxx
where     2
	xxx
group by  3
	xxx
having     4
	xxx
order by  6
	xxx;

约束:
非空约束: not null 只存在列级
唯一性约束:unique 列级&表级(唯一不可重复,但是可以为null)
主键约束:primary key 列级&表级(唯一不可重复,且不可为null)
外键约束:foreign key(字段) reference 表名(一般填父表主键)
原则:
删除:先删除子表,再删除父表
建表:先创建父表,再创建子表
主键自增:primary key auto_increment

三大搜索引擎:
MyISAM(不支持事务,但可压缩,占空间小,最常用的)
InnoDB(支持事务,安全,但执行效率较低,mysql默认引擎)
MEMORY(不支持事务,但查询效率最高,数据存在内存中,断电清空)

事务四大特性:
原子性:最小单元,不可再分
一致性:同时成功,同时失败
隔离性:四大隔离级别(读未提交、读已提交[oracle默认]、可重复读[mysql默认]、串行化读)

使用分组函数后,查询的时候只允许有参与分组的字段和分组函数,其他字段不允许写,
写了的话,其结果显示无意义。在oracle中会报错!

DQL 数据查询语言 (Date Query Language) select
DML 数据操控语言 (Date Manipulation Language) insert delete update
DDL 数据定义语言 (Date Definition Language) create drop alter
TCL 事务控制语言 (Transactional Control Language) commit rollback
DCL 数据控制语言 (Data Control Language) grant revoke

数据库设计三范式:
第一范式:所有表必须有主键,每个字段原子性不可再分
第二范式:所有非主键字段完全依赖主键,不能产生部分依赖
第三范式:所有非主键字段完全依赖主键,不能产生传递依赖

口诀:
多对多,三张表,关系表两个外键。
一对多,两张表,多的表加外键。

目的:减少数据冗余

提醒:实际开发中,以满足客户需求为主,有时候会拿冗余换执行速度。
(多表联查会降低执行速度,放一起虽然冗余,但效率有时会高一些)

一对一设计两种方案:主键共享、外键唯一
情景:用户登录和用户详情,登录单独出一张表就不用查全部信息。

分组函数是在分完组后可用,所以可以用在having二次过滤中!!!

select
	deptno,count(*)
from
	emp
group by
	deptno
having
	count(*) >= 5;

标签:知识点,xxx,group,MySQL,分组,mysql,null,小结,主键
From: https://www.cnblogs.com/luisblog/p/16849491.html

相关文章

  • JavaScript重要知识点整理
    (一)JavaScript简介(二)语法基础(三)流程控制(四)初识函数(补充)对象(五)字符串对象(六)数组对象(七)时间对象(八)数学对象(九)DOM基础(十)DOM进阶(十一)事件基础(十二)事件进阶(十三)window对象(十四)docu......
  • mysql双主架构解决自增冲突
    Mysql双主自增长冲突处理 多主互备和主从复制有一些区别,因为多主中都可以对服务器有写权限,所以设计到自增长重复问题 出现的问题(多主自增长ID重复) 1:首先我们通过A......
  • MySQL查询数据(多表查询)
    准备工作,新建名为students的数据,三张表分别是student,courses,stu_cou,并创建外键约束,级联删除更新,插入数据。/*创建数据库*/createdatabaseifnotEXISTSstudentscha......
  • MySQL基础语句
    DDL(DataDefinitionLanguage) DML(DataManipulateLanguage) DQL(DataQueryLanguage)聚合函数聚合函数作用于字段,而且NULL值不参与计算分组查询 具体......
  • MySql 最大建议行数 2000w,靠谱吗?
     1背景作为在后端圈开车的多年老司机,是不是经常听到过,“mysql单表最好不要超过2000w”,“单表超过2000w就要考虑数据迁移了”,“你这个表数据都马上要到2000w了,难怪查......
  • Mysql集群
    Mysql集群笔记概述我们在考虑MySQL数据库的高可用的架构时,主要要考虑如下几方面:如果数据库发生了宕机或者意外中断等故障,能尽快恢复数据库的可用性,尽可能的减少停机......
  • TYPE(3)—mysql执行计划(四十九)
    Simple:普通的sql查询,连接查询。Primary:union左边的表。Union:union和unionall都叫几个select,除了最左边的是primary,其他都是union。Unionresult:union去重临时表。Subquery:......
  • Extra(5)—mysql执行计划(五十一)
    前面说了有type,simple表示普通查询或者连接查询,primary代表union最左边的select,unionresult代表union查询的临时表去重,所以unionall没有去重功能,subquery代表in的子查询......
  • Select type&partitions (2)—mysql执行计划(四十八)
    前面说了explain的table是表名,显示在前面的代表驱动表,正常select会出现不同的id,但如果子查询本来是两个select,但被优化成连接查询,就会导致是相同的id,union查询会出现临时表,i......
  • key&key_len&ref&filtered(4)—mysql执行计划(五十)
    前面说了system是精确存储引擎和只存一条数据,const是主键和唯一索引才能达到的效率访问,ref是二级索引等值查询,或者联合索引全部等值,如果联合索引单个查询,则是index,ref_not是......