• oracle常用高级sql---1


    Oracle/Sql高级篇
     
    1.TOP 子句
    TOP 子句用于规定要返回的记录的数目。
    对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。
    SELECT TOP number|percent column_name(s)
    FROM table_name
    例如:SELECT TOP 2 * FROM Persons
     
    2.LIKE 操作符
    LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
    SELECT column_name(s)
    FROM table_name
    WHERE column_name LIKE pattern
    例:SELECT * FROM PersonsWHERE City NOT LIKE '%lon%'
           SELECT * FROM PersonsWHERE City NOT LIKE '%lon'
           SELECT * FROM PersonsWHERE City NOT LIKE 'lon%'
     
    3.SQL 通配符
    在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。
    SQL 通配符必须与 LIKE 运算符一起使用。
    通配符 描述
    % 替代一个或多个字符
    _ 仅替代一个字符
    [charlist] 字符列中的任何单一字符
    [^charlist]
    或者
    [!charlist]
    不在字符列中的任何单一字符
     
     
    例:SELECT * FROM PersonsWHERE FirstName LIKE '_eorge' 
            SELECT * FROM PersonsWHERE City LIKE '[ALN]%'
     
    4.IN 操作符
    IN 操作符允许我们在 WHERE 子句中规定多个值。
    SELECT column_name(s)FROM table_nameWHERE column_name IN (value1,value2,...)
    例:SELECT * FROM PersonsWHERE LastName IN ('Adams','Carter')
     
    5.BETWEEN 操作符
    操作符 BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。
    SQL BETWEEN 语法
    SELECT column_name(s)
    FROM table_name
    WHERE column_name
    BETWEEN value1 AND value2
    例:SELECT * FROM PersonsWHERE LastName BETWEEN 'Adams' AND 'Carter'
     
    6.Alias
    通过使用 SQL,可以为列名称和表名称指定别名(Alias)。
    表的 SQL Alias 语法
    SELECT column_name(s)
    FROM table_name
    AS alias_name
     
    列的 SQL Alias 语法
    SELECT column_name AS alias_name
    FROM table_name
    例 :SELECT po.OrderID, p.LastName, p.FirstNameFROM Persons AS p, Product_Orders AS poWHERE p.LastName='Adams' AND p.FirstName='John'
     
    7.Join 和 Key
    有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。
    数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。
    例子:
             SELECT Persons.LastName, Persons.FirstName, Orders.OrderNoFROM Persons, OrdersWHERE Persons.Id_P = Orders.Id_P
    或者  SELECT Persons.LastName, Persons.FirstName, Orders.OrderNoFROM PersonsINNER JOIN OrdersON Persons.Id_P = Orders.Id_PORDER      order   BY     Persons.LastName
     
    8.SQL INNER JOIN 关键字
    在表中存在至少一个匹配时,INNER JOIN 关键字返回行。
    INNER JOIN 关键字语法
    SELECT column_name(s)
    FROM table_name1
    INNER JOIN table_name2 
    ON table_name1.column_name=table_name2.column_name
    注释:INNER JOIN 与 JOIN 是相同的。
     
    9.SQL LEFT JOIN 关键字
    LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行
    LEFT JOIN 关键字语法
    SELECT column_name(s)
    FROM table_name1
    LEFT JOIN table_name2 
    ON table_name1.column_name=table_name2.column_name
     
    10.SQL RIGHT JOIN 关键字
    RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。
    RIGHT JOIN 关键字语法
    SELECT column_name(s)
    FROM table_name1
    RIGHT JOIN table_name2 
    ON table_name1.column_name=table_name2.column_name
    注释:在某些数据库中, RIGHT JOIN 称为 RIGHT OUTER JOIN。
     
    11.SQL FULL JOIN 关键字
    只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。
    FULL JOIN 关键字语法
    SELECT column_name(s)
    FROM table_name1
    FULL JOIN table_name2 
    ON table_name1.column_name=table_name2.column_name
    注释:在某些数据库中, FULL JOIN 称为 FULL OUTER JOIN。
     
    12. SQL UNION 操作符
    UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
    请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
    SQL UNION 语法
    SELECT column_name(s) FROM table_name1
    UNION
    SELECT column_name(s) FROM table_name2
    注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。
    SQL UNION ALL 语法
    SELECT column_name(s) FROM table_name1
    UNION ALL
    SELECT column_name(s) FROM table_name2
    另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。
     
    13.SELECT INTO 语句
    SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中。
    SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档。
    SQL SELECT INTO 语法
    您可以把所有的列插入新表:
    SELECT *
    INTO new_table_name [IN externaldatabase] 
    FROM old_tablename
    或者只把希望的列插入新表:
    SELECT column_name(s)
    INTO new_table_name [IN externaldatabase] 
    FROM old_tablename
     
    14.CREATE DATABASE 语句
    CREATE DATABASE 用于创建数据库。
    SQL CREATE DATABASE 语法
    CREATE DATABASE database_name
     
    15.CREATE TABLE 语句
    CREATE TABLE 语句用于创建数据库中的表。
    SQL CREATE TABLE 语法
    CREATE TABLE 表名称
    (
    列名称1 数据类型,
    列名称2 数据类型,
    列名称3 数据类型,
    ....
    )
     
    16.SQL 约束
    约束用于限制加入表的数据的类型。
    可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句)。
    我们将主要探讨以下几种约束:
    NOT NULL
    UNIQUE
    PRIMARY KEY
    FOREIGN KEY
    CHECK
    DEFAULT
     
    17.SQL NOT NULL 约束
    NOT NULL 约束强制列不接受 NULL 值。
    NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。
    下面的 SQL 语句强制 "Id_P" 列和 "LastName" 列不接受 NULL 值:
    CREATE TABLE Persons
    (
    Id_P int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255)
    )
     
    18.SQL UNIQUE 约束
    UNIQUE 约束唯一标识数据库表中的每条记录。
    UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
    PRIMARY KEY 拥有自动定义的 UNIQUE 约束。
    请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。
    例:CREATE TABLE Persons
          (Id_P int NOT NULL,
           LastName varchar(255) NOT NULL,
           FirstName varchar(255),
           Address varchar(255),
           City varchar(255),
           UNIQUE (Id_P))
     
    19.SQL PRIMARY KEY 约束
    PRIMARY KEY 约束唯一标识数据库表中的每条记录。
    主键必须包含唯一的值。
    主键列不能包含 NULL 值。
    每个表都应该有一个主键,并且每个表只能有一个主键。
    CREATE TABLE Persons
    (   Id_P int NOT NULL,
        LastName varchar(255) NOT NULL,
        FirstName varchar(255),
        Address varchar(255),
        City varchar(255),
       PRIMARY KEY (Id_P)
    )
  • 相关阅读:
    单实例GI数据库彻底清除
    crsctl & srvctl
    Err "CLSU-00104: additional error information: need ha priv"
    Err "Kernel panic
    安装JRE
    华为-RH5885 V3 远程KVM
    Swagger与OAuth 手动搭建WebApi 操作笔记
    xib自定义View
    iOS回收键盘
    iOS设置用户头像(从相册,图库或者拍照获取)
  • 原文地址:https://www.cnblogs.com/gaochsh/p/5185381.html
Copyright © 2020-2023  润新知