• 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参考手册。

  • 相关阅读:
    zoj 1239 Hanoi Tower Troubles Again!
    zoj 1221 Risk
    uva 10192 Vacation
    uva 10066 The Twin Towers
    uva 531 Compromise
    uva 103 Stacking Boxes
    稳定婚姻模型
    Ants UVA
    Golden Tiger Claw UVA
    关于upper、lower bound 的探讨
  • 原文地址:https://www.cnblogs.com/laohan1221/p/5747615.html
Copyright © 2020-2023  润新知