zoukankan      html  css  js  c++  java
  • 测试SQL基础知识

    SQL DML 和 DDL

    可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。

    SQL (结构化查询语言)是用于执行查询的语法。但是 SQL 语言也包含用于更新、插入和删除记录的语法。

    查询和更新指令构成了 SQL 的 DML 部分:

    • SELECT -...FROM从数据库表中获取数据
    • UPDATE ....SET...WHERE更新数据库表中的数据(UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值)
    • DELETE  FROM...WHERE从数据库表中删除数据
    • INSERT INTO ..... values向数据库表中插入数据  
    • NSERT INTO 语句用于向表格中插入新的行。

      语法

      INSERT INTO 表名称 VALUES (值1, 值2,....)

      我们也可以指定所要插入数据的列:

      INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

      NSERT INTO 语句用于向表格中插入新的行。

      语法

      INSERT INTO 表名称 VALUES (值1, 值2,....)

      我们也可以指定所要插入数据的列:

      INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

      NSERT INTO 语句用于向表格中插入新的行。

      语法

      INSERT INTO 表名称 VALUES (值1, 值2,....)

      我们也可以指定所要插入数据的列:

      INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)iNSERT INTO 语句用于向表格中插入新的行。

    语法

    INSERT INTO 表名称 VALUES (值1, 值2,....)

    我们也可以指定所要插入数据的列:

    INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

    • DISTINCT去重
    • order by 排序 desc/asc
    • TOP 2/TOP 50PERCENT等价于where rownum<=2
    • TOP 子句用于规定要返回的记录的数目

    as(alias) 列或表名称指定别名;

    下面列出了您可以使用的 JOIN 类型,以及它们之间的差异。

    • inner JOIN...ON 如果表中有至少一个匹配,则返回行
    • LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
    • RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
    • FULL JOIN: 只要其中一个表中存在匹配,就返回行  
    • 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),CHECK (Id_P>0)) 
    • CHECK 约束用于限制列中的值的范围
    • 如果需要命名 CHECK 约束,以及为多个列定义 CHECK 约束,请使用下面的 SQL 语法:CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes') 
    • 如果需要命名 CHECK 约束,以及为多个列定义 CHECK 约束,请使用下面的 SQL 语法:ALTER TABLE PersonsADD CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')  
    • DEFAULT 约束用于向列中插入默认值:ALTER TABLE PersonsALTER COLUMN City SET DEFAULT 'SANDNES';撤消默认值:ALTER TABLE PersonsALTER COLUMN City DROP DEFAULT
    • 在表上创建一个唯一的索引。唯一的索引意味着两个行不能拥有相同的索引值。CREATE UNIQUE INDEX index_nameON table_name (column_name) 

    SQL UNION 语法UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

    SELECT column_name(s) FROM table_name1UNIONSELECT column_name(s) FROM table_name2

    注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。 

    SELECT INTO 语句可用于创建表的备份复件

    SELECT *INTO new_table_name [IN externaldatabase] FROM old_tablename

    GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组 SELECT column_name, aggregate_function(column_name)FROM table_nameWHERE column_name operator valueGROUP BY column_name 合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句 在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。   SELECT Customer,SUM(OrderPrice) FROM OrdersWHERE Customer='Bush' OR Customer='Adams'GROUP BY CustomerHAVING SUM(OrderPrice)>1500  UCASE 函数把字段的值转换为大写; LCASE 函数把字段的值转换为小写。  MID 函数用于从文本字段中提取字符 :SELECT MID(column_name,start[,length]) FROM table_name LEN 函数返回文本字段中值的长度  ROUND 函数用于把数值字段舍入为指定的小数位数:SELECT ROUND(column_name,decimals) FROM table_name  NOW 函数返回当前的日期和时间:SELECT NOW() FROM table_name FORMAT 函数用于对字段的显示进行格式化:SELECT FORMAT(column_name,format) FROM table_name 

     
    多表查询

    SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。

    SQL 中最重要的 DDL 语句:

    • CREATE DATABASE - 创建新数据库
    • ALTER DATABASE - 修改数据库
    • CREATE TABLE - 创建新表
    • ALTER TABLE - 变更(改变)数据库表
    • DROP TABLE - 删除表
    • CREATE INDEX - 创建索引(搜索键)
    • DROP INDEX - 删除索引    
  • 相关阅读:
    C/C++多文件之间的变量定义
    PKU POJ 2186 Popular Cows 强连通分量
    重载函数
    ZOJ 2763 Prison Break
    201357 训练赛总结
    hdu 4467 Graph 构造
    201356 训练赛总结
    201353 NEERC 2012, Eastern subregional contest
    2013512 CF 183 总结
    一道动态规划
  • 原文地址:https://www.cnblogs.com/code4app/p/6272558.html
Copyright © 2011-2022 走看看