美文网首页
SQL 高级教程

SQL 高级教程

作者: silvacheng | 来源:发表于2018-04-27 17:21 被阅读0次

    1.SQL TOP 子句 ===> 用于规定要返回的记录的数目

    语法:
    select top number | percent  column_name(s) from table_name
    
    MySql 语法
    select column_name(s) from table_name limit number
    
    实例:
    select  top 2 * from persons 
    select top 30 percent * from persons
    select * from persons limit 5 // MySql语句
    

    2.SQL LIKE 操作符 ===> 用于在 WHERE 子句中搜索列中的指定模式

    语法:
    select column_name(s) from table_name where column_name like pattern
    
    实例:
    select * from persons where city like 'N%' // 从上面的 "Persons" 表中选取居住在以 "N" 开始的城市里的人  (%代表通配符)
    select * from persons where city not like '%ion%' 
    

    3.SQL 通配符 ===> 在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符

    通配符                          描述
    %                               替代一个或多个字符
    _                               仅替代一个字符
    [charlist]                      字符列中的任何单一字符
    [^charlist or !charlist]        不在字符列中的任何单一字符
    
    实例:
     select * from persons where firstname like '%in%'
     select * from persons where lastname like 'S_l_r' 
     select * from persons where city like '[ALN]%'  //  "Persons" 表中选取居住的城市以 "A" 或 "L" 或 "N" 开头的人
     select * from persons where city like '[!ALN]%' // "Persons" 表中选取居住的城市不以 "A" 或 "L" 或 "N" 开头的人
    

    4.SQL IN操作符 ===> 允许我们在 WHERE 子句中规定多个值

    语法:
    select column_name(s) from table_name where column_name in (valueA, valueB)
    
    实例:
    select * from persons where lastname in ('Silva', 'Bill')
    

    5.SQL BETWEEN 操作符 ===> 选取介于两个值之间的数据范围

    语法:
    select column_name(s) from table_name where column_name between value1 and value2 
    
    实例:
    select * from persons where lastname between 'Andy' and 'Mike'
    select * from persons where lastname not between 'Andy' and 'Mike'
    

    6.SQL Alias( 别名) ===> 列名称和表名称指定别名

    语法:
     select column_name(s) from table_name as alias_name // 表的SQL Alias语法
     select column_name as alias_name from table_name // 列的 SQL Alias 语法 
    
    实例:
    select po.orderId, p.name, p.age from persons as p, product_order as po where p.lastname = 'silva' and p.firstname = 'cheng'
    

    7.SQL Join ===> 根据两个或多个表中的列之间的关系,从这些表中查询数据

    实例:
    select persons.lastname, person.firstname, orders.orderNo 
    from persons 
    inner join orders
    on persons.id_p = orders.id_p
    order by persons.lastname
    
    不同的 SQL JOIN
    除了我们在上面的例子中使用的 INNER JOIN(内连接),我们还可以使用其他几种连接。
    下面列出了您可以使用的 JOIN 类型,以及它们之间的差异。
    JOIN: 如果表中有至少一个匹配,则返回行
    LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
    RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
    FULL JOIN: 只要其中一个表中存在匹配,就返回行
    
    7.1 SQL INNER JOIN
    语法:
      select column_name(s) 
      from table_name1
      inner join table_name2
      on table_name1.column.name = table_name2.column.name
    
    7.2 SQL LEFT JOIN ===> 左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行
    语法:
      select column_name(s) 
      from table_name1
      left join table_name2
      on table_name1.column.name = table_name2.column.name    
    
    7.3 SQL RIGHT JOIN ===> 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行
    语法:
      select column_name(s) 
      from table_name1
      right join table_name2
      on table_name1.column.name = table_name2.column.name 
    
    7.4 SQL FULL JOIN ===> 只要其中某个表存在匹配,FULL JOIN 关键字就会返回行
    语法:
      select column_name(s) 
      from table_name1
      full join table_name2
      on table_name1.column.name = table_name2.column.name     
    

    8.SQL UNION 和 UNION ALL 操作符 ===> UNION 操作符用于合并两个或多个 #####SELECT 语句的结果集

      请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。
      列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
    
    SQL UNION 语法:
      select column_name(s) fromtable_name1
      union
      select column_name(s) from table_name2
      // 注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL
    
    SQL UNION ALL语法:
    select column_name(s) fromtable_name1
    union all
    select column_name(s) from table_name2
    

    9.SQL SELECT INTO语句 ===> 可用于创建表的备份复件

    语法:
    select * (or column_names)
    into new_table_name[IN externaldatabase]
    from old_table_name 
    
    实例:
      select  * 
      into persons in 'Backup.mdb'
      from persons 
      // 在新的backup库里备份persons
    
      select lastname, firstname 
      into persons_backup
      from persons
      where city = 'shenzhen'
      // 带有 where 子句
    
      select persons.firstname, persons.lastname 
      into persons_order_backup 
      from persons
      inner join orders
      on persons.id_p = orders.id_p
    

    10.SQL CREATE DATABASE语句 ===> 用于创建数据库

    #####语法: 
    
        create database database_name
    

    11.SQL CREATE TABLE 语句 ===>用于创建数据库中的表

    语法:
      CREATE TABLE 表名称
      (
        列名称1 数据类型,
        列名称2 数据类型,
        列名称3 数据类型,
        ....
      )
    
    数据类型.png
    实例:
    create table persons 
    (
      id_p int,
      lastname varchar(255),
      firstname varchar(255),
      address varchar(255),
      city varchar(255) 
     )
    

    12.SQL 约束 (Constraints) ===>用于限制加入表的数据的类型

    主要有以下几种约束:
    NOT NULL  // 强制列不接受 NULL 值
    UNIQUE // 唯一标识数据库表中的每条记录
    PRIMARY KEY // 唯一标识数据库表中的每条记录
    // 每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束
    FOREIGN KEY // 用于预防破坏表之间连接的动作
    CHECK // 用于限制列中的值的范围
    DEFAULT // 用于向列中插入默认值
    

    13.SQL DROP 语句 ===> 可以轻松地删除索引、表和数据库

    语法:
      MySql: 
          alter table table_name drop index index_name // 删除表格中的索引
          drop table table_name // 删除表
          drop database database_name // 删除数据库
    

    14.SQL ALTER TABLE 语句 ===> 用于在已有的表中添加、修改或删除列

    语法:
      表中添加列: 
        alter table table_name 
        add column_name datatype
      删除表中的列: 
        alter table table_name
        drop column column_name
    

    15.SQL 数据类型

      在 MySQL 中,有三种主要的类型:文本、数字和日期/时间类型
      具体参考以下链接:
    

    http://www.w3school.com.cn/sql/sql_datatypes.asp

    相关文章

      网友评论

          本文标题:SQL 高级教程

          本文链接:https://www.haomeiwen.com/subject/qxrfnxtx.html