数据库系统概论学习3-SQL 语句和关系代数(一)SQL 入门
3. SQL 语句和关系代数(一)SQL 入门
3.1 数据库的编程语言
- SQL 的优点
SQL 集成了数据查询(data query)、数据操作(data manipulation)、数据定义(data definition)功能,是一套完整的针对数据库管理的语言,它的功能十分强大,几乎可以满足数据库应用的各类要求。但它的可取之处不仅仅止步于此,SQL 语言还有如下几个优点:
- SQL 语言是一门 “高级” 语言。数据库程序员或用户在编写 SQL 语句时,只需按照语法和实际要求,用一条或几条语句就能实现多个条件的查询,不需要关心这些数据的具体存取路径或者具体的读写操作。这些底层的操作都由数据库管理系统自动完成,大大提高了数据的独立性。
- 使用方式灵活。SQL 既可以作为独立的语言使用,以命令行的交互方式来完成所有关于数据库的操作,还可以作为一种嵌入式语言,嵌入到其他高级语言中。我们在许多 C、C++、Java 程序中都能看到 SQL 语句。在这两种情景下,SQL 的语法结构是基本一致的,既减少了重复学习,又提高了语言的灵活性和方便程度。
- 简单易用、上手快也是 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 入门的更多相关文章
- 查看SQL语句执行时间与测试SQL语句性能
查看SQL语句执行时间与测试SQL语句性能 写程序的人,往往需要分析所写的SQL语句是否够优化.是否能提升执行效率,服务器的响应时间有多快,这个时候就需要用到SQL的STATISTICS状态值来查看了 ...
- SQL语句创建数据库,SQL语句删除数据库,SQL语句创建表,SQL语句删除表,SQL语句添加约束,SQL语句删除约束
创建数据库: CREATE DATABASE Test --要创建的数据库名称 ON PRIMARY ( --数据库文件的具体描述 NAME='Test_data', --主数据文件的逻辑名称 FIL ...
- 【PL/SQL练习】游标cursor :oracle 在执行sql语句时,为sql语句所分配的一个私有的内存区域
隐式游标:一次只能返回一行结果(不需要定义,默认自动建立) 显式游标: 需要开发人员提前定义,可以通过循环的方式处理游标里的sql语句,返回多行结果 隐式游标的属性: sql%rowcou ...
- 使用Hibernate 拦截执行sql语句,并输出sql语句,获取sql语句
重建包名 org.hibernate.type.descriptor.sql 重建类BasicBinder 代码如下 package org.hibernate.type.descriptor.sql ...
- SQL语句查询时防止SQL语句注入的方法之一
1.传参时有可能出现SQL语句注入 StringBuffer sb = new StringBuffer(); if(StringUtils.isNotBlank(areaCode)) { sb.ap ...
- JDBC连接MYSQL,批量执行SQL语句或在执行一个SQL语句之前执行一个SQL语句
conn = MysqlJdbcUtils.getConnection(); Statement ps=conn.createStatement(); ps.addBatch("trunca ...
- SQL语句原理与高效SQL语句(转)
做软件开发的programers,大部分都离不开跟数据库打交道,特别是erp开发的,跟数据库打交道更是频繁,存储过程动不动就是上千行,如果数据量大,人员流动大,那么还能保证下一段时间系统还能流畅的运行 ...
- [转贴]一个将表格变成 INSERT 的SQL 语句的存储过程(sql server)
来源自http://vyaskn.tripod.com/code.htm#inserts SET NOCOUNT ON GO PRINT 'Using Master database' USE mas ...
- 数据库系统概论学习4-SQL 语句和关系代数(二)单表查询
4.12 字符匹配 精确查询和模糊查询 在这一节之前,我们学习的查询几乎都是精确查询,这就需要我们明确地知道某些属性的具体值.例如我们需要查询 'Wangxiaoxiao' 同学的信息,就需要在WHE ...
随机推荐
- 浅谈HTTP缓存以及后端,前端如何具体实现HTTP缓存
<浅谈HTPP缓存>原版: https://juejin.im/post/5bdeabbbe51d4505466cd741?utm_source=gold_browser_extensio ...
- [ JS 进阶 ] 基本类型 引用类型 简单赋值 对象引用 (转)
ECMAScirpt 变量有两种不同的数据类型:基本类型,引用类型.也有其他的叫法,比如原始类型和对象类型,拥有方法的类型和不能拥有方法的类型,还可以分为可变类型和不可变类型,其实这些叫法都是依据这两 ...
- Jmeter与LoadRunner 测试Java项目的坑
32位的JDK,Jmeter.bat 最大内存只能配置1G,测不了大并发,所以用Jmeter测试时一定要改成64位的Jmeter用LR测试java程序的时候必须用32位的JDK 环境变量 在path的 ...
- Android开发:《Gradle Recipes for Android》阅读笔记1.3
想命令行执行gradle的构建,可以通过提供的gradle wrapper或者安装gradle. 构建android项目不需要安装gradle,因为android studio已经包含gradle.& ...
- Python HTMLTestRunner报告及BeautifulReport报告
import unittest import HTMLTestRunner class Testfunc(unittest.TestCase): def testa(self): "&quo ...
- A Secret(KMP)
A Secret Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 256000/256000 K (Java/Others)Total ...
- 路径 php中'.'和'..'还有'./'和'../'
./当前目录(就是当前执行文件所在目录) ../上级目录 / 这个才是根目文件名/ 同级目录 例子如图 1.cart下的index.php 1)要引用Public->css->index. ...
- 20160924-2——mysql常见问题集锦
一.数据类型相关问题 1.varchar(N)占用多少空间 (1)varchar(N)里的N是字符数,而不是字节数: (2)字符类型(varchar text blob等)空间=字符实际长度+字段长度 ...
- MySQL中Index Condition Pushdown(ICP)优化
在MySQL 5.6开始支持的一种根据索引进行查询的优化方式.之前的MySQL数据库版本不支持ICP,当进行索引查询是,首先根据索引来查找记录,然后在根据WHERE条件来过滤记录.在支持ICP后,My ...
- SecureCRT卡死的问题
ctrl+s是一个古老的shell控制键,不小心按倒就卡死了.在输入ctrl+q就可以恢复了