public class DataBase {
    public static void main() {

    }
}

/*
    3.1 SQL查询语言概览

    SQL语言有一下几个部分:
        数据定义语言:提供定义关系模式,删除关系以及修改关系模式的命令
        数据操纵语言:提供从数据库中查询信息,以及在数据库中插入元组,删除元组,修改元组的能力
        完整性:定义完整性约束的命令
        视图定义:
        事务控制:定义事务的开始和结束的命令
        嵌入式SQL和动态SQL:嵌入式和和动态SQL定义SQL语如何嵌入到通用编程语言
        授权:定义了包括对关系和视图的访问权限命令
 */

/*
    3.2.1 基本类型

    SQL标准支持多种固有类型:
        char(n)
        varchar(n)
        int
        smallint
        numeric(p,d):定点数,精度由用户指定。
        float(n):精度至少为n位的浮点数
        read,double precision:浮点数与双精度浮点数,精度与机器相关

    将一个char类型与varchar类型进行比较的时候,由数据库系统决定要不要在varchar后加
    上空格,以使长度一致。作者建议,我们始终使用varchar类型来避免这种情况。
 */

/*
    3.2.3 基本模式定义

    create table department
        (dept_name varchar(20),
        building varchar(15),
        budget numeric(12.2),
        primary key(dept_name));
 */

/*
    3.3.2 多关系查询

    select name, instructor, dept_name, building
    from instructor, department
    where instructor.dept_name = department.dept_name

    通过from字句定义了一个在该字句中所列出关系的笛卡尔积。笛卡尔积运算从两个关系中
    合并元组,但不同于连接运算的是,其结果也包含两个关系的所有对,无论它们的属性是
    否匹配。

    通常说来,一个SQL查询的含义可以理解如下:
        1.为from字句中列出的关系产生笛卡尔积。
        2.在步骤1的结果上应用where字句中指定的谓词。
        3.对于步骤2结果中的每个元组,输出select子句中指定的属性(或表达式的结果)
 */

/*
    3.3.3 自然连接

    自然连接运算作用与两个关系,并产生一个关系作为结果。不同于两个关系的笛卡尔积,自然连接
    只考虑那些在两个挂你模式中都出现的属性上取值相同的元组对。

    原代码:
        select name, course_id
        from instructor, teaches
        where instructor.Id = teaches.ID
    改进为:
        select name,course_id
        from instructor natural join teachers

    代码分析:
        select name, title
        from instructor natural join teachers, course
        where teachers.course_id = course_course_id;
        先计算出instructor和teachers的自然连接,然后计算该结果和course的笛卡尔积

    为了发扬自然连接的优点,同时避免不必要的相等属性带来的危险,SQL提供了一种自然连接
    的构造形式,允许用户来指定需要哪些列相等。
        select name, title
        from (instructor natural join teaches)join course using(course_id)

 */

/*
    3.4 附加的基本运算

    3.4.1 更名运算

    3.4.2 字符串运算

    SQL允许在字符串上有多种函数,如串联、提取字串、计算字符串长度、大小写转换、去掉字符串后面的空格等

    在字符串上可以使用立刻操作符来实现模式匹配,我们使用两个特殊的字符来
    描述模式:
        %:匹配任意字串
        _:匹配任意字符

    为了使模式中能够包含特殊模式的字符(%与_),SQL允许定义转义字符。转义字符直接放在特殊
    字符的前面。我们在like运算中使用escape关键词来定义转义字符。
        like 'ab\%cd%' escape '\' //匹配以ab%cd开头的字符串

    SQL 允许使用not like比较运算符搜寻不匹配项。
 */

/*
    3.4.3 select子句中的属性说明

    3.4.4 排列元素的显式次序

    排序可以在多个属性上进行。
        select *
        from instructor
        order by salary desc, name asc

    3.4.5 where子句谓词
        select name
        from instructor
        where salary between 90000 and 100000
    还可以使用not between

    SQL允许我们使用记号(v1,v2,v3)来表示一个分量值分别为v1,v2,v3的n维元组。
    在元组上应用比较运算符,按字典顺序进行比较运算。
        select name, course_id
        from instructor, teaches
        where (instructor.ID,dept_name) = (teaches.ID,"Biology');
 */

数据库系统概念:基础的SQL的更多相关文章

  1. 【JAVA编码专题】JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础

    这两天抽时间又总结/整理了一下各种编码的实际编码方式,和在Java应用中的使用情况,在这里记录下来以便日后参考. 为了构成一个完整的对文字编码的认识和深入把握,以便处理在Java开发过程中遇到的各种问 ...

  2. Spring Security 概念基础 验证流程

    Spring Security 概念基础 验证流程 认证&授权 认证:确定是否为合法用户 授权:分配角色权限(分配角色,分配资源) 认证管理器(Authentication Manager) ...

  3. 基础篇 - SQL 的约束

    基础篇 - SQL 的约束       约束 一.实验简介 约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性.唯一性.本节实验将在实践操作中熟悉 MySQL 中的几种约束. 二 ...

  4. 第87节:Java中的Bootstrap基础与SQL入门

    第87节:Java中的Bootstrap基础与SQL入门 前言复习 什么是JQ? : write less do more 写更少的代码,做更多的事 找出所有兄弟: $("div" ...

  5. Unicode,GBK,GB2312,UTF-8概念基础(转载)

    第一篇:JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础本部分采用重用,转载一篇文章来完成这部分的目标.来源:holen'blog   对字符编码与Unicode,IS ...

  6. JAVA字符编码一:Unicode,GBK,GB2312,UTF-8概念基础

    第一篇:JAVA字符编码系列一:Unicode,GBK,GB2312,UTF-8概念基础 来源:holen'blog   对字符编码与Unicode,ISO 10646,UCS,UTF8,UTF16, ...

  7. C#-概念-基础类库:基础类库

    ylbtech-C#-概念-基础类库:基础类库 基础类库 (BCL) 是微软所提出的一组标准库可提供.NET Framework所有语言使用. 随着 Windows 以及 .NET Framework ...

  8. JavaSE 基础知识(常识概念 + 基础语法)问答总结/面试题 —— 讲给应届生的 Java 开源知识项目

    写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...

  9. ​《数据库系统概念》1-数据抽象、模型及SQL

    ​DBMS(database-management system)包括数据库和用于存取数据的程序,DBMS的基本目标是为数据的存取提供方便.高效的方式,此外对大多数企业来说,数据是非常重要的,所以DB ...

随机推荐

  1. Tensorflow进阶

    第一章 图像领域,第\(i\)类图片提取到的特征: \[ feature_i=\sum_jw_{i,j}x_j+b_i \] 其中,\(j\)表示一张图片的第\(j\)个像素,\(b_i\)是偏置值( ...

  2. Uncaught (in promise)

    Uncaught (in promise) 使用es6的promise时候,有时候会出现如下错误: 这是因为,使用定义promise方法的时候,reject了,但是,在使用的地方没有用catch进行接 ...

  3. MySQL InnoDB缓冲池(Buffer Pool)

    InnoDB缓冲池并不仅仅缓存索引,它还会缓存行的数据.自适应哈希索引.插入缓冲(Insert Buffer).锁,以及其他内部数据结构. InnoDB还使用缓冲池来帮助延迟写入,这样就能合并多个写入 ...

  4. 阻止系统自动睡眠的小软件,附C#制作过程(执行SetThreadExecutionState API函数,让系统误判)

    因为有时下载东西的时候,不想让电脑自动深入睡眠,所以就开启了离开模式.这样不但不节能环保,而且到真正想要睡眠的时候就是一翻蛋疼. 改过自新,关闭了离开模式,同时无操作30分钟后也会进入睡眠模式.但是在 ...

  5. hdu4633_Polya定理

    典型的Polya定理,还算比较简单,比赛的时候知道是Polya定理但是根本没留出时间去搞,有点小遗憾. 思路:根据Burnside引理,等价类个数等于所有的置换群中的不动点的个数的平均值,根据Poly ...

  6. C语言实现常用数据结构——栈

    #include<stdio.h> #include<stdlib.h> //用链表实现栈 typedef struct Node { int data; struct Nod ...

  7. Spark之从hdfs读取数据

    /user/hive/warehouse/ycapp.db/appindex") ), e(),e().toInt)) (String, String, String) ,,all_post ...

  8. Spark之SparkSql

    -- Spark SQL 以编程方式指定模式 val sqlContext = new org.apache.spark.sql.SQLContext(sc) val employee = sc.te ...

  9. HTML连载9-video标签的第二种格式&audio标签

    一.video第二种格式 1.背景:由于视频数据非常重要,所以五大浏览器厂商都不愿意支持别人的视频格式,所以导致了没有一种视频格式是所有浏览器都支持的.这个时候W3C为了解决这个问题,所以推出了第二种 ...

  10. 第五章 FISCO BCOS 区块链浏览器的部署

    想了解相关区块链开发,技术提问,请加QQ群:538327407 前提 前面我们已经通过底层部署.sdk调测.自定义智能合约编写与部署.联合单元测试调测,已经初步对FISCO BCOS的区块链底层和实际 ...