zoukankan      html  css  js  c++  java
  • MySQL-排序、GROUP BY、连接、NULL值处理、正则表达式、事务

    1、MySQL排序

      语法:SQL SELECT 语句使用ORDER BY子句将查询数据排序后再返回数据

      SELECT field1,field2,...fieldN FROM table_name1,table_name2....ORDER BY field1,[field2...][ASC][DESC]

    2、MySQL GROUP BY语句

      在分组的列上可以使用COUNT,SUM,AVG等函数

      语法:SELECT column_name,function(column_name)FROM table_name WHERE column_name operator value GROUP BY column_name;

      使用WITH ROLLUP:WITH ROLLUP可以实现在分组统计数据基础上再进行相同的统计(SUM,AVG,COUNT...)

    3、MySQL连接的使用

      可以在SELECT,UPDATE,和DELETE语句中使用MySQL的JOIN联合多表查询

      INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录

      LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录

      RIGHT JOIN(右连接):与LEFT JOIN相反,用于获取右表所有记录,即使左表没有对应匹配的记录

      例:SELECT a.table1_id,a.table2_author,b.table1_count FROM table1 a INNER JOIN table2 b ON a._author = b._author;

        SELECT a._id,a._author,b._count FROM table1 LEFT JOIN table2 b ON a._author = b._author;

        SELECT b._id,b._author,a._count FROM table1 a RIGHT JOIN table2 b ON a._author = b._author;

    4、MySQL NULL值处理

      SELECT 命令及WHERE 子句读取数据表中的数据,当提供的查询条件字段为NULL时,该命令可能就无法正常工作

      IS NULL:当列的值是NULL,此运算符返回true;

      IS NOT NULL:当列的值不为NULL,运算符返回true;

      <=>:比较操作符(不同于=运算符),当比较的两个值为NULL时返回true

      例:SELECT * FROM table WHERE count IS NULL;

        SELECT * FROM table WHERE count IS NOT NULL;

    5、MySQL 正则表达式

      (1)查找name字段中以‘st’为开头的所有数据;

        SELECT name FROM person_tbl WHERE name REGEXR '^ST';

      (2)查找name字段以‘ok’为结尾的所有数据;

        SELECT name FROM person_tbl WHERE name REGEX 'OK$';

      (3)查找name字段中包含‘mar’字符串的所有数据;

        SELECT name FROM person_tbl WHERE name REGEXP 'mar';

      (4)查找name字段中以元音字符开头或以‘ok’字符串结尾的所有数据;

        SELECT name FROM person_tbl WHERE name REGEXP '^[aeiou]|ok$';

    6、MySQL事务

      •在MySQL中只有使用了Innodb数据库引擎的数据库或表才支持事务;

      •事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部执行,要么全部不执行;

      •事务用来管理insert,update,delete语句

     事务必须满足4个条件(ACID):Atomicity(原子性)、Consistency(稳定性)、Isolation(隔离性)、Dutability(可靠性)

            原子性:一组事务,要么成功;要么撤回;

            稳定性:有非法数据(外键约束之类),事务撤回;

            隔离性:事务独立运行。一个事务处理后的结果,影响了其他事务,那么事务会撤回。事务的100%隔离,需要牺牲速度

            可靠性:软、硬件崩溃后,InnoDB数据表驱动会利用日志文件重建修改。可靠性和高速度不可兼得

    在MySQL控制台使用事务操作

    1、开始一个事务 start transaction

    2、做保存点 savepoint 保存点名称

    3、操作

    4、可以回滚,可以提交,没有问题就提交,有问题就回滚

  • 相关阅读:
    Oracle varchar2最大支持长度(转)
    Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结(转)
    Android java.net.SocketException四大异常解决方案
    Android 设定activity的进入和退出效果
    Android TabHost 动态修改图标或者动态改变标题
    Android TabHost中实现标签的滚动以及一些TabHost开发的奇怪问题
    Android 动态Tab分页效果
    Android ActionBar通过Tab进行不同的Fragment之间的交换
    Android 如何动态改变Actionbar上的item图标
    RGB颜色查询对照表
  • 原文地址:https://www.cnblogs.com/panpy/p/8284905.html
Copyright © 2011-2022 走看看