SQL基础教程(为SQL注入做准备)

  还是一样,这篇文章是为了我自己SQL方面做的笔记,如果这篇文章没有你想要的东西,那么我很抱歉。如果有你想要的知识,我很开心的帮助到了你。

  

一些最重要的 SQL 命令

  • SELECT - 从数据库中提取数据
  • UPDATE - 更新数据库中的数据
  • DELETE - 从数据库中删除数据
  • INSERT INTO - 向数据库中插入新数据
  • CREATE DATABASE - 创建新数据库
  • ALTER DATABASE - 修改数据库
  • CREATE TABLE - 创建新表
  • ALTER TABLE - 变更(改变)数据库表
  • DROP TABLE - 删除表
  • CREATE INDEX - 创建索引(搜索键)
  • DROP INDEX - 删除索引


请记住...

  • SQL 对大小写不敏感:SELECT 与 select 是相同的。
  • 某些数据库系统要求在每条 SQL 语句的末端使用分号。分号是在数据库系统中分隔每条 SQL 语句的标准方法,这样就可以在对服务器的相同请求中执行一条以上的 SQL 语句。


  • 注释从/*开始,到*/结束,/*和*/之间的任何内容都是注释

1.1 检索单个列     

SELECT prod_name FROM Products;

  上述语句利用SELECT语句从Products表中检索一个名为prod_name的列。所需的列名写在SELECT关键字之后,FROM关键字指出从哪个表中检索数据。

  

  

上图中的prod_name即为我查看的东西。

  提示:未排序数据
  如果你自己试验这个查询,可能会发现显示输出的数据顺序与这里的不同。出现这种情况很正常。如果没有明确排序查询结果,则返回的数据没有特定的顺序。返回数据的顺序可能是数据被添加到表中的顺序,也可能不是。只要返回相同数目的行,就是正常

的。

  提示:使用空格

  在处理SQL语句时,其中所有空格都被忽略。SQL语句可以写成长长的一行,也可以分写在多行。


1.2 处理多个了列

SELECT prod_id, prod_name, prod_price 
FROM Products;

  在选择多个列时,一定要在列名之间加上逗号,但最后一个列名后不加。如果在最后一个列名后加了逗号,将出现错误。


  prod_name和prod_price是我想要查看的东西。


1.3 检索所有列

  除了指定所需的列外(如上所述,一个或多个列),SELECT语句还可以检索所有的列而不必逐个列出它们。在实际列名的位置使用星号(*)通配符可以做到这点,如下所示。

SELECT *
FROM Products;

  

  提示:检索未知列

  使用通配符有一个大优点。由于不明确指定列名(因为星号检索每一列),所以能检索出名字未知的列。这是一个SQL注入的点


 1.4 检索出不同的值

  SELECT语句返回所有匹配的行。但是,如果你不希望每个值每次都出现,该怎么办呢? 如上图所看到的vend_id是许多重复的,我只想让重复的出现一次,要用到下面的命令。

SELECT DISTINCT vend_id
FROM Products;

  SELECT DISTINCT vend_id告诉DBMS只返回不同(具有唯一性)的vend_id行,所以正如下面的输出,只有3行。



警告:不能部分使用DISTINCT

DISTINCT关键字作用于所有的列,不仅仅是跟在其后的那一列。例如,你指定SELECT DISTINCT vend_id, prod_price,除非指定的两列完全相同,否则所有的行都会被检索出来。


1.5 限制结果

  SELECT语句返回指定表中所有匹配的行,很可能是每一行。如果你只想返回第一行或者一定数量的行,该怎么办呢?这是可行的,然而遗憾的是,各种数据库中的这一SQL实现并不相同。 在这里我只用MySQL的语句用法。

SELECT prod_name
FROM Products
LIMIT 5;

  上述代码使用SELECT语句来检索单独的一列数据。LIMIT 5指示MySQLDBMS返回不超过5行的数据。


   这个结果请自行与上文对比是否正确。

SELECT prod_name
FROM Products
LIMIT 5 OFFSET 5;

LIMIT 5 OFFSET 5指示MySQLDBMS返回从第5行起的5行数据。第一个数字是指从哪儿开始,第二个数字是检索的行数。


  LIMIT指定返回的行数。带OFFSET的LIMIT指定从哪儿开始。在我们的例子中,Products表中只有9种产品,所以LIMIT 5 OFFSET 5只返回了4行数据(因为没有第5行) 

警告:第0

第一个被检索的行是第0行,而不是第1行。因此,LIMIT 1 OFFSET 1 会检索第2行,而不是第0行。

提示:MySQLMariaDB快捷键
MySQLMariaDB支持简化版的LIMIT 4 OFFSET 3语句,即LIMIT 3,4。使用这个语法,,之前的值对应LIMIT, 逗号之后的值对应OFFSET。




猜你喜欢

转载自blog.csdn.net/qq_39495209/article/details/79935925
今日推荐