zoukankan      html  css  js  c++  java
  • MYSQL学习笔记(一)

     SQL 的执行顺序

    FROM -> ON  -> JOIN  -> WHERE -> GROUP BY -> AVG() SUM()MAX()..-> HAVING -> SELECT -> DISTINCT -> ORDER BY -> LIMIT

    一般子查询:先执行子查询、再执行主查询。

    相关子查询:先执行主查询、再执行子查询。

    1.序号

    SELECT  (@i:=@i+1)  i,a.account FROM  user a  ,(SELECT   @i:=0)  t2 ORDER BY a.account DESC LIMIT 10;

     2.按指定顺序输出

    SELECT s.id schoolId,s.name schoolName
    FROM sys_school s
    WHERE s.id IN (1) order by FIELD(id,1);

    3 取平均值+保留小数点后两位+为空的不计算

    CONVERT (AVG( CASE WHEN size IS NOT NULL AND  size != '' THEN size END) ,DECIMAL(10,2)) AS "size",

    4. json 中获取某个值

    REPLACE (JSON_EXTRACT( 字段名,'$.key' ), '"', '' )
    {"key":"value","key2":"value2"} 

     5. 单次删除多张表数据(关联删除)

        DELETE
            t1,t2,t3,t4,t5
            FROM
            主表 AS t1
            LEFT JOIN 表2 AS t2 ON t1.id = t2.p_id
            LEFT JOIN 表3 AS t3 ON t1.id = t3.p_id
            LEFT JOIN 表4 AS t4 ON t1.id = t4.p_id
            LEFT JOIN 表5 AS t5 ON t1.id = t5.p_id
         WHERE t1.id in (${ids})

     6.为什么建索引?

    索引是帮助高效的获取数据的排好序的数据结构

    navicat 设计表中就可以加索引

     那么哪些字段加索引?

    1.表的主键、外键+

    2.Where 中经常使用的字段+

    3.经常与其他表关联使用的字段+

    4.索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引

    7.MD5加密:MD5()

    #  小插曲-》问题:

      把localhost 改成本地 ip访问:

        1.找到本地mysql 安装路径: 不知道安装在哪了? 右键->启动任务管理器->服务->找到mysql ->右键转到进程->右键打开文件位置

        2.配置环境变量;

        3. use mysql;

         update user set host = '%' where user = 'root';

            flush privileges;

            select 'host','user' from user where user='root';

            quit;

        4.登录mysql 后执行

           GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.154' IDENTIFIED BY '密码' WITH GRANT OPTION;  改成自己的IP ,'密码' 改成自己的密码

        5.重启电脑不好使了。。 看mysql 服务是否被停用了

        ** 账号缺少权限 :
        GRANT XA_RECOVER_ADMIN ON *.* TO 'root'@'%';

    navicat操作:

    用户->新建用户

    服务器授权:

     

     任务管理器 重启mysql

     

    8.navicat 查看mysql 版本:

    select version() from dual;

      9.查询当月的数据

    AND DATE_FORMAT( 数据库字段, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )

    @

    -------博客内容仅用于个人学习总结-------
  • 相关阅读:
    Python入门--14--字典
    Python入门--13--爬虫一
    Python入门--13--递归
    Python入门--12--函数与变量
    Python入门--11--自定义函数
    Python入门--10--序列
    mysql 删除重复记录
    Java 不可编辑的Map
    mysql left join
    mysql 超过5名学生的课
  • 原文地址:https://www.cnblogs.com/DarGi2019/p/11763674.html
Copyright © 2011-2022 走看看