mysql

# 20190709学习笔记
## 第二周
### 周二
* mysql
    * mysql安装
        * 命令安装
            * sudo apt-get install mysql-server
            * sudo apt-get install mysql-client
            * sudo apt-get install libmysqlclient-dev
        * 压缩包安装
    * 基本命令
        * DML
            * SELECT
                * SELECT 列名称 FROM 表名称
                * SELECT *FROM 表名称
                * 用法
                    * SELECT DISTINCT  列名称 FROM 表名称
                        * 返回唯一不同的值
                    * WHERE
                        * 规定选择的标准
                            * =,<>,>,<,<=,<=
                            * BETWEEN
                            * LIKE
                                * 模糊查询
                                    * select *
from T_USER 
where u_name like '%清%' ;
                        * AND & OR
                            * 用于把where中的两个条件或多个条件连接起来
                    * ORDER BY
                        * 根据指定的列对结果集进行排序
                        * ORDER BY id DESC
                            * 倒序
                    * AS
                        * 给查询结果取别名
                            * select 
u_name as 名字,
u_age as "年龄" , 
u_score 成绩
from T_USER ;
                    * SELECCT可以对数字、日期结果进行加减乘除操作
                    * ||
                        * 可以将结果链接起来为一列
                            * select 
u_name || '的成绩为' || u_score as 成绩
from T_USER ;
                    * IN
                        * select u_name , u_score
from T_USER 
where u_score in(100,98,65) 
            * INSERT
                * INSERT 
 INTO tablename() values();
                * 用法
                    * 查询结果插入表中
                        * INSERT INTO tablename (col) SELECT (col) FROM tablename2 WHERE (condition)
                        * insert into ST (subectid,subjectName)
 select  subjectid,subjectName from TSubject where `Publisher` is not null
            * UPDATE
                * UPDATE tablenamae set col = value WHERE col = value1;
                * 用法
                    * 更新若干列
                        * UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing'
WHERE LastName = 'Wilson'
            * DELETE
                * delete from  表名称 where 列名称  = 值  
        * DDL
            * CREATE
            * DROP
                * 删除数据库,不可回滚
            * TRUNCATE
                * 删除数据
                * 全表数据完全清空
                * 速度快
                * 性能高
                * 不可回滚
            * RENAME
                * 只能rename tablename 
                * 操作时间短
            * ALTER
                * ALTER TABLE "tablename"
                * ADD
                    * ALTER TABLE table_name
ADD column_name datatype
                * MODIFY
                    * ALTER TABLE table_name
MODIFY COLUMN column_name datatype
                * DROP
    * mysql体系架构
        * 最上层是连接组件
        * 下面服务器由
            * 连接池
                * 把每次建立建立的链接缓存下来,提升服务器性能
            * 管理工具和服务
                * 系统管理和控制工具,例如备份恢复、Mysql复制、集群等
            * SQL接口
                * 接受用户的SQL命令,并且返回用户需要查询的结果。比如select from就是调用SQL Interface
            * 解析器
                *  SQL命令传递到解析器的时候会被解析器验证和解析。
                    * a . 将SQL语句分解成数据结构,并将这个结构传递到后续步骤,以后SQL语句的传递和处理就是基于这个结构的
                    * b. 如果在分解构成中遇到错误,那么就说明这个sql语句是不合理的
            * 优化器
                * 查询优化器,SQL语句在查询之前会使用查询优化器对查询进行优化。
            * 缓存
            * 存储引擎
                * InnoDB
            * 文件系统
    * 字段类型
        * 数字
            * 整型
                * int
            * 定点型
                * DECIMAL
                * 记录的内容是一个精确的值。
                    * DECIMAL(a,b)a是整数和小数加起来的位数
            * 浮点型
        * 字符类
            * CHAR/VARCHAR
                * CHAR是不变长度的
                * VARCHAR是变长的
                    * <255  1个字节
                    * >255  两个字节
            * TEXT
                * 变长
                * 不能设置默认值
            * BLOB
                * 记录二进制字符串
        * 时间日期
            * DATE
                * 3个字节
            * DATETIME
                * 5个字节
                * 存储范围广
            * TIMESTAMP
                * 4个字节
    * 权限管理
        * mysql权限验证
            * 创建用户
                * CREATE USER ,GRANT
            * 删除用户
            * 赋予权限
                * GRANT
            * 删除权限
                * REVOKE
        * 常见场景
        * 权限安全
            * 密码规范
            * 线上数据库
                * 开发只有曾删改查权限
            * beta.dev环境下忘记密码如何处理
                * sudo /etc/init.d/mysql.server -p 3306 restart --skip-grant-tables
                * mysql -h217.0.0.1 -urandomname
                * update mysql.user set password = password('newpassword') where user = 'lisi';
        * 权限相关问题
    * 系统常用命令
        * 查看帮助信息
            * help
            * show databases
            * show create table
            * show createdb
            * show index from 
            * show columns from
            * show status
            * show processlist
        * set命令
            * set names utf8mb4

*XMind: ZEN - Trial Version*

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值