• SQL语言经典


    SQL 是用于访问和处理数据库的标准的计算机语言。

    在本教程中,您将学到如何使用 SQL 访问和处理数据系统中的数据,这类数据库包括:MySQL、SQL Server、Access、Oracle、Sybase、DB2 等等。

    SQL,指结构化查询语言,全称是 Structured Query Language。

    SQL 是用于访问和处理数据库的标准的计算机语言。

    数据库表

    一个数据库通常包含一个或多个表。每个表由一个名字标识(例如:"Websites"),表包含带有数据的记录(行)。

    在本教程中,我们在 MySQL 的 RUNOOB 数据库中创建了 Websites 表,用于存储网站记录。

    我们可以通过以下命令查看 "Websites" 表的数据:

    mysql> use RUNOOB;
    Database changed
    
    mysql> set names utf8;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> SELECT * FROM Websites;
    +----+--------------+---------------------------+-------+---------+
    | id | name         | url                       | alexa | country |
    +----+--------------+---------------------------+-------+---------+
    | 1  | Google       | https://www.google.cm/    | 1     | USA     |
    | 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
    | 3  | 菜鸟教程      | http://www.runoob.com/    | 4689  | CN      |
    | 4  | 微博          | http://weibo.com/         | 20    | CN      |
    | 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
    +----+--------------+---------------------------+-------+---------+
    5 rows in set (0.01 sec)


    一些最重要的 SQL 命令

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

    SQL SELECT 语句

    SELECT 语句用于从数据库中选取数据。

    结果被存储在一个结果表中,称为结果集。

    SQL SELECT 语法

    SELECT column_name,column_name
    FROM table_name;

    SELECT * FROM table_name;
    简单的select 查询语句,查询某一列或全表查询
     

    SELECT DISTINCT 语句用于返回唯一不同的值。


    SQL SELECT DISTINCT 语句

    在表中,一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值。

    DISTINCT 关键词用于返回唯一不同的值。

    SQL SELECT DISTINCT 语法

    SELECT DISTINCT column_name,column_name
    FROM table_name;
     
    SELECT DISTINCT country FROM Websites;
    下面的 SQL 语句仅从 "Websites" 表的 "country" 列中选取唯一不同的值,也就是去掉 "country" 列重复值:
     

    SQL WHERE 子句


    WHERE 子句用于过滤记录。


    SQL WHERE 子句

    WHERE 子句用于提取那些满足指定标准的记录。

    SQL WHERE 语法

    SELECT column_name,column_name
    FROM table_name
    WHERE column_name operator value;
     

    下面的 SQL 语句从 "Websites" 表中选取国家为 "CN" 的所有网站:

    实例

    SELECT * FROM Websites WHERE country='CN';
    条件语句:选取符合条件的项目
     
     

    WHERE 子句中的运算符

    下面的运算符可以在 WHERE 子句中使用:

    运算符描述
    = 等于
    <> 不等于。注释:在 SQL 的一些版本中,该操作符可被写成 !=
    > 大于
    < 小于
    >= 大于等于
    <= 小于等于
    BETWEEN 在某个范围内
    LIKE 搜索某种模式
    IN 指定针对某个列的多个可能值
     
     
     

    Where 子句

    搜索 empno 等于 7900 的数据:

    Select * from emp where empno=7900;

    Where +条件(筛选行)

    条件:列,比较运算符,值

    比较运算符包涵:= > < >= ,<=, !=,<> 表示(不等于)

    Select * from emp where ename='SMITH';

    例子中的 SMITH 用单引号引起来,表示是字符串,字符串要区分大小写。

    逻辑运算

    And:与 同时满足两个条件的值。

    Select * from emp where sal > 2000 and sal < 3000;

    查询 EMP 表中 SAL 列中大于 2000 小于 3000 的值。

    Or:或 满足其中一个条件的值

    Select * from emp where sal > 2000 or comm > 500;

    查询 emp 表中 SAL 大于 2000 或 COMM 大于500的值。

    Not:非 满足不包涵该条件的值。

    select * from emp where not sal > 1500;

    查询EMP表中SAL小于1500的值。

    逻辑运算的优先级:() not and or

    特殊条件

    1.空值判断: is null

    Select * from emp where comm is null;

    查询 emp 表中 comm 列中的空值。

    2.between and (在 之间的值)

    Select * from emp where sal between 1500 and 3000;

    查询 emp 表中 SAL 列中大于 1500 的小于 3000 的值。

    注意:1500 为下限,3000 为上限,下限在前,上限在后,查询的范围包涵有上下限的值。

    3.In

    Select * from emp where sal in (5000,3000,1500);

    查询 EMP 表 SAL 列中等于 5000,3000,1500 的值。

    4.like

    Like模糊查询

    Select * from emp where ename like 'M%';

    查询 EMP 表中 Ename 列中有 M 的值,M 为要查询内容中的模糊信息。

    • % 表示多个字值,_ 下划线表示一个字符;
    • M% : 为能配符,正则表达式,表示的意思为模糊查询信息为 M 开头的。
    • %M% : 表示查询包含M的所有内容。
    • %M_% : 表示查询以M在倒数第二位的所有内容。
     
     
     

  • 相关阅读:
    P4097 [HEOI2013]Segment(李超线段树模板)
    P2155 [SDOI2008]沙拉公主的困惑
    BZOJ3675 [Apio2014]序列分割[斜率优化dp]
    hdu4261 Estimation[暴力dp+对顶堆]
    poj2374 Fence Obstacle Course[线段树+DP]
    poj1463 Strategic game[树形DP]
    CH5E02 [IOI1999]花店橱窗[暴力dp]
    CH5E01[NOIP2010] 乌龟棋[暴力]
    CH5702 Count The Repetitions[倍增dp]
    P1081 [NOIP2012]开车旅行[倍增]
  • 原文地址:https://www.cnblogs.com/xinghaiyige/p/7070809.html
Copyright © 2020-2023  润新知