地理空间数据库复习笔记:关系数据库标准语言、几何对象模型与查询

这篇博客是关于地理空间数据库的复习笔记,重点介绍了关系数据库标准语言SQL,包括数据定义、更新、查询等方面,并探讨了PostGIS中的几何对象模型。内容涵盖SQL语言的基本操作,如数据插入、修改和删除,以及空间数据模型的概念模型、几何对象逻辑模型与物理模型。还提到了PostGIS的常用数据类型和空间查询方法。
摘要由CSDN通过智能技术生成

我的GIS/CS学习笔记:https://github.com/yunwei37/ZJU-CS-GIS-ClassNotes
<一个浙江大学本科生的计算机、地理信息科学知识库 >

Lecture 3 关系数据库标准语言

SQL概述

SQL (stands for Structured Query Language)

  • A standard language for querying and manipulating data
  • A very high-level (optimized) programming language

Current standard is SQL-2016

内容:

  • Data Definition Language (DDL)
  • Data Manipulation Language (DML)

特点:综合统一、高度非过程化、面向集合的操作方式、以同一种语法结构提供两种使用方式、语言简捷,易学易用

数据定义

定义功能包括:

  • 定义基本表

    CREATE TABLE <表名>
    (<列名> <数据类型>[ <列级完整性约束条件> ]
    [<列名> <数据类型>[ <列级完整性约束条件>] ][<表级完整性约束条件> ] );
    
    • 实体完整性:PRIMARY KEY (主码,主键)
    • 参照完整性:FOREIGN KEY (外码,外键)
    • 用户定义完整性:NOT NULL UNIQUE DEFAULT CHECK
    • 域约束: SQL语言可以使用CREATE DOMAIN语句定义新的值域

    创建Students\Enrolled关系

    CREATE TABLE Students (
    sid CHAR(10) PRIMARY KEY,
    name VARCHAR(20) NOT NULL,
    age INT CHECK(age > 0));
    
    CREATE TABLE Enrolled (
    student_id CHAR(10) REFERENCES Students(sid),
    cid CHAR(20),
    grade INT,
    PRIMARY KEY(student_id, cid));
    
  • 修改和删除表

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

    举例:

    ALTER TABLE Students ADD Scome DATE;
    ALTER TABLE Students ALTER COLUMN Scome type timestamp;
    ALTER TABLE Students DROP Scome;
    
    ALTER TABLE Enrolled ADD CONSTRAINT grade_check
    
    ALTER TABLE Enrolled DROP CONSTRAINT pk_En;
    
    DROP TABLE Students;
    

数据更新

  • 数据插入

    INSERT
    INTO <表名> [(<属性列1>[<属性列2 >])]
    VALUES (<常量1> [<常量2>])
    

    将新元组插入指定表中:

    Insert into Students Values(200011, ‘张三’, 19);
    Insert into Students(sid, age, name)
    Values(200012, 20, ‘李四’);
    Insert into Students(sid, name)
    Values(200013, ‘王五’);
    
  • 数据修改

    UPDATE <表名>
    SET <列名>=<表达式>[<列名>=<表达式>][WHERE <条件>]
    

    修改指定表中满足WHERE子句条件的元组:

    Update Students Set age = 20 Where sid =200011Update Students Set age = 21 Where name = ‘王五’
    Update Students Set age = age + 1;
    Update Students Set sid =200012Where sid =200011;
    
  • 数据删除

    DELETE
    FROM <表名>
    [WHERE <条件>]

    删除指定表中满足WHERE子句条件的元组

    Delete From Students Where sid =200011;
    Delete From Students Where sid =200000;
    
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值