• SQL基础复习1


    一、概述

    SQL语言组成:DDL,DCL,DML

    二、数据定义

    1、模式定义(Schema)

    Schema这个东西一直感觉不大明白,一直以为就是对表的字段定义则被称为Schema,在复习数据库理论中才再次去了解,算是有了一个粗略的认识。

    模式:类似于C#中的命名空间,数据表、视图、函数等均以模式为单位组织。定义模式时,需要指定模式名称和所有者,若未指定名称其默认以所有者名作为模式名。如SqlServer中:

    image 

    其中,dbo和guest为OFFSET数据库中的两个模式,默认以其所有者的名字命名。

    创建模式:

    CREATE SCHEMA [模式名] AUTHORIZATION [所有者]
    GO

    2、基本表操作

    定义表:

    CREATE TABLE <表名>
    (<列名> <数据类型>[ <列级完整性约束条件> ]…
    [,<表级完整性约束条件> ] );

    列级完整性约束:NOT NULL,DEFAULT

    表级完整性约束:主键,外键

    外键在参照表被引用的主键列被删除时的处理办法:

    RESTRICT:拒绝参照表的被应用主键被删除
    CASCADE:若参照表删除了某一主键,则引用此主键的行也随之删除
    SET NULL

    修改表:

    ALTER TABLE <表名>
    [ ADD <新列名> <数据类型> [ 完整性约束] ]
    [ DROP <完整性约束名> ]
    [ ALTER COLUMN<列名> <数据类型> ];

    删除表:

    DROP TABLE <表名>[RESTRICT| CASCADE];

    3、索引操作

    目的:加快查询速度!

    DBMS一般会为PRIMARY KEY和UNIQUE列自动创建索引

    建立索引:

    CREATE [UNIQUE] [CLUSTER] INDEX <索引名>
    ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]…);
    唯一索引:UNIQUE
    聚簇索引:CLUSTER
    ◦ 次序:ASC(升序),DESC(降序)

    注:

    一个基本表上最多只能建立一个聚簇索引

    经常更新的列不适合建立聚簇索引

    删除索引:

    DROP INDEX <索引名>

    Tips:聚簇索引与唯一索引的区别?

    4、查询

    (1)单表查询

    查询指定列(投影运算)

    BKH%}7`2VK_CFEZXICY5W`D

    聚集:

    image

    分组:Group By

    按指定的一列或多列值分组,值相等的为一组。
    作用:细化聚集函数的作用对象、 未对查询结果分组;聚集函数将作用于整个查询结果;对查询结果分组后,聚集函数将分别作用于每个组;
    作用对象是查询的中间结果表
    HAVING短语作用于组,从中选择满足条件的组。 只有出现了GROUP BY 才能使用HAVING

    例1:查询选修了1门以上课程的学生学号。
    SELECT Sno FROM SC
    GROUP BY Sno
    HAVING COUNT(*) >1;

    SELECT执行顺序:

    From --》 WHERE –》 Group By –》 聚集函数 –》 Having

    (2)多表查询:

    ◦ 等值与非等值连接查询

    自然连接:

    自然连接(NATURAL JOIN)是一种特殊的等价连接,它将表中具有相同名称的列自动进行记录匹配。自然连接不必指定任何同等连接条件。自然连接自动判断相同名称的列,而后形成匹配。
    缺点:虽然可以指定查询结果包括哪些列,但不能人为地指定哪些列被匹配。自然连接的一个特点是连接后的结果表中匹配的列只有一个。

    ◦ 自身连接
    一个表与自己进行连接。为了区别需要为表命名别名。

    ◦ 外连接
    左外连接、右外连接、外连接
    ◦ 复合条件连接

    (3)嵌套查询

    包含子查询的查询称为嵌套查询。分为关联子查询和非关联子查询

    使用in,关系,Exist,all/any

    (4)、集合查询

    Union 、Intersect、Except

    5、数据更新

    插入、修改、删除

  • 相关阅读:
    如何根据select选择的值反查option的属性
    如何让数据库的某张表在记录达到100条的时候自动删除记录
    一个程序员如何发表演讲或者答辩?
    适合程序员演讲的定场诗
    字符串与二进制之间的相互转化
    百鸡百钱问题
    如何把he_llo wo_rld 变成 HeLlo WoRld
    SpringCloud(三)Eureka注册中心实现高可用
    SpringCloud(二)注册服务提供者搭建
    SpringCloud (一)Eureka注册中心搭建
  • 原文地址:https://www.cnblogs.com/kelite/p/3514476.html
Copyright © 2020-2023  润新知