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. [Android L]关于Android L的Service启动问题

    一 问题描写叙述 Android L[Android5.X.X] 版本号通过Intent隐式启动service时将会报出下面错误: AndroidRuntime(  792): java.lang.I ...

  2. crm操作电子邮件

    using System;     using Microsoft.Xrm.Sdk;     using Microsoft.Crm.Sdk.Messages;     using Microsoft ...

  3. asp.net c#采集需要登录页面的实现原理及代码

    当我们采集页面的时候,如果被采集的网站需要登录才能采集,原理搞清楚了,就好办了,我们所要做的仅仅是在采集的时候(或者说HttpWebRequest提交数据的时候),将Cookie信息放入Http请求头 ...

  4. (转载)Unity3D研究院之使用 C#合成解析XML与JSON(四十一)

    XML与JSON在开发中非常重要, 其实核心就是处理字符串.一个是XML的字符串一个是JSON的字符串,尤其是在处理网络请求的时候,肯定是要用的.另外现在JSON非常的流行,我写了一个简单的例子融合了 ...

  5. odata配置控制器方法路由1

    查看edmx:http://localhost:12769/odata/$metadata 1.配置 ODataConventionModelBuilder builder = new ODataCo ...

  6. MySQL中enum类型数据,要传入字符串

    问题来源:公司业务,某张表中一个字段定义为: enum('0','1','2','3','4','5','6','7','8','9','10') NOT NULL DEFAULT '0' 某天跑脚本 ...

  7. TextView 图片居右

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout ...

  8. unison+inotify 同步web代码并排除指定目录不同步

    unison + inotify  实现web 数据双向同步   unison 是一款跨平台的文件同步对象,不仅支撑本地对本地同步,也支持通过SSH,RSH和Socket 等网络协议进行同步.unis ...

  9. py 与 pyc 文件

    本文要说明的问题 pyc 文件是什么 pyc 文件的作用 py 与 pyc 文件冲突 pyc 文件是什么 当 py 文件加载后,py 文件被二进制编码成 pyc 文件.py 文件的修改时间被记录到 p ...

  10. Exploiting second-order SQL injection 利用二阶注入获取数据库版本信息 SQL Injection Attacks and Defense Second Edition

    w SQL Injection Attacks and Defense  Second Edition Exploiting second-order SQL injection Virtually ...