小白初入Mysql基础知识总汇

Mysql基础知识总汇

一.mysql简单简单介绍

1.数据库的好处

2.数据库的常见概念

DB:数据库,存储数据的容器
DBMS:数据库管理系统,又称为数据库软件或数据库产品,用于创建或管理DB
SQL:结构化查询语言,用于和数据库通信的语言,不是某个数据库软件特有的,而是几乎所有主流的数据库软件通用的语言

3.数据库存储数据的特点

数据存放到表中,表再放到库中
一个库可以由多张表,每张表具有唯一的表名用来标识自己
表中有一个或多个列,列又称为“字段”,相当于java中“属性”
表中每一行数据,相当于java中“对象”

四、常见的数据库管理系统
mysql,oracle,db2,sqlserver

二.Sql操作分类

一.操作数据库

DDL:

一 .Create(创建)

​ 1.创建数据库

​ create database + (数据名称);

​ 2.创建数据库,先判断是否存在,再创建

​ create database if not exists +(数据库名称);

​ 3.创建数据库并且指定字符集

​ create database +(数据库名称)character set + (字符集);

​ 4.创建数据库并且指定字符集

​ create database if not exists + (数据库名称)+ character set +(字符集);

二.Reterieve(查询)

​ 1.查询所有数据库

​ show databases;

​ 2.查询某个数据库的字符集

​ show create database +(数据库名称);

三.Updata(修改)

​ 1.修改数据库的字符集

​ alter database +(数据库名称)character set +(字符集);

​ 2.修改数据库的名称

​ EXEC sp_renamedb +( 旧名 ), ( 新名);

​ 注:名称用单引号引起

四.Delete(删除)

​ 1.删除数据库

​ drop database + (数据库名称);

​ 2.判断是否存在,再删除

​ drop database if existis +(数据库名称);

五.使用数据库

​ 1.查询当前在使用的数据库

​ select database();

​ 2.使用数据库

​ use +(数据库名称);

二.操作表

DDL:

一 .Create(创建)

​ 1.create table +(表名)(

​ 列名 数据类型,

​ 列名 数据类型,

​ 。。。。。。。

​ 列名 数据类型

​ );

​ 注:最后一行不需要加逗号(,)

​ 数据类型:int 整数类型

​ date 日期

​ varchar 字符串

二.Reterieve(查询)

​ 1.查询某个数据库的所有表

​ show tables;

​ 2.查询表的结构

​ desc +(表名);

三.Updata(修改)

​ 1.修改表名

​ alter table +(表名)rename to +(新表名);

​ 2.修改表的字符集

​ alter table +(表名) character set +(字符集);

​ 3.添加一行

​ alter table +(表名 )add + (行名 数据类型);

​ 4.修改列的名称,类型

​ alter table +(表名)change +(列名 新列名 新数据类型);

四.Delete(删除)

​ 1.删除表名

​ drop table +(表名);

​ drop table if exists +(表名);

三.DML(对数据操作)

一.Add(添加数据)

​ 1.向表中添加数据

​ insert into +(列名1,列名2,。。。列名n)values (值1,值2,。。值n);

​ 注:1)列名和值要一一对应

​ 2)如果表名后,不定义列名,则默认给所有的添加值。

​ 3)除了数字基本类型,其他需要单引号引起来

二.Delete(删除)

​ 1.delete from 表名 + [where 条件];

​ 注:如果不加条件删除所有数据

​ 如果要删除所有数据推荐使用 truncate table +(表名);

三.Updata(修改)

​ 1.update +(表名)set +(列名1=值1,列名2=值2,。。。+列名n=值n)+[ where 条 件];

​ 注:如果不加条件修改所有数据

四.DQL(查询)

一.排序查询

​ 1.order by +列名+(排序方式);

​ 例如:order by 排序字段1 排序方式1,排序字段1 排序方式1。。。;

​ 排序方式:

​ ASC:升序,默认的

​ desc:降序

​ 注:如果多个排序,先判断第一个

二.聚合函数:将一列作为一个整体进行,纵向计算的

​ 1.cout :计算机数量个数

​ 例如:SELECT COUNT(name) FROM student;

​ 例如:排除null的方法

​ SELECT COUNT( IFNULL(name,0)) FROM student;

​ 2.max:计算最大值

​ 例如:SELECT MAX(MARK) FROM student;

​ 3.min : 计算最小值

​ 例如:SELECT MIN(MARK) FROM student;

​ 4.sum: 计算和

​ 例如:select sum(mark) from student ;

​ 5.avg:计算平均值

​ 例如:select avg(mark) from student ;

​ 注:排除聚合函数会排除null值。

三.分组查询

​ 1.group by +(字段);

​ 例如:SELECT gender, AVG(mark) FROM student GROUP BY gender ;

image-20210319205525896

​ 注:1)分组之后查询的字段:分组字段,聚合函数

​ 2)where 和having 的区别

​ 1.where 在分组之前进行限定 ,如果不满足,则不参与查询。

​ 2.having 在分组之后进行限定,如果不满足,则不查询出来。

四.分页查询

​ 1.limit 分页查询

​ 例如 : select *from student limit (x,y);x:从什么时候开始;y:每页显示的页数。

五.基础查询

​ 1.查询基础语法

​ select 字段列表 from 表名 where 条件列表 group by 分组字段 having 分组之后的条件 order by 排序 limit 分页

​ 2.查询字段

​ select 字段1 字段2 from 表名;

​ 注:除去重复的结果集 distinct ;

​ 起别名AS +别名;

​ 3.条件查询

​ 1.where +条件

​ 例如:select *from student where age >20;

​ 2.运算符 > , <, <=, >= ,=, <>

​ 例如:select *from student where age (运算符)

​ 3.between … and…

​ 例如:select *from student where age between 20 and 30;

​ 4.in(集合)

​ 例如:select *from student where age in (X,X,X);

​ 5.like (模糊查询)

​ 占位符:

​ 单个字符:select *from student where name like ’ 龙%’;

​ select*from student where name like “_化%”;

​ 多个字符

​ 6.is null 查询某一列null的值,注:不能写=null;(is not null)

​ 例如:select *from student where age is null ;

​ 7.逻辑查询

​ or 或者 &&

​ not 或 !

五.约束

​ 概念:对表中的数据进行限定,保证数据的正确性,有效性和完整性。

​ 分类:

​ 1.主键约束:primary key

​ 2.非空约束:not null

​ 3.唯一约束: unique

​ 4.外键约束:foreign key

一.非空约束(所约束的列无法为空)

​ 1.创建表创建约束

​ 例如:

​ create table student(

​ id int,

​ name varchar(20)not null;(名字不能为空)

​ );

​ 2.创建表之后,添加非空约束

​ 例如:

​ alter table student modify name varchar(20) not null;

​ 3.删除非空约束

​ 例如:

​ alter table student modify name varchar(20);

二.唯一约束:unique,值不能重复

​ 1.创建表创建约束

​ 例如:

​ create table student(

​ id int,

​ phone int unique ;(名字不能为空)

​ );

​ 2.删除唯一约束

​ 例如:

​ alter table student drop index phone ;

​ 3.创建表之后,添加唯一约束

​ 例如:

​ alter table student modify phone int unique ;

​ 三.主键约束:primary key

1.注意:

1.含义:非空且唯一

2.一张表只能有一个字段为主键

3.主键就是表中的唯一标识

​ 2.添加主键

​ 例如:

​ create table stu(

​ id int primary key,

​ name varchar (20)

​ );

​ 3.删除主键

​ 正确演示:

​ 例如:

​ alter table stud drop primary key ;

​ 错误示范:

​ alter table stud modify id primary key;

​ 4.创建表之后,添加逐主键

​ alter table stud modify id int primary key;

5.自动增长

​ 1.概念:如果某一列是数值类型的,使用auto_increment 可以用来完成自动增长

​ 2.创建表时,添加主键

​ create table stu(

​ id int auto_increment,

​ name varchar (20)

​ );

​ 3.删除自动增长

​ alter table stu modify id int ;

​ 4.添加自动增长

​ alter table stu id int int auto_increment;

6.外键约束:foreign key

​ 1.在创建表时,可以添加外键

​ 语法:

​ create table 表名(

​ 。。。

​ 外键列

​ contraint 外键名称 foreign key (外键列的名称) referrnces 主表主称名字

​ );

​ 2.删除外键

​ alter table (表名) drop foreign key 外键名;

​ 3.添加外键

​ alter table (表名)add contraint 外键名称 foreign key (外键列的名称) referrnces 主表主称

7.级联操作

​ 1.添加外键,设置级联更新

​ alter table 表名 add constraint 外键名称

​ foreign key (外键名称) references 主键名称 (on update cascade on delete casecade);

​ 2.分类:

​ 1.级联更新:on update cascade

​ 2.级联删除:on delete casecade

三.多表操作

​ 数据库的设计:

​ 1.多表之间的关系

​ 1.一对一

​ 如:人和身份证(A->B ,B–>A A<->B)

​ 2.一对多(多对一)

​ 如:部门和员工

​ 分析:一个部门有多个员工,一个员工只对应一个部门

​ 3.多对多

​ 如:学生和课程

​ 分析:一个学生选选择很多门课程 ,一个课程也可被多个学生选择

​ 2.实现这个关系

​ 1.一对一的关系

​ 2.多对多

​ 2.数据库设计的范式

​ 第一范式:每一个列都是不可分割的的原子数据项

​ 第二范式:在1FN的基础上,非码属性必完全依赖于候选码(在1FN基础上消除传递依赖非主属性对主码的部分函数依赖)

​ 概念:

​ A—>B,如果通过A属性(属性组)的值,可以确定唯一属性的值。则称B依赖于A

​ 例如:学号---->名字,(学号,课程名称)–>分数

​ 完全依赖:A—>B,如果A是一个属性组,则B属性值确定需要依赖A的属性的属性值

​ 例如:(学号,课程名称)–>分数

​ 部分函数依赖:A—>B,则B的属性值确定只需要依赖A属性组中某一些值即可。

​ 传递依赖:A–>B,B–>C,如果通过A的属性的值,可以确定唯一B的属性的值,再通过B的属性值可以确定唯一的CC属性值,则称C传递函数依赖A。

​ 例如:学号–>系名,系名–>系主任。

​ 码:如果在一张表中,一个属性或属性组,被其他所有属性组完全依赖,则称这个属性为该表的码

​ 1.主属性:码属性组中的所有属性

​ 2.非码属性:除了码属性的属性

​ 第三范式:在2FN

基础上,任何给非主属性不依赖其他非主属性(在2FN基础上消除传递依赖

一.多表查询

​ 基础查询:

​ select +(列名)+from+(表名)where +条件

​ 笛卡儿积:

​ 两个集合组合情况 A B 取两个集合组成情况

​ 完成多表查询,需要消除无用的数据

​ 多表的查询的分类:

​ 1.内连接查询

​ 1.隐式内连接: select +(列名)+from+(表名)where +条件

​ 2.显示内连接:select 字段列表 from 表名1 inner join 表名2 条件

​ 2.外连接查询:

​ 1.左外链接:

​ select 字段列表 from 表1 left【outer】 join 表2 条件;

​ 查询的左表所有数据以及交集部分

​ 2.右外链接:

​ select 字段列表 from 表1 left【outer】 join 表2 条件;

​ 查询的右表所有数据以及交集部分

​ 3.子查询:

​ 概念在查询中嵌套查询,称为子查询

​ 1.子查询的结果是单行单列

​ 2.子查询结果是多行多列

​ 3.子查询结果是多行单列

四.数据库的备份和还原

​ 1.命令行:

​ 语法:mysqldump -u用户名 -p密码 数据库的名称>保存的路径

​ 2.图形化工具

五.事务基本操作

​ 1.事务的介绍:

​ 1.概念:

​ 如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功,要么同时失败。

​ 2.操作:

​ 1.开始事务:start transaction

​ 2.回滚事务:rollback

​ 3.提交事务:commit

​ 2.事务的四大特征:

​ 1.原子性:不分割的最小操作单位,要么成功,要么失败

​ 2.持久性:当事务提交或回滚后,数据库持久化保存数据

​ 3.一致性:事务操作前后,总量不变的

​ 3.事务的隔离级别(了解)

​ 存在问题:

​ 1.脏读:一个事务,读到另一个提交事务的数据

​ 2.不可重复:在同一个事务中,两次读取到数据不一样;

​ 3.幻读:一个事务数据表所有记录,一个数据添加到另一个事务修改自己的修改

六.DCL管理(了解)

​ 1.管理用户

​ 1.添加用户

​ 语法:create user ‘用户名’@‘主机号’ identified by ‘密码’;

​ 2.删除用户

​ 语法:drop user ‘用户名’@‘主机号’;

​ 3.修改用户

​ 修改语法:update user set password =password (‘新密码 ’)where user =‘ 用户名 ’;

​ 4.查询用户

​ use mysql;

​ use * from user;

Mysql总汇.md( 需要的吱一声)
链接:https://pan.baidu.com/s/1iSAp20qbRDKBNx-IpaKXUQ
提取码:zzl0

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值