【数据库基础】SQL语句理解与练习

目录

1 学习目标及步骤

  1. 目标:对于零基础入门渗透测试而言,对数据库编程的掌握程度无需像专业数据处理人员那样精通,无需对SQL有多深入的了解,主要是先理解SQL语句的运行规则。
  2. 本阶段对数据库的学习主要分为三个步骤:
    1. SQLzoo平台上学习基础语句,配合SQL语句菜鸟联盟理解基础语句。
      【数据库基础】SQL语句理解与练习
    2. 在SQLzoo平台上根据题目进行练习,加深对语句的理解;
    3. 观看入门教学视频加深理解:【戴师兄】SQL入门免费教程。该专栏视频主要描述SQL语句运行规则,总共有4个视频,时长约3.5h。

2 基础语句

2.1 select 语句

  1. 功能:SELECT 语句用于从数据库中选取数据。
  2. 结果:选取结果被存储在一个结果表中,称为结果集。
  3. 语法:可以用以下语句选择特定列名,或用*代替表示所有列。
SELECT column_name,column_name
FROM table_name;
  1. 练习网址:https://sqlzoo.net/wiki/SELECT
    【数据库基础】SQL语句理解与练习

2.2 Select … where 语句

  1. 功能:SELECT语句用于从数据库中选取数据,WHERE子句用于提取那些满足指定条件的记录。
  2. 语法:
SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;
  1. 练习网址:https://sqlzoo.net/wiki/SELECT_…_WHERE
    【数据库基础】SQL语句理解与练习

2.3 Select … order by 语句

  1. 功能:SELECT语句用于从数据库中选取数据,用于对一列或者多列数据进行升序(ASC)或者降序(DESC)排列。
  2. 默认为升序排列,如果要对某元素按降序排列则在对应关键字后添加参数DESC。
  3. 语法:
SELECT column-list
FROM table_name
[WHERE condition]
[ORDER BY column1, column2, .. columnN] [ASC | DESC];
  1. 例子:
    【数据库基础】SQL语句理解与练习

2.4 Select … group by 语句

  1. 功能:SELECT语句用于从数据库中选取数据, GROUP BY 语句用来对相同的数据进行分组。
  2. 语法:
SELECT column-list
FROM table_name
WHERE [ conditions ]
GROUP BY column1, column2....columnN
ORDER BY column1, column2....columnN
  1. 练习网址:https://sqlzoo.net/wiki/SELECT_…_GROUP_BY
    【数据库基础】SQL语句理解与练习

2.5 Select … join 语句

  1. 功能:JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。
  2. 类型:
    • INNER JOIN:如果表中有至少一个匹配,则返回行;
    • LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行;
    • RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行;
    • FULL JOIN:只要其中一个表中存在匹配,则返回行。
  3. 不同类型的join语句功能图解
    【数据库基础】SQL语句理解与练习
  4. 练习网址:https://sqlzoo.net/wiki/SELECT_…_JOIN
    【数据库基础】SQL语句理解与练习

2.6 insert into 语句

  1. 功能:用于向表中插入新记录,可以插入一行也可以同时插入多行。
  2. 语句:
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)
VALUES (value1, value2, value3,...valueN);
  1. 练习网址:https://sqlzoo.net/wiki/INSERT_…_VALUES
    【数据库基础】SQL语句理解与练习

2.7 update 语句

  1. 功能:用于更新表中已存在的记录。
  2. 语法:
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
  1. 练习网址:https://sqlzoo.net/wiki/UPDATE
    【数据库基础】SQL语句理解与练习

2.8 delete 语句

  1. 功能:用于删除表中的行。
  2. 语法:
DELETE FROM table_name
WHERE some_column=some_value;
  1. 练习网址:https://sqlzoo.net/wiki/DELETE
    【数据库基础】SQL语句理解与练习

2.9 XXX … Select 语句

  1. 功能:在一个查询语句中使用另一个查询语句的结果,用于无法一次查询到所需内容的情况。
  2. 子查询可以与 SELECT、INSERT、UPDATE 和 DELETE 语句一起使用,并可使用运算符如 =、<、>、>=、<=、IN、BETWEEN 等。
  3. 以下是子查询必须遵循的几个规则:
    • 子查询必须用括号括起来。
    • 子查询在 SELECT 子句中只能有一个列,除非在主查询中有多列,与子查询的所选列进行比较。
    • ORDER BY 不能用在子查询中,虽然主查询可以使用 ORDER BY。可以在子查询中使用 GROUP BY,功能与 ORDER BY 相同。
    • 子查询返回多于一行,只能与多值运算符一起使用,如 IN 运算符。
    • BETWEEN 运算符不能与子查询一起使用,但是,BETWEEN 可在子查询内使用。
  4. 语法:
--SELECT 语句中的子查询使用
SELECT column_name [, column_name ]
FROM   table1 [, table2 ]
WHERE  column_name OPERATOR
      (SELECT column_name [, column_name ]
      FROM table1 [, table2 ]
      [WHERE])
      
--INSERT 语句中的子查询使用
--INSERT 语句使用子查询返回的数据插入到另一个表中。
INSERT INTO table_name [ (column1 [, column2 ]) ]
   SELECT [ *|column1 [, column2 ] ]
   FROM table1 [, table2 ]
   [ WHERE VALUE OPERATOR ]

--UPDATE 语句中的子查询使用
--当通过 UPDATE 语句使用子查询时,表中单个或多个列被更新。
UPDATE table
SET column_name = new_value
[ WHERE OPERATOR [ VALUE ]
   (SELECT COLUMN_NAME
   FROM TABLE_NAME)
   [ WHERE) ]

--DELETE 语句中的子查询使用
DELETE FROM TABLE_NAME
[ WHERE OPERATOR [ VALUE ]
   (SELECT COLUMN_NAME
   FROM TABLE_NAME)
   [ WHERE) ]

3 练习

3.1 平台操作简介

本节练习内容主要是该平台左侧红色框内共9节内容,包括对应9节练习。每一节内容和练习完成后,相应的进度条会显示灰色。
【数据库基础】SQL语句理解与练习
当提交内容后答案显示错误时,可以点击查看正确的结果是什么样的,再根据结果调整自己的代码。
【数据库基础】SQL语句理解与练习
当提交答案正确时,会显示笑脸。
【数据库基础】SQL语句理解与练习

3.2 第1节 select basic

网站链接:https://sqlzoo.net/wiki/SELECT_basics
这一节内容主要是熟悉select语句的用法,配合where限定各种条件进行选择。
【数据库基础】SQL语句理解与练习

3.3 第1节 练习

网站链接:https://sqlzoo.net/wiki/SELECT_Quiz
这一小节主要是选择题,公有7题,根据题目要求选择正确答案后,在页面最下方点击提交,会弹出得分及每题答案正确与否。
【数据库基础】SQL语句理解与练习

3.4 第2节 SELECT from WORLD Tutorial

网站链接:https://sqlzoo.net/wiki/SELECT_from_WORLD_Tutorial
有些题目虽然代码不一样,但是搜索结果一样,需要格外注意第13题,由于SQL语句不能区分大小写,所以没必要对大小写进行比较。
【数据库基础】SQL语句理解与练习
【数据库基础】SQL语句理解与练习

3.5 第2节 练习

网站链接:https://sqlzoo.net/wiki/BBC_QUIZ
【数据库基础】SQL语句理解与练习

3.6 第3节 SELECT_from_Nobel_Tutorial

网站链接:https://sqlzoo.net/wiki/SELECT_from_Nobel_Tutorial
在本节第12题中,字符中含有单引号,在搜索语句中使用两个单引号来表示单引号。
在本节第13题中,使用order by进行排序,并使用关键字DESC标识要逆序排列的关键字。
在本节第14题中,我对语句的理解是:在对subject in(‘Chemistry’,‘Physics’)排序时,当subject为’Chemistry’,'Physics’时,值为1,否则为0,值为1的排在值为0的后面;之后再按值为0和1分别对subject进行排序;最后是对作者名称进行排序。
【数据库基础】SQL语句理解与练习

3.7 第3节 练习

网站链接:https://sqlzoo.net/wiki/Nobel_Quiz
【数据库基础】SQL语句理解与练习

4 总结

  1. 掌握select及添加各种条件的查询语句;
  2. 掌握insert 、delete、update等增删改语句;
  3. 掌握增删改查中包含子查询的语句;
  4. 了解一些函数的用法;
  5. 有时间有需要再继续补充SQLzoo其他章节的练习。

参考文献

  1. SQL 教程
  2. SQLzoo练习平台
上一篇:大数据培训:Hive日常操作分享


下一篇:Filecoin - Precommit2计算介绍