目录
一:基础调试
登陆:
mysql -u root -p密码;
设置字符:
set names gbk;
有部分时候查看表格内容是中文数据会显示不出来,就需要使用“set names gbk”
执行语句解析:
SQL执行成功提示语句,影响的行数,操作执行所消耗的时间
二:数据库
查看数据库列表:
show databases;
选择数据库:
use 数据库名;
创建数据库:
create database 数据库名;
删除数据库:
drop database 数据库名;
三:表
1.增删查表
创建表:
create table 表名(字段1 数据类型(限制长度),字段2 数据类型(限制长度),...);
查看表列:
show tables;
删除表:
drop table 表名;
2.表字段相关
表添加新字段:
alter table 表名 add 字段 数据类型(长度);
表添加值:
增加部分表字段内容:
insert into 表名 (指定字段) values(值);
增加全部表字段内容:
insert into 表名 values(字段1,值1);
一次增加多个全部表字段内容:
insert into 表名 values(字段1,值1),(字段2,值2),(字段3,值3),...;
已有字段添加主键:
alter table 表名 add constraint 别名 primary key 表名(字段);
更新/修改表字段值:
update 表名 set 字段=值 where 条件;
删除表内容:
delete from 表名 where 字段=值;
delete 字段 from 表名 where 字段=值;
外键关联:
alter table 表名1 add constraint 表名1_fk_表名2 foreign key (表1字段) references 表2(表2字段);
字段约束:
名称 | 关键字 | 说明 |
非空约束 | NOT NULL | 字段不允许为空 |
默认约束 | DEFAULT | 赋予某字段默认值 |
唯一约束 | UNIQUE KEY(UK) | 设置字段值是唯一的,允许为空,但只能又一个空值 |
主键约束 | PRIMARY KEY(PK) | 设置该字段为表的主键,可唯一标识该表记录 |
外键约束 | FOREIGN KEY(FK) | 用于两表之间建立关系,需要指定引用主表的哪一字段 |
自动增长 | AUTO_INCREMENT | 设置该列为自增字段,默认每条自增1,常用于设置主键 |
3.查询相关
查询表内容:
查询部分字段内容:
select 字段1,字段2... from 表名;
查询全部表内容:
select * from 表名;
查询两个表的共同字段内容:
select 字段1,字段2... from 表1 union select 字段1,字段2... from 表2;
查询结果插入新表:
create table 新表名(select 字段1,字段2,... from 原表名);
查询表内固定值:
select 查询字段 from 表名 where 根据字段='值';
二合一:
select 要找的字段 from 表1 where 根据字段=(select 要找的字段 from 表2 where 根据字段='值');
4.函数
表内聚合函数:
select 函数(字段) from 表名;
字符串函数:
函数名 | 作用 |
concat(str1,str2,...strn) | 字符串连接 |
insert(str,from,to,newstr) | 替换from到to位置的字符串 |
lower(str) | 将字符串转为小写 |
upper(str) | 将字符串转为大写 |
subString(str,num,len) | 截取num位置开始len长度的字符串 |
5.排序
表内(升降序)排序:
select * from 表名 order by 根据字段 asc【升序】\desc【降序】;
四:事务
事务的特性:
原子性 | 一个事务不可再分割,要么都执行要么都不执行 |
一致性 | 一个事务执行会使数据从一个一致状态切换到另一个一致状态 |
隔离性 | 一个事务的执行不受其他事务的干扰 |
持久性 | 一个事务一旦提交,则会永久的改变数据库的数据 |
流程:
1.开启事务
set autocommit=0;
2.编写sql语句(insert、update、delete)
3.提交事务或回滚事务
commit;或rollback;
回滚后数据是不会发生变化的
事务的并发问题:
脏读 | 一个事务读取到了另外一个事务未提交的数据 |
不可重复读 | 同一个事务中,多次读取到的数据不一致 |
幻读 | 一个事务读取数据时,另一个事务进行更新,导致第一个事务读取到了没更新的数据 |
事务的隔离级别:
READ UNCOMMITTED | |
READ COMMITTED | 可以避免脏读 |
REPEATABLE READ | 可以避免脏读、不可重复读和一部分幻读 |
SERIALIZABLE | 可以避免脏读、不可重复读和幻读 |
查看隔离级别:
select @@tx_isolation;
设置隔离级别:
set session transaction isolation level 隔离级别;