db存储及分层
一个db一个文件夹.
一张表两个文件frm是存表结构的,ibd是存数据的
连接层:
sock
ip
sql层:
存储层:
2018年4月1日 20:53:54小结:
时间太久,抓破脑袋斗争,想不起具体 mysql事务是干嘛的
不怕不会,怕的是每次遇到都不会. 靠.... 遇到一次杀一次...
建库
建表
查表结构
插入数据
alert修改表结构
增加字段
删除字段
重命名字段
事务
transaction:
交易;事务;
start transaction; # 开启事务(注:开启后修改依旧显示已改动的,但是未真正的提交,可回滚)
commit; # 提交事务
rollback; # 回滚事务,即撤销指定的sql语句(只能回退insert delete update语句),回滚到上一次commit的位置
savepoint p1;
rollback to p1;
update: 设置值:
UPDATE account set balance=balance+5000 WHERE name=”xialv”;
alert: 修改表结构
alter table haha rename to people; # 修改表名
alter table people change name people_name char(30); #改列名
alter table people add telnum int first; # 第一列加
alter table people add id1 int first ,add sex char(4) after name; #加字段
alter table people drop sex; # 删一列
alter table people modify name char(20); #修改字段长度
- my.cnf读取顺序
- 观察启动进程(数据目录)
- - 授权用户(建用户/设密码): grant 库.表 --> 人@主机;
回收权限: revoke: http://www.cnblogs.com/iiiiiher/articles/8836193.html
查看用户权限: show grants for \'maotai\'@\'192.168.2.%\'
- 查看mysql版本(3种\\s; show states;\\)
- 建库 建表 插入数据
- 查看表结构(字段/及建表语句)
- 查询某几列
- 查看正在执行的sql(show processlist)
- server/client字符集
- 查询库的最大连接数
- 查询库的slow log是否开
- 查看库的大小
- 库的数据目录(1dir/per库+2个文件/per表)
- 查看建表语句
show create database test;
- 查看用户权限
show grants
- 关闭mysql
mysqladmin shutdown
数据类型: 4大数据类型
约束
索引
mysql日常维护
初始化db:
(5.6)mysql_install_db:
mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data/ --user=mysql
(5.7)mysqld:
mysqld --initialize --user=mysql --basedir=/usr/local/mysql-5.7.17 --datadir=/usr/local/mysql-5.7.17/data
mysqld_safe:
启动mysql(msyql.server --> mysql_safe --> mysqld): /usr/local/mysql/bin/mysqld_safe &
恢复密码: /usr/local/mysql/bin/mysqld_safe --skip-grant-table &
mysqladmin
设置密码: /usr/local/mysql/bin/mysqladmin -u root password \'123456\';
修改密码: mysqladmin -uroot -p123456 password \'maotai123\';
(sql语句密码函数): update mysql.user set password=PASSWORD(\'新密码\') where User=\'root\'; flush privileges;
sql优化
一主多从, 读写分离
慢查询--explain--建索引
sql学习提纲
1.基础sql
2,连表
一对多
多对多
left join
right join
inner join
3,存储过程
mysql/pymysql
4,动态执行sql
5,函数
6,视图,触发器,事务
执行计划
常用sql分析
---------------------手写sql
索引
orm框架---------------orm帮我写sql
- pymysql
- 插入 更新 删除
res = excute
res = executemany
返回值: 受影响的行数
- 查询:
res = execute
fetchone
fetchmany
fetchall
coursor.scroll()
- 思路版:
建表
虚拟表--视图(view)
执行sql:
连带动作--触发器(trigger)
合并执行--事务(transection)
存储过程&函数(procedure)
动态执行sql