• 《从零开始学习Mysql5.7》笔记


    操作命令集

    • cd C:Program FilesMySQLMySQL Server 5.7in   进入到Mysql的bin目录
    • mysql -h localhost -u root -p     输入密码后进入mysql>命令行模式
    • mysql> show databases[G];       显示数据库列表    
    • mysql> create database test123;      创建数据库名为test123的数据库
    • mysql> drop database test123;       删除数据库名为test123的数据库(不可恢复,谨慎操作)
    • mysql> show engines[G];    显示当前数据库支持的存储引擎
    • mysql> use sys;    mysql> show tables;   切换到某个数据库,然后显示该数据库下的全部表
    • mysql> select * from bs_field [ limit 1];     显示某个表的数据【一条】
    • mysql> desc bs_field;    查看某个表的结构
    • mysql> show create table bs_field[ G];   查看表的详细信息
    • mysql> select version();     查询服务器版本号
    • mysql> select connection_id();    查询当前连接数
    • mysql> show processlist;    输出当前用户的连接信息
    • mysql> select database();   显示当前使用的数据库

    存储引擎

    1)支持的存储引擎

    • InnoDB
    • MyISAM
    • MEMORY
    • ARCHIVE
    • CSV
    • BLACKHOLE

    InnoDB:

    ①Mysql5.5.5版本之后默认引擎;②支持事务,支持行锁定,支持外键;③创建3个文件,ibdate1(10M自动拓展的数据文件),ib_logfield0、ib_logfield1(5M大小的日志文件)

     MyISAM:

    ①Mysql5.5.5版本之前默认引擎;②不支持事务;③拥有较高的查询和插入速度;④每张表最大索引数64,每个索引最大列数16;⑤索引可以作用在BLOB和TEXT上;⑥创建数据库产生三个文件,frm文件存储定义表,数据文件拓展名为.MYD,索引拓展名为.MYI;

    MEMORY:

    ①将表中的数据存储到内存中;②存储引擎执行HASH和BTREE;③不支持TEXT和BLOB;

    其他

    数据类型

    1)INT(11)中数字11表示该数据类型指定的显示长度,其实际长度最长可到取值范围最大数值;

    2)金钱存储用DECIMAL,浮点数(FLOAT和DOUBLE)和定点数(DECIMAL)类型都可以用(M,N)表示,M为精度,N为标度;DECIMAL和DOUBLE取值范围一样,DECIMAL以串的形式存放,

    3)TIMESTAMP和DATETIME显示格式相同,宽度固定在19个字符,TIMESTAMP的取值范围小于DATETIME,取值范围是1970-01-01 00:00:01 UTC~2038-01-19 03:14:07 UTC,UTC为世界标准时间;TIMESTAMP存储的时候按照世界标准时间(UTC)进行存储,存储时对当前时区进行转换;检索时会转换会当前时区;

    4)CHAR和VARCHAR后者时可变字符,检索的时候,CHAR会将首位空格去掉再返回,VARCHAR则不会;

    5)BLOB是二进制字符串,可以存储图片、音频等信息,TEXT只能存储纯文本;

    运算符

    运算符优先级

     

    sql语句

    1)IFNULL(V1,V2)    如果V1不为空,返回V1,否则返回V2

    2)between  A and B , 该查询条件包含开始值和结束值

    3)and的优先级大于or的优先级

    4)多列排序  ... order by  A  desc  ,  B  desc

    5)group by 子句中使用  with rollup   显示记录数 (select lan,count(*) from tableA group by lan with rollup;最后一行显示总记录数),注

    :使用rollup时不能使用order by

    6)count(*)和count(字段名)区别,count(*)计算空值,后者不计算空值,空值即显示null的值

    7)limit  [m,] n 

    • limit 2 ;  显示前两条数据
    • limit   3,5;  从第3+1条数据开始,一共显示5条

    8)max(字符串)  比较字符串的ASCII码

    9)exists拓展(后续补充)

    10)合并查询,union:去重、排序,union all:全集

    11)条件更新:update person set info='学生' where age between 19 and 26;

    完整查询语句

    SELECT DISTINCT <select_list>
    FROM <left_table>
    <join_type> JOIN <right_table>
    ON <join_condition>
    WHERE <where_condition>
    GROUP BY <group_by_list>
    HAVING <having_condition>
    ORDER BY <order_by_condition>
    LIMIT <limit_number>

    执行顺序

    1)FORM: 对FROM左边的表和右边的表计算笛卡尔积,产生虚表VT1。
    2)ON: 对虚表VT1进行ON过滤,只有那些符合<join-condition>的行才会被记录在虚表VT2中。
    3)JOIN: 如果指定了OUTER JOIN(比如left join、 right join),那么保留表中未匹配的行就会作为外部行添加到虚拟表VT2中,产生虚拟表VT3。
    4)WHERE: 对虚拟表VT3进行WHERE条件过滤。只有符合<where-condition>的记录才会被插入到虚拟表VT4中。
    5)GROUP BY: 根据group by子句中的列,对VT4中的记录进行分组操作,产生VT5。
    6)HAVING: 对虚拟表VT5应用having过滤,只有符合<having-condition>的记录才会被 插入到虚拟表VT6中。
    7)SELECT: 执行select操作,选择指定的列,插入到虚拟表VT7中。
    8)DISTINCT: 对VT7中的记录进行去重。产生虚拟表VT8.
    9)ORDER BY: 将虚拟表VT8中的记录按照<order_by_list>进行排序操作,产生虚拟表VT9.
    10)LIMIT:取出指定行的记录,产生虚拟表VT10, 并将结果返回。

     索引

  • 相关阅读:
    ubuntu下查看某个头文件来自哪个软件包?
    系统调用fork()在powerpc上的源码分析
    linux应用程序如何从用户空间进入内核空间?
    执行docker ps时提示"dial unix /var/run/docker.sock: connect: permission denied"如何处理?
    ubuntu上安装远程桌面服务
    执行python安装命令时报错"ModuleNotFoundError: No module named 'setuptools'"如何处理?
    在arm下使用docker build创建容器镜像时磁盘空间不足如何处理?
    9、序列
    8、数据类型
    7、运算符与表达式
  • 原文地址:https://www.cnblogs.com/songjn/p/13800924.html
Copyright © 2020-2023  润新知