zoukankan      html  css  js  c++  java
  • SQL 基础知识梳理(二)

    目录

    一、SELECT 语句基础

      1.查询指定列:SELECT 关键字

    --语法:
    --SELECT <列名>, ...     -- 希望查询列的名称
    --FROM <表名>            -- 指定选取数据的表
    -- 从 Shohin 中取 3 列
    SELECT shohin_id, shohin_mei, hanbai_tanka  -- 列的顺序可以任意指定,逗号(“,”)分隔,查询结果的顺序和 SELECT 子句中的顺序相同
    FROM Shohin;

      2.查询表的所有列:星号(*)

    --语法
    --SELECT *        -- 星号(*)代表所有列
    --FROM <表名>;

      【备注】使用星号(*)的话就无法设定列的显示顺序

      3.为列设定别名:AS 关键字

    SELECT shohin_id AS Id, shohin_mei AS Name, shiire_tanka Price
    FROM Shohin;    -- 不用 AS 关键字也可以

    SELECT shohin_id AS "编号", shohin_mei AS '名称', shiire_tanka '价格'
    FROM Shohin;    -- 设定汉语别名:加上双引号(")或单引号(')

       4.常数的查询

    SELECT '产品' AS Product,            -- '产品':字符串常数
        38 AS Price,                    -- 38:数字常数
        '2016-09-30' AS '生产日期'        -- '2009-02-24':日期常数

      【备注】字符串和日期使用单引号(')。

      5.从结果中删除重复行:DISTINCT

    原图

      (1)

    SELECT DISTINCT shohin_bunrui FROM dbo.Shohin;  -

    使用 DISTINCT 移除 shohin_bunrui 列中的重复数据

       (2)DISTINCT 对 NULL 类型的处理:存在多条 NULL 值的行时,会结合为一条 NULL 数据。

    SELECT DISTINCT shiire_tanka FROM dbo.Shohin;

       (3)多列之前使用 DISTINCT

    SELECT DISTINCT shohin_bunrui, torokubi
    FROM dbo.Shohin

      DISTINCT 会将多个列的数据进行组合,将重复的数据结合为一条。

      【注意】DISTINCT 关键字只能用在第一个列名之前。

      6.筛选记录:WHERE

      WHERE 子句中可以指定“某一列的值和这个字符串相等”或者“某一列的值大于这个数字”等条件,找出只符合该条件的记录。

    --语法:
    --SELECT    <列名>, ...
    --FROM      <表名>
    --WHERE     <条件表达式>;

    SELECT shohin_id, shohin_mei, shohin_bunrui
    FROM dbo.Shohin
    WHERE shohin_bunrui = '衣服';  -- shohin_bunrui = '衣服':为条件表达式

    选取行之后,再输出列

      【备注】WHERE 子句:首先通过该子句查询出符合指定条件的记录,再选取出 SELECT 语句指定的列。

      【注意】SQL 子句的书写格式是固定的,不能随意更改。如 WHERE 子句必须紧跟在 FROM 子句后。

      7.注释的写法

      注释对于 SQL 的执行没有任何影响。

    --  单行注释
    
    /*
        多行注释
    */

    二、算术运算符和比较运算符

      1.算术运算符

    SELECT shohin_mei, hanbai_tanka, hanbai_tanka * 2 AS 'hanbai_tanka_x2'
    FROM dbo.Shohin;

    图 商品单价的两倍

    四则算术运算符
    含义 运算符
    加法 +
    减法 -
    乘法 *
    除法 /

      

      括号(“(”“)”)可以提高表达式的优先级。

      2.需要注意 NULL

    SELECT 5 + NULL, 10 - NULL, 1 * NULL, 4 / NULL, NULL / 9;

      【备注】所有包含 NULL 的计算,结果肯定为 NULL。

      3.比较运算符

    比较运算符
    运算符 含义
    = 相等
    <> 不等
    >= 大于等于
    > 大于
    <= 小于等于
    < 小于
    --示例1:
    SELECT shohin_mei, shohin_bunrui FROM dbo.Shohin WHERE hanbai_tanka = 500;

     选取 hanbai_tanka 列为 500 的记录

    --示例2
    SELECT shohin_mei, shohin_bunrui FROM dbo.Shohin WHERE hanbai_tanka <> 500;
    --示例3
    SELECT shohin_mei, shohin_bunrui FROM dbo.Shohin WHERE hanbai_tanka != 500;

     选取 hanbai_tanka 列的值不是 500 的记录

    --示例4
    SELECT * FROM dbo.Shohin WHERE hanbai_tanka - shiire_tanka >= 500;

      

      3.对字符串使用不等号时的注意事项

     创建表

    原图

      

    --示例:选取出大于'2'的数据的 SELECT 语句
    SELECT *
    FROM dbo.Chars
    WHERE chr > '2';

      【注意】chr 为字符串类型,对字符串类型的数据进行大小比较时,跟数字不一样。

      

      4.不能对 NULL 使用比较运算符

    复制代码
    --示例1:
    SELECT shohin_mei, shiire_tanka
    FROM dbo.Shohin
    WHERE shiire_tanka = NULL;        --错误的 SELECT 语句
    
    --示例2
    SELECT shohin_mei, shiire_tanka
    FROM dbo.Shohin
    WHERE shiire_tanka IS NULL;        --选取 NULL 的记录
    
    --示例3
    SELECT shohin_mei, shiire_tanka
    FROM dbo.Shohin
    WHERE shiire_tanka IS NOT NULL;    --选取不为 NULL 的记录
    复制代码

      【注意】希望选取 NULL 记录时,使用 IS NULL;希望选取不是 NULL 的记录时,使用 IS NOT NULL。

    三、逻辑运算符

      1.NOT 运算符:取反

    --示例:
    SELECT * FROM dbo.Shohin WHERE NOT hanbai_tanka >= 1000;  --等价于 hanbai_tanka < 1000

    取 hanbai_tanka 列不大于 1000 的记录(hanbai_tanka < 1000)

      2.AND 运算符和 OR 运算符

      AND 运算符:并且,在两侧的查询条件都成立时整个查询条件才成立。

      OR 运算符:在两侧的查询条件就算只有一个成立时整个查询条件都成立。

    --示例
    SELECT shohin_mei, shiire_tanka FROM dbo.Shohin WHERE shohin_bunrui = '厨房用具' AND hanbai_tanka >= 3000;

    SELECT shohin_mei, shiire_tanka
    FROM dbo.Shohin
    WHERE shohin_bunrui = '厨房用具'
        OR hanbai_tanka >= 3000;

      【备注】多个查询条件进行组合时,需要使用 AND 运算符或者 OR 运算符。

       2.通过括号进行强化

    复制代码
    --示例1
    SELECT shohin_mei, shohin_bunrui, torokubi FROM dbo.Shohin WHERE shohin_bunrui = '办公用品' AND torokubi = '2009-09-11' OR torokubi = '2009-09-20';
    复制代码

    复制代码
    --示例2
    SELECT shohin_mei,
        shohin_bunrui,
        torokubi
    FROM dbo.Shohin
    WHERE shohin_bunrui = '办公用品'
        AND (torokubi = '2009-09-11'
        OR torokubi = '2009-09-20');
    复制代码

      【备注】AND 运算优先于 OR 运算,想要优先执行 OR 运算时可以使用括号。

     传送门

      《SQL 基础知识梳理(一)- 数据库与 SQL

    备注

      这里的语句采用 SQL Server 进行验证。

     建表语句:CREATE TABLE Shohin
    声明 欢迎转载,但请保留文章原始出处:) 博客园:https://www.cnblogs.com/chenxiaomeng/ 如出现转载未声明 将追究法律责任~谢谢合作
  • 相关阅读:
    标识符
    Bootstrap笔记——Checkbox选项组
    servlet实现简单验证码
    javascript笔记——登录表单验证
    JSP的隐式对象(page,config,pageContext,exception)
    创建Servlet文件不自动生成web.xml原因
    JSP的隐式对象(application)
    前端开发工具——brackets的使用
    《Shell脚本学习 —— Shell变量、字符串、数组、注释》
    《开发板 — 3399pro备份整个文件系统》
  • 原文地址:https://www.cnblogs.com/chenxiaomeng/p/14962958.html
Copyright © 2011-2022 走看看