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. Python:Django【基础篇】

    Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...

  2. Java手记

    由于腾讯的MTA只有JAVA的demo,为了测试用php实现的加密算法是否正确,所有只能运行一下Java 配置环境:http://www.runoob.com/java/java-environmen ...

  3. Lumen migration(数据库协同)

    建立迁移文件/新建表文件 php artisan make:migration create_users_table 添加字段 php artisan make:migration add_colum ...

  4. jQuery EasyUI的各历史版本和应用

    from:http://blog.sina.com.cn/s/blog_b8be6dc40102xpe6.html 各历史版本下载地址: http://www.jeasyui.com/download ...

  5. OKhttp3

    针对上一博文订单调用用户使用默认数据交互方式,下面介绍下使用 Okhttp3网络数据交换方式. 1.订单启动类变化 package com.tycoon.orderService; import or ...

  6. class 中构造函数与析构函数

    import pymysql class My_sql(): def __init__(self, host, user, passwd, db, port=3306, charset='utf8') ...

  7. 【BZOJ3325】[Scoi2013]密码 Manacher

    [BZOJ3325][Scoi2013]密码 Description Fish是一条生活在海里的鱼.有一天他很无聊,就到处去寻宝.他找到了位于海底深处的宫殿,但是一扇带有密码锁的大门却阻止了他的前进. ...

  8. websocket集群情况下Nginx 代理出现的坑

    那么问题的背景: A想给B发送socket 消息 ! A这消息 这时候被Nginx 轮询发到了C 服务器上! 擦!   这时候就蛋疼了!   要接收消息那个人在B服务器上!     B就这样苦逼的收不 ...

  9. Introduction to Mathematical Thinking - Week 3

    there exists and all there exists 证明根号2是无理数 all 习题 3. Which of the following formal propositions say ...

  10. 常用代码页与BOM

    常用代码页:CP437 IBM437 OEM United StatesCP1252表示West European LatinCP932 日本CP949 韩国CP936表示GBK中文编码CP54936 ...