zoukankan      html  css  js  c++  java
  • 第20讲:SQL语法与关键知识点

    什么是SQL

    SQL 的全称为 Structured Query Language 结构化查询语言,它是一个数据领域的 DSL,也就是说它是一种特殊的构建语法,可以用来支持对数据领域的各种通用操作

    SQL的分类


    SQL按照用途的不同可以分为四大类:
    1.DDL,DDL 是一种数据定义语句,里面主要包含库表创建的语句;
    2.DML,DML 是数据操作的语法,里面包含增删改查的基本操作语句;
    3.DCL,DCL 是数据库的控制语句,主要用于对一些权限的设定;
    4.TCL,TCL 包含一些关于树的相关处理语句

    查询语句

    基本查询语句

    SELEST *FROM titles;
    

    我们还可以对单独的字段进行查询,比如查询某个title字段的内容,可以通过 selest title 查询,如果有多个字段,你还可以使用逗号进行隔开

    select title from titles;
    

    再一个是条件查询,比如 select * from titles,你可以指定条件比如 where title='Engineer',这里注意 where 条件是很关键的

    SELECT * FROM `titles` where title='Engineer'
    

    还有就是排序,查询出来的数据可以根据emp_no进行排序,通常可以使用 order 语句,by 后面可以添加排序的字段和升降序(默认是升序)

    SELECT * FROM `titles` order by emp_no;
    

    然后是分页,很多网站在查询数据时都涉及分页,分页其实就是使用了一个 limit,我们可以使用 offset 指定分页的偏移量是多少。这里显示的是第5行到第14行的数据

    SELECT * FROM `titles` limit 10 OFFSET 5;
    


    最后是去重,如果表中的数据是有重复,就可以使用 distinct 来完成对数据的去重操作,以上便是基本的查询语句

    SELECT distinct gender FROM employees;
    

    条件查询语句

    在查询出结果之后,有的时候我们就需要在结果中筛选一个特定条件的子集,这个时候就需要使用条件查询,条件查询语句就是在 select 语句之后,甚至是 updata、delete 语句之后,添加上一个至关重要的 where 语句,它可以限定一些你想要的条件,那么条件都包含哪些呢?
    比如比较查询的值是大于多少、小于多少等等,或者说我的条件是一个字符串,那么我们可以使用一些通配符对字符串进行通配

    SELECT * FROM employees WHERE emp_no > 10001;
    

    除此之外,还可以使用一个范围的限定,比如说筛选某个价格在 10 元到 20 元之间产品,就可以使用 between and 语句来完成。再有一个就是对子集的限定,可以使用 in 结构,将某一个字段包含在一个特定的子集内,子集里面即可以是一个单列的数据项,也可以是另外的一个数据结构

    SELECT * FROM employees WHERE emp_no BETWEEN 10002 AND 10006;
    SELECT * FROM employees WHERE emp_no IN (10002, 10006);
    

    最后就是逻辑关系,当我们需要多个条件匹配到一起的时候,就需要使用 and、or 或者是 not 语句来完成条件的各种复杂的关系判断

    SELECT * FROM employees WHERE emp_no IN (10002, 10006) AND gender='M';
    

    聚合查询语句

    聚合查询在我们的工作中也非常有用,通常它用来统计一些特定数据,比如说统计员工表中男女员工的人数,你就可以使用 group by 来对某一个字段进行分类,从而计算表中的一些相关数据
    在这里举一个简单的例子,我们去查询员工信息表,你可以看到在表中有性别项、我们根据性别统计这家公司里男女员工到底有多少人

    SELECT COUNT(gender), gender FROM employees GROUP BY gender;
    


    执行完之后你可以看到这家公司男女员工总共有多少人,当然我们还可以限定一定的条件,这个时候就不能再使用 where了,因为它是限定 group by 的,所以为了区分就有了一个新的关键词 having,having 可以指定到底是哪一个子分类获取数据,以上聚合查询

    插入语句

    INSERT INTO `employees`(`emp_no`, `birth_date`, `first_name`, `last_name`, `gender`, `hire_date`) VALUES (999,'1991-03-01','beck','zhai','M','2020-01-01');
    

    更新语句

    UPDATE employees SET first_name="li", last_name="ming" WHERE first_name="beck";
    

    删除语句

    DELETE FROM employees;   #删除整个表
    DELETE FROM employees WHERE first_name="li";   #删除表里first_name为"li"的数据
    
  • 相关阅读:
    【代码笔记】Web-CSS-CSS Display
    【代码笔记】Web-CSS-CSS 分组和嵌套
    【代码笔记】Web-CSS-CSS Padding(填充)
    【代码笔记】Web-CSS-CSS Margin(外边距)
    【代码笔记】Web-CSS-CSS Border(边框)
    【代码笔记】Web-CSS-CSS盒子模型
    【代码笔记】Web-CSS-CSS Table(表格)
    【代码笔记】Web-CSS-CSS样式列表(url)
    【代码笔记】Web-CSS-CSS 链接(link)
    【代码笔记】Web-CSS-CSS Fonts(字体)
  • 原文地址:https://www.cnblogs.com/my_captain/p/12838274.html
Copyright © 2011-2022 走看看