SQL基础及面试题

7 篇文章 0 订阅

SQL基础及面试题

SQL知识

SQL基础

  • 重要事项

       一定要记住,SQL 对大小写不敏感
    
  • SQL DML 和 DDL

       -数据操作语言 (DML) 
             SELECT - 从数据库表中获取数据
             UPDATE - 更新数据库表中的数据
             DELETE - 从数据库表中删除数据
             INSERT INTO - 向数据库表中插入数据
       -数据定义语言 (DDL)
             CREATE DATABASE - 创建新数据库
             ALTER DATABASE - 修改数据库
             CREATE TABLE - 创建新表
             ALTER TABLE - 变更(改变)数据库表
             DROP TABLE - 删除表
             CREATE INDEX - 创建索引(搜索键)
             DROP INDEX - 删除索引
    
  • SELECT 语句

  • SELECT 语句

    • 语法

SELECT 列名称 FROM 表名称
实例:SELECT LastName,FirstName FROM Persons

  • SELECT DISTINCT 语句
  • 语法

SELECT DISTINCT 列名称 FROM 表名称
在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词 DISTINCT 用于返回唯一不同的值。

  • WHERE 子句
  • 语法

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
实例:SELECT * FROM Persons WHERE City=‘Beijing’
需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句。

  • AND & OR 运算符

运算符用于基于一个以上的条件对记录进行过滤。
AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。

  • ORDER BY 子句

ORDER BY 语句用于对结果集进行排序。
ORDER BY 语句用于根据指定的列对结果集进行排序。 ORDER
BY语句默认按照升序对记录进行排序。

如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。

  • 实例 1
    以字母顺序显示公司名称:
    SELECT Company, OrderNumber
    FROM Orders
    ORDER BY Company

  • INTO 语句

  • 语法:
    INSERT INTO 表名称 VALUES (值1, 值2,…)
    指定所要插入数据的列:
    INSERT INTO table_name (列1, 列2,…) VALUES (值1, 值2,…)
  • UPDATE 语句
  • 语法:
    UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
  • DELETE 语句
  • 语法
    DELETE FROM 表名称 WHERE 列名称 = 值

SQL高级

  • TOP 子句
    TOP 子句用于规定要返回的记录的数目。
    对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。
  • SQL Server语法:
    SELECT TOP number|percent column_name(s) FROM table_name
  • MySQL 语法:
    SELECT column_name(s)
    FROM table_name
    LIMIT number
  • Oracle 语法:
    SELECT column_name(s)
    FROM table_name
    WHERE ROWNUM <= number
  • 注意事项
    MySQL 和 Oracle 中的 SQL SELECT TOP 是等价的

  • LIKE 操作符
    LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
    “%” 可用于定义通配符(模式中缺少的字母)。

  • LIKE 操作符语法:
    SELECT column_name(s)
    FROM table_name
    WHERE column_name LIKE pattern
  • SQL 通配符
  • % 代表零个或多个字符
  • _ 仅替代一个字符 (_aaa 就表示第一个字母随意,剩下的必须是aaa)
  • [charlist] 字符列中的任何单一字符
  • [^charlist]或者[!charlist] 不在字符列中的任何单一字符
  • SQL IN 操作符
    IN 操作符允许我们在 WHERE 子句中规定多个值。
  • SQL IN 语法:
    SELECT column_name(s)
    FROM table_name
    WHERE column_name IN (value1,value2,…)
  • SQL BETWEEN 操作符
    BETWEEN 操作符在 WHERE 子句中使用,作用是选取介于两个值之间的数据范围。
  • SQL BETWEEN 语法 :
    SELECT column_name(s)
    FROM table_name
    WHERE column_name BETWEEN value1 AND value2
  • SQL 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
  • SQL JOIN
    SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。
  • INNER JOIN(内连接)
  • JOIN: 如果表中有至少一个匹配,则返回行
  • LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
  • RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
  • FULL JOIN: 只要其中一个表中存在匹配,就返回行
  • INNER JOIN 关键字
  • INNER JOIN 关键字语法
    SELECT column_name(s)
    FROM table_name1 INNER JOINtable_name2 ON table_name1.column_name=table_name2.column_name
  • 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
  • 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
  • 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

  • SQL UNION 和 UNION ALL 操作符
    UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
    请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
  • SQL UNION 语法:
    SELECT column_name(s)
    FROM table_name1
    UNION (SELECT column_name(s) FROM table_name2 )
  • SQL UNION ALL 语法:
    SELECT column_name(s)
    FROM table_name1
    UNION ALL (SELECT column_name(s) FROM table_name2)
项目Value
电脑$1600
手机$12
导管$1
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值