MYSQL

一、子查询与连接

       1.子查询(Subquery):出现在其他SQL语句中的SELECT子句

                                          嵌套在查询内部,且始终出现在圆括号里

                                          可以包含多个关键字或条件,如DISTINCT,GROUP BY,ORDER BY,LIMIT ,函数等

                                           子查询的外层可以是SELECT,INSERT, UPDATE, SET ,DO等

                                          子查询可以返回标量,一行,一列,或者子查询

                                           用ALL,ANY,SOME修饰的比较运算符

                   operand comparison_operator ANY|ANY|SOME (Subquery)

                                          =ANY等价于IN;!=ALL等价于<>ALL等价于NOT IN

                                           INSERT +表名+ SELECT .....

      2.多表更新:

                 UPDATE + table_references  SET col_name1=...,col_name2=...   WHERE ...

                  table_references:

                             表名A+连接类型+表名B +ON 条件

                 CREATE TABLE 【IF NOT EXISTS】+表名(表定义,如包含哪些column)+select_statement

       3.连接:

                连接类型:内连接【INNER JOIN】,只显示相连接的部分

                                              在mysql中JOIN,CROSS JOIN , INNER JOIN 是等价的

                                左外连接【LEFT OUTER JOIN】,显示左表的全部和右表中相连接的部分

                                右外连接【RIGHT OUTER JOIN】,显示右表的全部和左表中相连接的部分

               连接条件:通常ON关键字用来设定连接条件;

                                WHERE 关键字用来进行结果集记录的过滤

       4.无限分类数据表设计

              通过自身连接实现,如

                           CREATE TABLE tdb_goods_types(

                             type_id SMALLINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,

                             type_name VARCHAR(10) NOT NULL,

                             parent_id SMALLINT UNSIGNED NOT NULL DEFAULT 0);

       5.多表删除 DELETE tab_name[.*],.....FROM  table_references WHERE....

二、mysq的库存函数

       1、字符函数:CONCAT()  字符连接,例如,CONCAT("MY","SQL");

                             CONCAT_WS()用指定分割符连接字符,例如,CONCAT("-","YOU","ME",HIM");

                             FORMAT() 数字格式化,例如,FORMAT(a,b)将a按四舍五入保留b位小数;

                             LOWER() 将字符转换为小写形式

                             UPPER() 将字符转换成大写形式

                             LEFT(字符,a,b) 将字符从左侧第a位开始,取b位;RIGHT();

                             LENGTH() 获取字符长度;    LTRIM() 删除前导空格;RTRIM()删除后续空格;TRIM()删除前导后续空格

                             SUBSTRING(字符,a,b)截取字符串

                             【NOT】 LIKE  模式匹配  例如MAING  LIKE M%

                              REPLACE() 字符替换 ,例如,REPLACE("???MY??SQL???","?","")

       2.数值运算符函数:

              CEIL()  进一取整;                 DIV     整数除法                     FLOOR()  舍一取整

              MOD  求余                            POWER(a,b)求幂运算       ROUND() 四舍五入    TRUNCATE()数字截取

       3.比较运算函数

             【NOT】 BETWEEN.... AND....    【不在】范围之内

              【NOT】NOT IN()    【不】在列出值之中

               IS [NOT] NULL    【不】为空

       4.日期函数:NOW();当前日期和时间                       CURDATE()当前日期

                           CURTIME()  当前时间         DATE_ADD()  日期变化 ,例如DATE_ADD("2013-02-13",INTERVAL 365 DAY)

                          DATEDIFF() 日期差值         DATE_FORMAT() 日期格式化

       5.聚合函数 : AVG() 平均数             COUNT() 计数                  MAX()  最大值

                            MIN() 最小值               SUN()  求和

        6.加密函数:MD5()        信息摘要算法                        PASSWORD() 加密算法

        7.信息函数:CONNECTION()  连接ID

                            DATABASE() 当前数据库                       VERSION()版本信息

                            LAST_INSERT_ID()  最后插入值               USER() 用户信息

三、自定义函数

         1.CREATE FUNCITON 函数名 +  RETURNS + 返回值类型(STRING)+ 函数体

           函数体由合法的SQL语句构成;

           函数体可以是简单的SELECT ,INSERT语句;

           也可以是符合结构,使用BEGIN....END语句;

          复合结构可以包含声明、循环、控制结构

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值