[sql]mysql指引(整理中...)-对db的分类

参考

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优化

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
posted @ 2018-03-09 18:06  _毛台  阅读(227)  评论(0编辑  收藏  举报