MySQL:数据库管理系统(dbms)
库(database):存储数据的地方
表(table):定义一种关系,用于数据与关系的对应
视图(view):可以看作一个虚拟表,表结构和数据由定义的查询语句决定
作用:提高代码重用性、安全、对外接口统一
劣势:效率低下、在连表的基础上不能进行增删改
触发器(trigger):增删改操作的条件触发
语法:create trigger 触发器名 before|after 事件 on 表名 for each row [begin] 触发器语句 [end];
作用:自动执行某些操作,减少流程
劣势:定义时不校验触发语句的有效性
insert:new
delete:old
update:new、old
存储过程:相当于java中void方法,但是可以由出参,注重的是过程
函数:相当于有返回值的方法,注重的是返回值
索引:
主键(primary key):不重复、查询检索速度快
唯一索引(unique):基本同主键,但是可以有多个
普通索引(index):提高查询效率
全文索引:提高查询效率,只能在MyISAM引擎的表中使用
语句的分类:
DDL:对库和表本身的操作
主要有:create、drop、alter
DML:对数据的增删改
主要有:insert、update、delete
DQL:对数据的查询
主要有:select
DCL:赋权和事务支持
主要有:grant、commit、rollback
库的操作:
create database [if not exists] 库名;
drop database [if exists] 库名;
show databases;
grant select on 库名.表名 to '用户名'@'ip地址' identified by '密码';
use 库名;
表的操作:
create table [if not exists] 表名(
字段名 类型(长度) [属性 索引][注释],
...
);
drop table [if exists] 表名;
alter table 表名 renname to 新表名;
alter table 表名 add column 字段名 类型(长度) [属性 索引][注释];
show tables;
desc 表名;
show create table 表名;
数据操作:
update 表名 set 列名=值 [,...] where 条件;
delete from 表名 where 条件;
truncate [table] 表名;
insert into 表名[字段列表] values(对应的值列表)[,(...)];
select [distinct] {*|字段列表} from 表名
[xxx join 表名 on]
[where 条件]
[group by 字段分组]
[having 分组条件]
[order by 排序字段]
[limit a,b];
事务:
show variables like 'event_scheduler'; #查看数据库对事务的支持
set global event_scheduler=on; #设置数据库支持事务
#使用事务
SET AUTOCOMMIT = 0; # 关闭自动提交模式
START TRANSACTION #开始一个事务,标记事务的起始点
COMMIT #提交一个事务给数据库
ROLLBACK #将事务回滚,数据回到本次事务的初始状态
SET AUTOCOMMIT = 1; # 开启自动提交模式
备份和恢复:
musqldump [-h主机名] -u用户名 -p [options] 库名 [表名列表] > 文件路径;
musql [-h主机名] -u用户名 -p 库名 < 文件路径;
在命令行:source 文件路径;
该表结束符:
delimiter @@
取消自动提交:
set autocommit=0;
恢复自动提交:
set autocommit=1;
mysql知识梳理
最新推荐文章于 2023-07-14 19:16:38 发布