Mysql基础
Mysql管理
Mysql服务的启动和停止
- 计算机——右击管理——服务
- 通过管理员身份运行
- net start 服务名(启动服务)
- net stop 服务名(停止服务)
Mysql服务的登录和退出
- 通过mysql自带的客户端(只限于root用户)
- 通过客户端命令输入
1 | 登录: |
Mysql语法规范及常用命令
Mysql语法规范
- 不区分大小写,但建议关键字大写,表名、列名小写
- 每条命令最好用分号结尾
- 每条命令根据需要,可以进行缩进或换行
- 注释
- 单行注释:#注释文字
- 单行注释:– 注释文字
- 多行注释:/ 注释文字 /
常用命令
1 | show databases; 查看所有的数据库 |
Mysql语言
Mysql中的语言主要可以分为如下四种:
- DQL(Data Query Language):数据查询语言
**select**
- DML(Data Manipulate Language):数据操作语言
**insert 、update、delete**
- DDL(Data Define Languge):数据定义语言
**create、drop、alter**
- TCL(Transaction Control Language):事务控制语言
**commit、rollback**
DQL语言
Select
- 单表查询:
1 | select 要查询的字段|表达式|常量值|函数 from 表 |
常见表达式如下:
1 | 一、条件表达式 |
常见函数如下:
1 | 一、单行函数 |
- 多表连接查询
1 | select 字段,... |
- 子查询
一条查询语句中又嵌套了另一条完整的select语句,其中被嵌套的select语句,称为子查询或内查询
在外面的查询语句,称为主查询或外查询。
1 | 特点: |
- 分页查询
1 | select 字段|表达式,... |
- 联合查询
1 | select 字段|常量|表达式|函数 【from 表】 【where 条件】 union 【all】 |
DML语言
Insert
1 | insert into 表名(字段名,...) values(值1,...); |
Update
- 修改单表
1 | update 表名 set 字段=新值,字段=新值 【where 条件】 |
- 修改多表
1 | update 表1 别名1,表2 别名2 |
Delete
- 删除单表
1 | delete from 表名 【where 筛选条件】 |
- 删除多表
1 | delete 别名1,别名2 |
Truncate
1 | truncate table 表名; |
注意:面试中常常会问两者的区别
- truncate不能加where条件,而delete可以加where条件
- truncate的效率高一丢丢
- truncate 删除带自增长的列的表后,如果再插入数据,数据从1开始
delete 删除带自增长列的表后,如果再插入数据,数据从上一次的断点处开始 - truncate删除不能回滚,delete删除可以回滚
DDL语言
库的管理
1 | 创建库 |
表的管理
创建表
1 | create table if not exists 表名{ |
修改表
1 | alter table 表名 add|modify|drop|change column 字段名 【字段类型】; |
删除表
1 | drop table if exists 表名; |
TCL语言
事务基础使用
1 | set autocommit=0; |
隔离级别设置
1 | set session|global transaction isolation level 隔离级别名; |
注意:如何避免事务的并发问题通过设置事务的隔离级别
- READ UNCOMMITTED
- READ COMMITTED 可以避免脏读
- REPEATABLE READ 可以避免脏读、不可重复读和一部分幻读
- SERIALIZABLE可以避免脏读、不可重复读和幻读