mysql基本知识总结

此处使用数据库来至于《mysql 必知必会》的数据库
本文章主要对于表单信息查询

  • 数据选择
    • 基本语法
      SELECT DISTINCT * FROM products LIMIT2,5
      选取products表中的所有数据,*表示全匹配.mysql不区分大小写,但一般使用大写表示系统语句.limit 2,5是表示只显示第二条后的5条数据,这是数据分页的一种方式,前一个数字表示从第几条数据后开始显示,第二个数字表示显示数据的条数,如果只有一个数字表示从第0条数据后开始显示
      SELECT vend_id FROM products
      选取products中vend_id列的全部信息
  • 数据筛选使用where
    • AND/OR操作符
      SELECT vend_id FROM products WHERE vend_id=1001 AND prod_id='ANV01'
      选取vend_id为1001,prod_id为ANV01的信息,当AND变为OR时,表示或.
      AND

图片.png

OR

图片.png
  • IN操作符
    SELECT vend_id FROM products WHERE vend_id IN (1001,1002,1005)
    选取vend_id为1001,1002,1005的数据
图片.png
  • between操作符
    SELECT vend_id FROM products WHERE vend_id BETWEEN 1001 AND 1003
    选取vend_id在1001与1005之间的数据
图片.png
  • not操作符
    SELECT vend_id FROM products WHERE vend_id NOT IN (1001,1002,1005)
    选取vend_id不为1001,1002,1005的数据
图片.png
  • like操作符
    SELECT prod_name FROM products WHERE prod_name LIKE 'jet%'
    选取jet开头的,%是多字符匹配,如果将%改为,时单字符匹配,及jet后加一个字符
    %
    图片.png

    _
图片.png
  • 数据分组
    • group by
      SELECT cust_id,COUNT(*) AS orders FROM orders GROUP BY cust_id HAVING COUNT(*)>=2
      选取数据按照cust_id分组,并且其cust_id所在行的数目大于2.

group by 所在位置要在where之后,order by之前,having在此处相当于执行了group by后执行的where操作

图片.png
  • 排列数据
    • order by
      SELECT prod_id,prod_name,prod_price FROM products ORDER BY prod_id DESC,prod_name
      将选取的数据排序.先按照prod_id的信息进行降序排序,DESC表示降序排序,ASC表示升序排序,mysql默认ASC排序,当prod_id相同时,按照prod_name升序排序
图片.png
  • 子查询
    SELECT cust_id FROM orders WHERE order_num IN (SELECT order_num FROM orderitems WHERE prod_id='TNT2')
图片.png
  • 内部联结
    • 单表联结
      使用INNER JOIN语法
      SELECT vend_name,prod_name,prod_price FROM vendors INNER JOIN products ON vendors.vend_id=products.vend_id
      使用where语法
      SELECT vend_name,prod_name,prod_price FROM vendors , products WHERE vendors.vend_id=products.vend_id
图片.png
  • 多表联结
    SELECT cust_name,cust_contact FROM customers,orders,orderitems WHERE customers.cust_id=orders.cust_id AND orderitems.order_num=orders.order_num
图片.png
  • 自联结
    使用子查询
    SELECT prod_id ,prod_name FROM products WHERE vend_id = (SELECT vend_id FROM products WHERE prod_id='DTNTR')
    使用自联结
    SELECT p1.prod_id,p1.prod_name FROM products AS p1,products AS p2 WHERE p1.vend_id=p2.vend_id AND p2.prod_id='DTNTR'
图片.png
  • 外表联结
    SELECT customers.cust_id,orders.order_num FROM customers LEFT OUTER JOIN orders ON customers.cust_id=orders.cust_id
图片.png

SELECT customers.cust_id,orders.order_num FROM customers RIGHT OUTER JOIN orders ON customers.cust_id=orders.cust_id

图片.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.表中的任何列都可以作为主键, 只要它满足以下条件:任意两行都不具有相同的主键值;每一行都必须具有一个主键值( ...
    Cherryjs阅读 795评论 0 0
  • 于是又到了梧桐絮飘满校园的四月,又到了梧桐色相簿的季节,我们迎来了实习生招聘。 “范老湿从不写代码”,“范老湿从不...
    Lance_Van阅读 774评论 0 1
  • GROUP BY 分组允许把数据分为多个分组,以便能够对每个分组进行聚集计算。(获取每个供应商所提供的商品数量) ...
    ___刘辉良阅读 264评论 0 0
  • 什么是人最好的状态? 不是过了这一阵子,就好了,还有一下阵子。而是只有过好这一阵子,下一阵子才会更加精彩~
    1a56d72b3359阅读 382评论 0 0
  • 成熟某方面来讲是对周围世界逐渐、愈加敬畏的过程。 不是单纯的害怕,而是明白在对待这件事(物)出现差错后会带来多么可...
    L___扶一晏阅读 137评论 0 0