• DML以及DQL的使用方法


    DML:数据操作语言

    1.插入insert into

    单行插入:insert into 表名 (字段名, 字段名,。。。) values (值, 值, 。。。) 注:值列表要和字段列表相匹配。

         insert into 表名  values  (值, 。。。) 表示全字段都插入相应的值。

    多行插入:insert into 表名 (字段列表) select 字段列表/* from 表名 where 条件

           insert into 表名 select 字段列表/* from 表名 where 条件 

      注:主要应用与表之间数据的复制

    2.修改update

      update 表名 set 字段名1=值1, 字段名2=值2... where 条件。

      如果不加where条件就是全表更新。

    3.删除delete

    全表删除:delete from 表名  效率较低(因为此方法再删除时机器会先建立日志,先复制储存一遍再进行删除)

         truncate table 表名 效率高(通常采用此方法进行全表的删除)

    选择删除:delete from 表名 where 条件

    DQL:数据查询语言

    一.查询某个表中的某个字段:select 字段名/* from 表名 。 当是*号时表示查询所有字段

    给表加别名: student t   。   给字段加别名: son as s   

    二.排序order by的用法:

    1.order by 字段名1 asc/desc, 字段名2 asc/desc,...

     先按照字段名1的升序/降续给表进行排列 然后 按照字段名2的升序/降续给表进行排列。 其中排在前面的字段名优先进行排列,排在后面的在前面的基础上在进行排列。

    2. order by 字段序号 asc/desc, 字段序号 asc/desc,...

    按照字段的序号进行排列,字段的序号就是表中每个字段从左到右依次排列的顺序,从1开始。字段序号对应相应的字段名。

    3.

    asc(升序)/desc(降续)

    order by 默认是升序排列的,所以我们在进行排列时

    如果要按升序进行排列,就不需要写asc。

    如果要按降续进行排列,就   需要写desc。

    4.order by 要放在where语句的后面

    三.group up的用法

    1.group up 字段列表

    2.group by 字段列表 having 过滤条件

    在一完整的语句中select后面仅可以跟要分组的字段和聚合函数

    四.多表之间的关联查询

    1.join on 负责关联两个表 (内连接)

    用法:select * from 表名 join 表名 on 两表之间的连接关系

    例:学生表与成绩表两表之中都有学号,那么我就可以把学号作为关联两表之间的等式关系。

      select * from student t join score e on t.sno=e.sno

    当然我们也可以关联更多的表,只需要在后面继续添加join 表名 on 链接关系即可。注意我们要把主表放在from后面。

    例:成绩表中有学生号(sno)和课程号(con),学生表中有学号,课程表中有课程号,那么我们可以把成绩表作为主表,利用主表中的学号与课程号与学生表和课程表进行关联。

      select * from score e join student t on e.sno=t.sno join couser r on e.con=r.con

    内连接特点:表的数据和另外一个表没有可关联数据,那该数据就会被隐藏

    2.左联接 left join on(用的比较多)

    用法:同内连接一样只是在join前面加了left。

    特点:可以保证左边表的数据会全部显示

    3.右连接 right join on

    用法:同内连接一样只是在join前面加了right。

    特点:可以保证右边表的数据会全部显示

    4.全连接 full join on 

    用法:同内连接一样只是在join前面加了full

    特点:这样就保证了左右两边的表中的全部数据都会显示

    五.结果集合并 union(自动去除重复数据)

    用法:用来合并两条查询语句。当我们要把连个毫无联系的查询结果或者两个表进行合并成一个表,但要去除重复数据时,我们就需要用 union 进行合并。

    例(取并集,去重复):我要查询学生表中的学号(sno)和教师表中的教工号(tno)

      select sno from student

      union

      select tno from teacher

    当我不想去掉重复数据时,我只需要在union 后面加一个 all即可

    例(取并集,不去重复)

      select sno from student

      union all

      select tno from teacher

    例(取交集)

      select sno from student

      intersect

      select tno from teacher

    例(取差集)

      select sno from student

      minus

      select tno from teacher

    六.Distanct 去重复记录

    用法:用来去重表中的重复数据。

    例:select distinct * from student  或者  select distinct(字段名) from student

    总结一下:

    在我们使用DQL查询语句时,不仅要搞懂每种特定语句的使用方式,更要了解清楚查询时的逻辑关系,有时在查询一个很复杂的数据时,我们不妨转换一下几种方式。

    例如:

    1.子查询的嵌套思想。

    2.把查询出来的结果当做条件中的数值或者数组

    3.其实我们间接查出来数值,我们都可以把它看做是一个表,然后把它作为表与其他表进行关联等等。

    4.条件where的使用方式是很重要的:

    1.where都是附属在DQL,DML语句后面的

    2.where 后使用比较运算符,逻辑运算符连接

  • 相关阅读:
    python 复制文件并重命名,copy多份规律文件
    抓取“维库电子市场”供应商程序
    css 去除按钮、链接中的虚线框
    jQuery 隐藏和显示 input 默认值
    Ps画虚线
    jQuery 表格展开伸缩
    抓取“华强电子网”供应商程序
    jquery两边飘浮的对联广告
    jQuery 验证表单
    用ps调渐变色 实用推荐
  • 原文地址:https://www.cnblogs.com/AnswerTheQuestion/p/6178756.html
Copyright © 2020-2023  润新知