Exploring
首页
  • Java

    • 面向对象的思想OOP
    • 浅谈Java反射原理
    • endorsed覆盖JDK中的类
  • 认证与授权

    • LDAP概念和原理介绍
    • OAuth2介绍
  • Impala

    • Impala 介绍
  • MySQL

    • 关于MySQL的一些面试题
    • 解决MySQL不到中文数据
    • 数据库之事务与实现原理
  • Oracle

    • oracle的表空间,用户管理,表操作,函数
    • oracle的查询、视图、索引
    • plsql简单入门
  • Redis

    • 数据类型详解
    • 跳越表
    • 数据持久化的两种方式
  • 共识算法

    • gossip
  • RPC

    • GRPC初识与快速入门
    • ProtocolBuffer基本语法
  • RabbitMQ

    • RabbitMQ入门程序之HelloWorld
    • RabbitMQ之工作模式
  • Zookeeper

    • Zookeeper一文入门
  • Docker

    • Docker入门初体验
  • Maven

    • 把自己的包到Maven中央仓库
    • Maven之自定义插件
  • Nginx

    • nginx的安装
    • nginx的配置文件
    • nignx 的变量
  • Tomcat

    • Servlet3通过SPI进行注册组件
  • Vagrant

    • vagrant 初始化
    • vagrant 常用配置
    • vagrant 自己制作 box
  • Linux

    • 启动方式 Systemd
    • 后台服务
    • 防火墙与 Iptables
  • 设计模式

    • 设计模式-代理
    • 设计模式-单例模式
    • 设计模式-迭代器
  • 分布式

    • CAP 理论
  • 数据结构

    • 数据结构之堆Heap
    • 数据结构之哈希表
    • 数据结构之队列
  • 计算机网络

    • HTTP与HTTPS详解
    • 浅谈DNS协议
    • ISP中的网络层
  • 算法

    • 常用查找算法及Java实现
    • 常用排序算法及Java实现
    • 迪杰斯特拉算法
  • 操作系统

    • 操作系统之进程调度算法
    • 操作系统之进程通讯IPC
    • 操作系统之内存管理
  • 抓包

    • 生成安卓系统证书
  • 加解密

    • 常见加密算法
    • 公开秘钥基础知识
    • RSA 解析
  • Windows

    • scoop 包管理
    • windows-terminal 配置
    • 增强 PowerShell
归档
Github (opens new window)
首页
  • Java

    • 面向对象的思想OOP
    • 浅谈Java反射原理
    • endorsed覆盖JDK中的类
  • 认证与授权

    • LDAP概念和原理介绍
    • OAuth2介绍
  • Impala

    • Impala 介绍
  • MySQL

    • 关于MySQL的一些面试题
    • 解决MySQL不到中文数据
    • 数据库之事务与实现原理
  • Oracle

    • oracle的表空间,用户管理,表操作,函数
    • oracle的查询、视图、索引
    • plsql简单入门
  • Redis

    • 数据类型详解
    • 跳越表
    • 数据持久化的两种方式
  • 共识算法

    • gossip
  • RPC

    • GRPC初识与快速入门
    • ProtocolBuffer基本语法
  • RabbitMQ

    • RabbitMQ入门程序之HelloWorld
    • RabbitMQ之工作模式
  • Zookeeper

    • Zookeeper一文入门
  • Docker

    • Docker入门初体验
  • Maven

    • 把自己的包到Maven中央仓库
    • Maven之自定义插件
  • Nginx

    • nginx的安装
    • nginx的配置文件
    • nignx 的变量
  • Tomcat

    • Servlet3通过SPI进行注册组件
  • Vagrant

    • vagrant 初始化
    • vagrant 常用配置
    • vagrant 自己制作 box
  • Linux

    • 启动方式 Systemd
    • 后台服务
    • 防火墙与 Iptables
  • 设计模式

    • 设计模式-代理
    • 设计模式-单例模式
    • 设计模式-迭代器
  • 分布式

    • CAP 理论
  • 数据结构

    • 数据结构之堆Heap
    • 数据结构之哈希表
    • 数据结构之队列
  • 计算机网络

    • HTTP与HTTPS详解
    • 浅谈DNS协议
    • ISP中的网络层
  • 算法

    • 常用查找算法及Java实现
    • 常用排序算法及Java实现
    • 迪杰斯特拉算法
  • 操作系统

    • 操作系统之进程调度算法
    • 操作系统之进程通讯IPC
    • 操作系统之内存管理
  • 抓包

    • 生成安卓系统证书
  • 加解密

    • 常见加密算法
    • 公开秘钥基础知识
    • RSA 解析
  • Windows

    • scoop 包管理
    • windows-terminal 配置
    • 增强 PowerShell
归档
Github (opens new window)
  • MySQL

    • 关于MySQL的一些面试题
    • 解决MySQL不到中文数据
    • 数据库之事务与实现原理
    • MyISAM和InnoDB引擎区别
    • MySQL不同隔离级别下的加锁情况
    • MySql常用指令集
      • 1、创建(Create)
      • 2、查询(Retrieve)
      • 3、删除(Delete)
      • 4、修改(Update)
      • 5、使用数据库
      • 6、约束
      • 7、多表查询
      • 8、事务
      • 9、用户模块
        • 1.用户管理
        • 2.权限管理
    • MySQL的索引
    • MySQL的字符集与校对规则
    • MySQL调优利器Explain
    • MySQL死锁的调试
    • MySQL之Gap-Locks与Next-key-Locks
    • SQL之组内排序
  • Oracle

  • Redis

  • 数据库
  • MySQL
unclezs
2019-03-26
0
目录

MySql常用指令集

# 1、创建(Create)

# 1.数据库

- create database if not exists name; 创建数据库
- create database character set gbk; 指定编码创建数据库
1
2

# 2.数据表

- create table if not exists tablename(id int(10) primary key auto_increment,name varchar(20) ,age int(3)); 创建表
- create tablename like tablename2;复制表
- insert into 表名 (列名1,列名2) values (值1,值2); 插入数据
1
2
3

# 2、查询(Retrieve)

# 1.数据库

  • show create database name 查看创建信息

# 2.数据表


- show tables; 显示表
- describe tablename;或者 desc tablename; 查看表结构
- select 中加上distinct去除重复字段
- select 列名1,列名2 from 表名字;查询
- select 列名1,列名2 from 表名字 order by 列名1 ASC,列名 DESC;  排序查询(列名1升序,相同则按列名2降序)
- select count(列名或*) from tablename; 查询有多少条数据(排除null)
- select count(IFNULL(列名,值)) from wxxs;把值赋给null,然后统计数据条数
- select max(列名或*) from tablename;列最大值
- select min(列名或*) from tablename;列最小值
- select avg(列名或*) from tablename;列平均值
- select sum(列名或*) from tablename;列的和
- select sex,avg(age) from tablename group by sex;按照性别分组查询,男女平均年龄
- select sex,avg(age),count(id) from tablename group by sex where age>20 having count(id)>2;按照性别分组查询,男女平均年龄,除去年龄大于20岁的,分组后现在数量大于2个的;where用在分组前(不可跟聚合函数(sum之类)),having用在分租后;
- select sex,avg(age),count(id) **num** from tablename group by sex where age>20 having **num**>2; 别名
- select * from 表名 limit 开始索引,一页显示条数;分页查询;
- select * from 表名 where id between 5 and 10;查询id为5到10的
- select * from 表名 where id in (5,10);查询id为5和10的数据
- select * from 表名 where id is (not) null;查询id为(非)空的数据
- select * from 表名 where name like '_张%';_匹配一个字符,%匹配多个字符;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 3、删除(Delete)

# 1.数据库

- drop database name ;直接删除数据库,不提醒
- drop datebase name if exists; 存在则删除数据库
- mysqladmin drop databasename 删除数据库前,有提示。
1
2
3

# 2.数据表

- delete from 表名字 where 条件;删除满足条件的数据
- delete from 表名; 删除所有数据(效率低)
- truncate table 表名字;清空表数据(实际是删除再创建,效率高)
1
2
3

# 4、修改(Update)

# 1.数据库

  • alter datebase name character set utf8; 修改编码

# 2.数据表


- alter table tablename rename to NewName;修改表名字
- alter table tablename character set utf8; 修改编码
- alter table tablename add 列名 数据类型;增加一列
- alter table tablename change 列名 新列名 新数据类型; 修改列
- alter table tablename modify 列名 数据类型; 修改列数据类型
- alter table tablename drop 列名; 删除列
- uptate tablename set 行名=值,行名=值 where 条件; 修改满足条件的值
- uptate tablename set 行名=值;修改指定列名的所有数据位指定值
1
2
3
4
5
6
7
8

# 5、使用数据库

  • use databasename; 选择数据库
  • select database(); 查看当前使用的数据库
  • select version(),current_date; 显示当前mysql版本和当前日期

# 6、约束

非空约束 not null;创建表时添加,或者使用alter添加/删除(alter table 表名 modify 列名 数据类型 not null),删除时不加not null即可; 唯一约束 unique;可以有多个null,创建表时添加,或者使用alter添加/删除(alter table 表名 drop index 列名),添加和非空约束一样; 主键约束 primary key;添加auto——increment可实现自增长,alter添加/删除与not null一样格式; 外键约束 foreign key;

# a.创建表时添加

constraint 外健名称 foreign key 外键列名称 references 主表名称(主表列名称);

# b.创建后alter添加

alter table tablename constraint 外健名称 foreign key 外键列名称 references 主表名称(主表列名称);

# c.删除

alter table tablename drop foreign key 外键名字;

# d.级联 更新/删除

alter table tablename constraint 外健名称 foreign key 外键列名称 references 主表名称(主表列名称)on update cascade on delete cascade; 主表删除从表数据也被删除,更新同理

# 7、多表查询

# A、内连接查询
  • a.隐式内连接 select * from 表一名,表二名 where 条件;
  • b.显示内连接 select * from 表一名 别名1 (inner) join 表二名 别名2 on 条件; select * from table1 w (inner) join table2 m on w.id=m.id;
# B、外连接查询
  • a.左外连接 select 字段列表 from 表一名 left (outer) join 表二 on 条件; 查询左表全部,加上右表与左边交集;
  • b.又外连接 select 字段列表 from 表一名 right (outer) join 表二 on 条件; 查询又表全部,加上左表与右边交集;
# C、子查询

把查询语句当成条件使用来进行查询 a。子查询结果是单行单列的 b。子查询结果是单行多列的 c。子查询的结果是多行多列的


# 8、事务

# a.基本操作

事务开启(start transaction),执行sql,发现错误回滚事务(rollback),没出错提交事务(commit); select @@autocommit;查看自动提交, 1为自动0为手动; set @@autocommit=0;设置为手动提交

# b.事务的四大特征
  1. 隔离性:多个事务之间,相互隔离。
  2. 原子性:是不可分割的,要么同时成功,要么同时失败。
  3. 持久性:事务提交或者回滚之后,数据会持久化保存。
  4. 一致性:数据总量不变。例如转账

# c.事务的隔离级别
  1. 脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据
  2. 不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致。
  3. 幻读:系统管理员A将数据库中所有学生的成绩从具体分数改为ABCDE等级,但是系统管理员B就在这个时候插入了一条具体分数的记录,当系统管理员A改结束后发现还有一条记录没有改过来,就好像发生了幻觉一样,这就叫幻读。 小结:不可重复读的和幻读很容易混淆,不可重复读侧重于修改,幻读侧重于新增或删除。解决不可重复读的问题只需锁住满足条件的行,解决幻读需要锁表
  • 事务隔离级别 脏读 不可重复读 幻读
  • 读未提交(read-uncommitted) 是 是 是
  • 不可重复读(read-committed) 否 是 是
  • 可重复读(repeatable-read) 否 否 是
  • 串行化(serializable) 否 否 否

查询隔离级别:select @@tx_isolation; 设置隔离级别:set global transaction isolation level 级别名;

# 9、用户模块

# 1.用户管理

# 1.添加用户

create user '用户名'@'主机名' identified by '密码';

# 2.删除用户

drop user '用户名'@'主机名';

# 3.修改密码

update user set passward=passward('新密码') where user='用户名'; set password for '用户名'@'localhost'= password('新密码');

# 4.重置root密码

停止mysql服务(net stop mysql)->管理员执行(mysqld -skip-grant-tables)->新开窗口cmd(mysql)->修改密码;

# 5.查询用户

select (host,user,passeword) from user;

# 2.权限管理

# 1.查询权限

show grants for '用户名'@'主机名'

# 2.授予权限

grant 权限列表 on 数据库名.数据表名 to '用户名'@'主机名' grant ALL on . to '用户名'@'主机名';给全部权限; grant update,select on 数据库名.数据表名 to '用户名'@'主机名';给特定表更新查询权限;

# 3.撤销权限

revoke 权限列表 on 数据库名.数据表名 from '用户名'@'主机名' revoke ALL on . from '用户名'@'主机名';撤销全部权限; revoke update,select on 数据库名.数据表名 from '用户名'@'主机名';撤销特定表更新查询权限;

在 GitHub 编辑此页 (opens new window)
上次更新: 2024/02/25, 12:11:11
MySQL不同隔离级别下的加锁情况
MySQL的索引

← MySQL不同隔离级别下的加锁情况 MySQL的索引→

Theme by Vdoing | Copyright © 2018-2024 unclezs
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式