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. db2 blob EMPTY_BLOB()

    --针对BLOG类型的列,写入一个0长度的字符串

  2. 【转】Visual studio 快捷键大全

    原文:http://book.douban.com/review/4871157/ 可同时参考:http://www.cnblogs.com/TankXiao/p/3164995.html 还记得刚工 ...

  3. windown安装bloomFilter

    个人博客:https://blog.sharedata.info/ 最近在研究python爬虫,需要在windown中安装bloomFilter来处理网页的去重问题,在window中安装python然 ...

  4. Python动态网站的抓取

    网页下载器 # coding:utf-8import requestsimport urllib2import systype = sys.getfilesystemencoding()class H ...

  5. Oracle DBA的学习(笔记)

    1.软件任务分组:系统分析师.系统设计师.程序员.测试人员.开发dba.系统架构师.实施人员. 2.常用设计图:活动图.用例图.类图.序列图. 2010-9-15(dba学习) 1.1 Oracle产 ...

  6. PowerPC架构与X86架构

    PowerPC架构 PowerPC是一种精简指令集(RISC)架构的中央处理器(CPU),其基本的设计源自IBM(国际商用机器公司)的POWER(Performance Optimized With ...

  7. Python打印一个等边三角形

    如图所示: * *** ***** ******* ********* #想要几层就输入数字几, num = int(input('请输入一个奇数数字:')) for i in range(num,0 ...

  8. ubuntu常见错误--Could not get lock /var/lib/dpkg/lock解决(转)

    通过终端安装程序sudo apt-get install xxx时出错: E: Could not get lock /var/lib/dpkg/lock - open (11: Resource t ...

  9. ubuntu ping响应慢的解决(转)

    新装ubuntu之后感觉上网老是很慢,ping网站时每次ping指令都需要很久才能有响应,不过网络延迟却正常.后来发现是因为/etc/nsswitch.conf文件中hosts的配置有问题,做如下修改 ...

  10. 方阵行列式并行化计算(OpenMP,MPI),并计算加速比

    00][100].在创建方阵时,方阵的阶数N(N<100)由外部输入.然后用两层"for循环"来给方阵 p左上角 N×N个位置赋值.具体实现如下: /* * 定义矩阵阶数N ...