数据库系统概念:基础的SQL

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‘);
 */

原文地址:https://www.cnblogs.com/junjie2019/p/10561422.html

时间: 2024-10-06 11:16:07

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

《数据库系统概念》学习笔记2

第二章       关系模型 a.关系代数基本运算有:选择.投影.并.集合差.笛卡尔积.和更名 b.附加的关系代数运算:集合交.自然连接.除运算.赋值运算. c.扩展的关系代数运算:广义投影,聚集函数,外连接 d.数据库的修改:删除,插入,更新 小结 A.关系数据模型建立在表的集合的基础之上.数据库系统的用户可以对这些表进行查询,可以插入新元组.删除元组以及更新(修改)元组. B.关系代数定义了一套在表上运算,且输出结果也是表的代数运算.这些运算可以混合使用以得到表达所希望查询的表达式.关系代数

渗透学习笔记--基础篇--sql注入(字符型)

环境:dvwa1.7数据库:mysql前置知识:sql语句(Click me)      在进行sql注入前,我们先熟悉熟悉select语句.一.打开我们的sql终端 二.进入之后可以看到有mysql>我们输入sql语句,即可返回我们想要的结果,注意分号哟!我们使用的dvwa,在我们前几章设置的时候,会在数据库中生成一个dvwa的database:这里我们使用它来进行我们的select 语句:(1)使用dvwa数据库use dvwa;(2)在users表里查询用户名为'admin'的所有信息se

基础篇 - SQL 的约束

基础篇 - SQL 的约束 约束 一.实验简介 约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性.唯一性.本节实验将在实践操作中熟悉 MySQL 中的几种约束. 二.实验内容 1.约束分类 听名字就知道,约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性.唯一性. 在MySQL中,通常有这几种约束: 约束类型: 主键 默认值 唯一 外键 非空 关键字: PRIMARY KEY DEFAULT UNIQUE FOREIGN KEY NOT NULL 2

数据库系统概念 - 关于这本书

它是什么? 西尔伯沙茨 等著,最新版本第六版 <Database System Concepts> 将数据库系统的概念,要和数据库厂商(如:Oracle,MySql 等等)区分开来.另外,很多高校选择作为本科生,研究生的数据库课程教材. 豆瓣评分80% 四星以上.其中,一个强烈推荐的评语: 我每天读一章.大约每天3小时,在索引,查询处理那两章花了8小时以上,在范式那节重新整理下以前的看法,非常不错的书,翻译的也不错.相比国内的<数据库系统概论>,这书适合自学,并且非常详细,算法伪代

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

?DBMS(database-management system)包括数据库和用于存取数据的程序,DBMS的基本目标是为数据的存取提供方便.高效的方式,此外对大多数企业来说,数据是非常重要的,所以DBMS还要保证数据的安全,比如在系统奔溃或收到未授权访问请求的时候. 一.数据抽象a) 数据库系统隐藏了数据在存储.维护方面的细节,以视图的形式为用户提供数据.数据库系统必须能满足高效地查询数据的需求,为此设计者将数据库系统抽象为三层:物理层.逻辑层.视图层b) 物理层,描述了数据在物理存储介质的实际

数据库系统概念笔记-引言

 数据库管理系统(DBMS)由一个互相关联的数据的集合和一组用以访问这些数据的程序组成.这个数据集合通常称作数据库,其中包含了关于某个企业的信息.   DBMS的主要目标是要提供一种可以方便.高效地存取数据库信息的途径. 1.1 数据视图 1.1.1 数据抽象 一个可用的系统必须能高效地检索数据.这种高效性的需求促使设计者在数据库中使用了复杂的数据结构来表示数据,但是,有很多数据库用户不懂这些.为此,数据库的系统开发人员通过如下几个层次上的抽象来对用户屏蔽复杂性,以简化用户与系统的交互: 物理层

MYSQL基础加固——SQL的介绍及MySQL的安装

2.1 数据库和 SQL 概念 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它的产生距今已有六十多年.随着信息技术和市场的发展,数据库变得无处不在:它在电子商务.银行系统等众多领域都被广泛使用,且成为其系统的重要组成部分. 数据库用于记录数据,使用数据库记录数据可以表现出各种数据间的联系,也可以很方便地对所记录的数据进行增.删.改.查等操作. 结构化查询语言(Structured Query Language)简称 SQL,是上世纪 70 年代由 IBM 公司开发,用于

sql的基础语句-sql的查询语句select

SQL查询语句介绍--select语句 1.简单的select查询语句 1.1 查行 SQL> select * from emp; 1.2 查列 SQL> select empno,ename from emp; 1.3 关联查询 oracle的语法: select  a.*,b.*  from emp a,dept b where a.deptno=b.deptno; 通用的语法: select  a.*,b.* from emp a join dept b on(a.deptno = b

数据库系统概念第六版引言习题

1  数据库的两个不足之处 A  数据库系统的建立需要更多的知识,技能,金钱,时间. B 数据库系统的复杂性可能产生不好的影响. 2 列出JAVA或C++之类的语言中的类型说明系统和数据库系统使用的数据定义语言的5个不同之处(暂时不懂) a. Executing an action in the DDL results in the creation of an object inthe database; in contrast, a programming language type dec