zoukankan      html  css  js  c++  java
  • MySQL学习笔记(2/2)

    SQL种类

    DDL/DML/DQL/DCL 中括号[]里面的表示可选,大括号{}里面的表示必须从里面选一个,FEILED表示字段。

    数据定义语言(DDL):CREATE、DROP、ALTER

    用于定义和管理数据对象(库,表,索引,视图),包括数据库、数据表等。例如:CREATE、DROP、ALTER等语句。

    数据操作语句(DML):和表中的数据记录

    用于数据库对象多包含的数据,例如INSERT、UPDATE、DELETE语句。

    1.插入数据

    INSERT INTO 表名([字段列表]) VALUES(值列表),(值列表2),(值列表3)

    特点:

    1. 如果在表名后没有给出字段列表,则值列表必须列出所有字段的值,必须按表中默认的顺序插入
    2. 所有需要写字段名的地方都不加单引号或双引号,但所有值建议都要以字符形式使用
    3. 建议在插入数据时,最好给出字段列表,则值要和字段列表对应即可,可以不按表中字段的顺序

    例如:

    INSERT INTO CATS(pid,name) VALUES('2','j2sc'),('2','j2mc'),('2','j2ee'),('3','thinkphp');

    2.修改/更新数据

    UPDATE 表名 SET 字段='值’[,字段2=‘值2’,...] [条件] 条件是确定要更改的记录,可以通过条件

     指定一条多多条

    例如:

    3.删除数据

    DELETE FROM 表名[条件]

    如果不加条件就是直接删除该表,但是这时不如:TRUNCATE CATS 的效率高,该语句是直接截断表。

    条件是:where ...

    数据查询语言(DQL)

    用于查询数据库对象所包含的数据,能够进行单表查询、连接查询、嵌套查询、以及集合查询等各种复杂程度不同的数据查询,并将数据返回到客户机中显示。例如:SELECT语句。(60%)不能 

    SELECT [ALL|DISTINCT]//针对某个重复记录,返回去重后的结果。

    {*|TABLE.*|[TABLE.]FIELD1[AS ALIAS1][,[TABLE.]FIELD2[AS ALIAS]][...]}  //哪些表的哪些字段

    FROM 表名

    [WHERE...]//条件

    [GROUP BY...]//分组

    [HAVING...]//分组条件 

    [ORDER BY...]//排序,desc倒序,默认asc正序

    [LIMIT count]//限制数量,eg:LIMIT 0,1代表从零取,取一个。

    目的就是使用SELECT查询语言按特定要求返回数据。

    1.字段 要列出要查询的字段

    2.可以为每个字段起别名,后面会用到(关键字 多表查询),表也可以起别名(多表查询)

    3.distinct返回去重后结果

    4.在SQL语句中可以使用表达式的列(算术运算符,逻辑运算符,可以使用条件...  )

    另外可以在DML和DQL中使用各种运算符,可以把字段当做一个变量。

    5.WHERE 条件//定位到某个或某些条件的记录

    可以用于UPDATE DELETE SELECT

    逻辑运算符

    && || !

    AND OR NOT

    比较运算符

    =、<=>、!=、<>、<、<=、>、>=  //<=>和等号作用一样,但可以用于NULL值。

    IS NULL、IS NOT NULL、BETWEEN AND、NOT BETWEEN AND、

    LIKE、NOT LIKE  //模糊查询,_(任意一个字符)和%(0或多个任意字符)两个通配符

    IN、

    REGEXP RLIKE  //正则表达式,^(以什么开头的)和$(以什么结尾的)

    6.多表查询(连接查询)

    把多个表都填到FROM后面用逗号隔开。

    7.嵌套查询(子查询)

    WHERE里面有一个SELECT 查询语句。

    8.分组

    统计与分组连用表示对某个组里面的数据进行统计: COUNT()数量、SUM()、AVG()、MAX()、MIN()

    eg:SELECT cid ,COUNT(*),price,SUM(PRICE) FROM PRODUCTS GROUP BY cid;

    9.分组统计数据的条件

    HAVING AVG(price)>500;

    数据控制语句(DCL)

    是用来管理数据库的语言,包含管理权限及数据更改。例如:GRANT/REVOKE/COMMIT/ROLLBACK等语句

     MySQL内置函数

    函数中可以将字段名作为变量来用,变量的值技术这个列对应的每一行记录。

    CONCAT 字符串连接函数,

    一、字符串函数

    1.CONCAT(s1,s2,...,)  //把传入的参数连接成一个字符串

    2.INSERT(str,x,y,insert)  //将字符串x开始y个长度替换为insert

    3.LOWER(str) UPPER(str)  //大小写转换

    4.LEFT(str,x)  RIGHT(str,x)  //返回最左边/最右边x个字符,x为空时,什么也不返回

    5.LPAD(str,n,pad)  RPAD(str,n,pad)  //pad串对str串的最左边/最右边填充,直到总长度达到n

    6.TRIM(str)  LTRIM(str)  RTRIM(str)  //去掉str串两边/左边/右边的空格

    7.REPLACE(str,a,b)  //把str中所有的串a替换成串b

    8.STRCMP(s1,s2)  //比较字符串,><=返回1 -1 0

    9.SUBSTRING(str,x,y)  //截取,截取str中x串开始y长度的串

    二、数值函数

    1.ABS(x)  //x的绝对值

    2.CEIL(x)  //进一取整,返回大于x的最小整数

    FLOOR(x)  //割舍取整,返回小于x的最大整数

    3.MOD(x,y)  //模,x/y

    4.RAND()  //返回0-1之间的随机数,乘以一百然后取整就是0-100之间的随机数

    5.ROUND(x,y)  返回x的y位四舍五入后的小数

    TRUNCATE(x,y)  返回x的y位小数截断的结果

    三、日期函数

    1.CURDATE()   //返回当前日期

    2.CURTIME()  //返回当前时间

    3.NOW()  //返回当前日期加时间

    4.UNIX_TIMESTAMP(date)  //UNIX时间戳

    FROM_UNIXTIME()

    WEEK()  YEAR()  HOUR()  MINITE()  ...

    四、流程控制函数

    1.IF(value,t,f)  //如果value为真返回t,假返回f,其中value是条件,eg:if(salary>3000,'high','low');

    2.IFNULL(value1,value2)  //如果为NULL返回value2,否则返回value1,利用这个函数可以把空值转成0进行运算,eg:IFNULL(salary,0)

    3.CASE WHEN [value1] THEN [result] ELSE [default] END  //如果value1为真返回result,否则返回default,eg:CASE WHEN salary<=3000 THEN ‘low’ ELSE 'high' END;

    五、其它函数

    DATABASE()  //数据库

    VERSION()  //当前MySQL版本

    USER()  //用户

    INET_ATON(ip)  INET_NTOA()   //1.ip串转换成数,2.数转换成串。其中数是:用数字代表的网络字节序

    PASSWORD()  //MySQL 用户数据加密

    MD5()  //应用数据加密

    G 转置输出

    连接MySQL

    一、VC++6.0

    二、VS

    三、...

    各种手册,例如MySQL 5.1参考手册。

  • 相关阅读:
    第十三周总结
    第一阶段意见评论
    第十二周总结
    关于transform的3D变形函数
    12.9学习内容
    12.8学习的内容
    这是自己的第一篇博客
    食物链
    poj1988Cute Stacking
    银河英雄传说
  • 原文地址:https://www.cnblogs.com/laohan1221/p/5747615.html
Copyright © 2011-2022 走看看