MySql 的增 、删、改、查 四大语句的使用

一、 新增数据

  新增一条数据语句:

INSERT [INTO] taole_name(field1,field2,...) VALUE(value1,value2,...);

  新增多条数据:

INSERT [INTO] taole_name(field1,field2,...) VALUE(value1,value2,...),(value1,value2,...)[,...];

  说明:1. 如果省略字段列表,则必须为所有字段赋值;

     2. auto_increment 字段如果想进行赋值时,可以用 NULL 或 DEFAULT 代替;这样既保证字段名称与字段值数量的匹配,又保证可以自动编号;

     3. 必须保证字段的数量、顺序、数据类型与字段的数量、顺序、数据类型、完全匹配;

 

二、 删除数据

  删除记录(单表删除)

DELETE FROM table_name [WHERE 条件];

  说明: 如果省略WHERE条件,则删除全部记录

 

三、更改数据

  更新记录(单表更新)

UPDATE table_name SET 字段名称=值,字段名称=[,...] [WHERE 条件]

  说明:如果省略WHERE条件,则更新全部记录

 

四、 查询数据

SELECT expr[,...] [FROM table_name [WHERE 条件] [GROUP BY 分组字段][HAVING 分组条件][ORDER BY 排序字段 [ASC|DESC][,...]] [LIMIT [偏移值,]记录数量]]

 

  说明:A.expr的语法结构: expr [[AS] alias]

     B.如果要罗列数据表所有字段,可以通过星号(*)来表示;

     C.如果人为修改为字段的排列顺序或别名,将对MySQL函数库中的相关函数产生影响;

     D.table_name的语法结构是: table_name [[AS] alias]

     E.WHERE条件用于进行记录的过滤;

     F.GROUP BY是按某个字段进行分组,同一组的记录只保留第一条;

     G.HAVING是指对分组的结果进行过滤,必须保证条件要么出现在GROUP BY字段中,要么出现在聚合函数中。

     H.是查询的结果按某个字符进行排序,其中ASC为升序(默认);DESC为降序

     I.LIMIT用于限制返回的记录数,语法结构是LIMIT [offset,]row_count,offset,记录的偏移值,就是从第几条记录开始返回,从0开始编号;row_count,记录的数量,

      就是每次返回多少条记录;
      提示:LIMIT子句主要用于PHP+MySQL实现分页效果,其中row_count参数由程序员决定;offset参数值是由浏览者的交互动作决定的,其计算公式为:(当前页码 - 1) *         每页显示的记录数  计算总页数的公式为:ceil(总记录数 / 每页显示的记录数)

 

五、联合查询

  演示数据表:school_student,  school_chinese,  school_english

        

 

 

 

  1. 内连接(INNER JOIN):仅显示符合连接条件的记录。

SELECT s.number AS `学号`,s.name AS `姓名`,c.score AS `语文`,e.score AS `英语`
FROM school_student AS s 
INNER JOIN school_chinese AS c
ON c.number=s.number 
INNER JOIN school_english AS e
ON e.number=s.number;

     查询结果:

       

 

  2. 外连接(OUTER JOIN):又分为左外连接(LEFT [OUTER] JOIN)和右外连接(RIGHT [OUTER] JOIN)
    左外连接显示左表的全部和右表中符合连接条件的记录;
    右外连接显示右表的全部和左表中符合连接条件的记录;

      连接的语法结构 ... 数据表名称 连接类型 数据表名称 ON 连接条件 ....

SELECT s.id,s.number AS `学号`,s.name AS `姓名`,c.score AS `语文`,e.score AS `英语`
FROM school_student AS s 
LEFT JOIN school_chinese AS c
ON c.number=s.number 
RIGHT JOIN school_english AS e
ON e.number=s.number;

 

    查询结果:

        

 

六、 子查询

    子查询是指嵌套在其他SQL语句内的SELECT子句。子查询必须使用小括号括起来。

    例:获取表school_english 成绩大于等于平均分数的名单:

SELECT * FROM school_english WHERE score>=(SELECT AVG(score) FROM school_english);

    查询结果:

           

    说明:引发子查询的情况

      A.由比较运算符引发的子查询
        如果比较运算符返回多个结果,此时必须用ANY、ALL进行结果的限定
          ANY、ALL
          >、>= ANY,返回最小值
          >、>= ALL,返回最大值
          <、<= ANY,返回最大值
          <、<= ALL,返回最小值
      B.由[NOT] IN引发的子查询
      C.由[NOT] EXISTS引发的子查询

 

 

 

  

posted @ 2017-03-15 04:10  梦缘&江南~  阅读(150)  评论(0)    收藏  举报