3. SQL 语句和关系代数(一)SQL 入门

3.1 数据库的编程语言

  • SQL 的优点
    SQL 集成了数据查询(data query)、数据操作(data manipulation)、数据定义(data definition)功能,是一套完整的针对数据库管理的语言,它的功能十分强大,几乎可以满足数据库应用的各类要求。但它的可取之处不仅仅止步于此,SQL 语言还有如下几个优点:
  1. SQL 语言是一门 “高级” 语言。数据库程序员或用户在编写 SQL 语句时,只需按照语法和实际要求,用一条或几条语句就能实现多个条件的查询,不需要关心这些数据的具体存取路径或者具体的读写操作。这些底层的操作都由数据库管理系统自动完成,大大提高了数据的独立性。
  2. 使用方式灵活。SQL 既可以作为独立的语言使用,以命令行的交互方式来完成所有关于数据库的操作,还可以作为一种嵌入式语言,嵌入到其他高级语言中。我们在许多 C、C++、Java 程序中都能看到 SQL 语句。在这两种情景下,SQL 的语法结构是基本一致的,既减少了重复学习,又提高了语言的灵活性和方便程度。
  3. 简单易用、上手快也是 SQL 的一个重要优势,只需 7 个关键字(SELECT,CREATE,DROP,ALTER,INSERT,UPDATE,DELETE)就可以涵盖大部分的核心功能了。同时,语法非常简洁,在很多地方与 C++、PHP 等高级编程语言非常接近,因为这些语言有一个共同的特性,编写程序的主要目的是告诉计算机用户想要什么,而不是告诉计算机怎么去做才能得到想要的结果。对于有编程基础的同学来说,初期学习成本很低。由于语法的表述方式非常接近英语这种自然语言,所以零基础的同学也能很快掌握基本的操作。

3.2 SQL是一门好语言

SQL 是一门得到业界认可的好语言,是关系数据库语言的国际标准,它的优点很多,以下说法错误的有哪些,注意是选出来错误的哦:

3.3 温故以学新

  • 数据库的三级模式结构

    ”外模式-模式-内模式”三级结构是数据库的基本架构。关于它的优点我们在这里就不赘述了,具体的大家可以参考之前的课程。我们来复习一下各个部分都定义了哪些内容。
    模式定义了全体数据的逻辑结构和特征。内模式是数据的物理结构和存储方式的描述。外模式是用户能够看到和使用的局部的逻辑结构和特征的描述,是与某一应用或用户相关的数据的逻辑表示,它是模式的子集。
    我们可以看到,在三级模式结构中,模式是核心内容。有了模式,内模式才有数据可存,外模式才能有选择地向某一用户或应用展示部分数据。因此模式相关的 SQL 语句是我们学习的重点。“千里之行,始于足下”,我们首先学习模式的定义与删除。

3.6 表的定义和数据类型



3.7 亡羊补牢——表的修改

  • 增加表的属性

表在定义之后,它所包含的属性和属性的数据类型都确定下来了。但是在实际情景中,我们有时需要对属性的数目或者数据类型进行调整,例如从今年起,我们要评定每个学生的奖学金等级,我们就需要在现有的学生信息表 Student 中,增加表示奖学金等级的属性 Rank。表中的属性及其数据类型在定义之后,并不是不能更改了,SQL 给我们提供了亡羊补牢的语句。在更改之前,我们先回顾一下表的定义语句:

那么在学生信息表 Student 中增加一个属性 Rank 的语句为:
ALTER TABLE Student ADD Rank char(1);
这样,我们添加了一个类型为字符长度为 1 的属性 Rank。在语句中,我们要指明是向哪个表中添加属性、添加属性的名称和属性所对应的数据类型。需要注意的是,表必须是现实存在的,属性名不能与该表中已有的属性重名。

  • 删除表的属性
    我们还会遇到删除表的属性的状况,这时我们需要使用下面的语句:
    ALTER TABLE Student DROP Rank;
    同样的,我们要指明是在哪个表中删除哪一个属性,其中表必须是现实存在的,属性名也必须是该表中已经存在的属性。

    3.12 元组的删除和修改

    元组的插入、删除和修改是我们操作数据的重要途径,掌握这些内容是十分重要的,我们有必要小小地复习一下。下面哪些说法是 正确 的:

数据库系统概论学习3-SQL 语句和关系代数(一)SQL 入门的更多相关文章

  1. 查看SQL语句执行时间与测试SQL语句性能

    查看SQL语句执行时间与测试SQL语句性能 写程序的人,往往需要分析所写的SQL语句是否够优化.是否能提升执行效率,服务器的响应时间有多快,这个时候就需要用到SQL的STATISTICS状态值来查看了 ...

  2. SQL语句创建数据库,SQL语句删除数据库,SQL语句创建表,SQL语句删除表,SQL语句添加约束,SQL语句删除约束

    创建数据库: CREATE DATABASE Test --要创建的数据库名称 ON PRIMARY ( --数据库文件的具体描述 NAME='Test_data', --主数据文件的逻辑名称 FIL ...

  3. 【PL/SQL练习】游标cursor :oracle 在执行sql语句时,为sql语句所分配的一个私有的内存区域

    隐式游标:一次只能返回一行结果(不需要定义,默认自动建立)  显式游标: 需要开发人员提前定义,可以通过循环的方式处理游标里的sql语句,返回多行结果    隐式游标的属性:   sql%rowcou ...

  4. 使用Hibernate 拦截执行sql语句,并输出sql语句,获取sql语句

    重建包名 org.hibernate.type.descriptor.sql 重建类BasicBinder 代码如下 package org.hibernate.type.descriptor.sql ...

  5. SQL语句查询时防止SQL语句注入的方法之一

    1.传参时有可能出现SQL语句注入 StringBuffer sb = new StringBuffer(); if(StringUtils.isNotBlank(areaCode)) { sb.ap ...

  6. JDBC连接MYSQL,批量执行SQL语句或在执行一个SQL语句之前执行一个SQL语句

    conn = MysqlJdbcUtils.getConnection(); Statement ps=conn.createStatement(); ps.addBatch("trunca ...

  7. SQL语句原理与高效SQL语句(转)

    做软件开发的programers,大部分都离不开跟数据库打交道,特别是erp开发的,跟数据库打交道更是频繁,存储过程动不动就是上千行,如果数据量大,人员流动大,那么还能保证下一段时间系统还能流畅的运行 ...

  8. [转贴]一个将表格变成 INSERT 的SQL 语句的存储过程(sql server)

    来源自http://vyaskn.tripod.com/code.htm#inserts SET NOCOUNT ON GO PRINT 'Using Master database' USE mas ...

  9. 数据库系统概论学习4-SQL 语句和关系代数(二)单表查询

    4.12 字符匹配 精确查询和模糊查询 在这一节之前,我们学习的查询几乎都是精确查询,这就需要我们明确地知道某些属性的具体值.例如我们需要查询 'Wangxiaoxiao' 同学的信息,就需要在WHE ...

随机推荐

  1. C/C++程序开发中实现信息隐藏的三种类型

    不管是模块化设计,还是面向对象设计.还是分层设计,实现子系统内部信息的对外隐藏都是最关键的内在要求.以本人浅显的经验,把信息隐藏依照程度的不同分成(1)不可见不可用(2)可见不可用(3)可见可用. 1 ...

  2. git undo last commit

    $ git commit -m "Something terribly misguided" (1) $ git reset --soft HEAD~ (2) << e ...

  3. poj 2942(点双连通+判奇圈)

    题目链接:http://poj.org/problem?id=2942 思路:我们对于那些相互不憎恨的骑士连边,将每次参加会议的所有人(不一定是整个骑士团,只需人数>=3且为奇数)看做一个点双联 ...

  4. OpenCV学习笔记:opencv_core模块

    一,简介: opencv最基础的库.包含exception,point,rect,size,slice,vector,matrix,image等数据结构,和相应的操作函数,以及一些基础算法. 二,分析 ...

  5. 第10章 Docker Machine 相关问题

    10.1 打开命令行后,看到下载啥 boot2docker.iso,然后总是超时失败,怎么办? 装了 Docker Toolbox 的 Windows 用户,或者第一次使用 docker-machin ...

  6. Jmeter中中文乱码

    jmeter-察看结果树-响应数据中的中文显示乱码 jmeter\bin\jmeter.properties 默认编码为:ISO-8859-1# The encoding to be used if ...

  7. ADODB

    转自网友,看着挺全就转了,供大家学习研究. Recordset 对象的属性1.CursorType 属性AdOpenForwardOnly: 仅向前游标,默认值.除了只能在记录中向前滚动外,与静态游标 ...

  8. oracle 查看表是否被锁

    --以下几个为相关表SELECT * FROM v$lock;SELECT * FROM v$sqlarea;SELECT * FROM v$session;SELECT * FROM v$proce ...

  9. Brouwer fixed-point theorem

    w https://en.wikipedia.org/wiki/Brouwer_fixed-point_theorem https://zh.wikipedia.org/wiki/布劳威尔不动点定理 ...

  10. VMware虚拟机安装(二)

    我们一般用户使用的是windows ,那如何装一个Centos呢,我们一般学习的话,是搞一个VM虚拟机, 在虚拟机里安装一个Centos操作系统来学习,当然正式部署的话 我们一般是从阿里云或者西部数码 ...