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 - 删除索引    
  • 相关阅读:
    flash 自定义右键功能
    本地和VMware虚拟主机之间的网络访问
    java: org.luaj.vm2.LuaError:XXX module not found lua脚本初始化出错
    火狐 提示“此连接是不受信任的” 可能是因为开启了其它抓包代理软件导致的
    批量导入数据库
    引用Interop.SQLDMO.dll后的注意事项。
    c# Invoke和BeginInvoke 区别
    闭包的7种形式
    C#使用ICSharpCode.SharpZipLib压缩后进行web批量下载文件
    C# Socket编程笔记
  • 原文地址:https://www.cnblogs.com/code4app/p/6272558.html
Copyright © 2011-2022 走看看