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 - 删除索引    
  • 相关阅读:
    Debug小技巧,抓线程的栈信息
    NPOI EXECL数据导入,日期格式调用DateCellValue取值时,二次或后续调用出现报错!
    vs2019 entityframe(EF) 连接Oracle 提示 但未在用户代码中进行处理 具有固定名称“Oracle.ManagedDataAccess.Client”的 ADO.NET 提供程序未在计算机或应用程序配置文件中注册或无法加载。
    idea使用技巧
    projectEuler 12 Highly divisible triangular number
    hdu7024 Penguin Love Tour(2021杭电暑假多校5)树形dp
    hdu7020 Array(2021杭电暑假多校5)多数投票算法
    nowcoder11254A Guess and lies(2021牛客暑期多校训练营3)dp
    hdu6970 I love permutation(2021杭电暑假多校2) 数学
    nowcoder11166H Hash Function(2021牛客暑期多校训练营1) fft
  • 原文地址:https://www.cnblogs.com/code4app/p/6272558.html
Copyright © 2011-2022 走看看