DBMS第四篇(上):SQL 查询语言 (第三章)——SQL的组成、基本模式定义、查询基本结构

1. SQL查询语言概述

“In 1986, the American National Standards Institute (ANSI) and the International Organization for Standardization (ISO) published an SQL standard, calledSQL-86. ANSI published an extended standard for SQL, SQL-89, in 1989.
The next version of the standard was SQL-92 standard, followed by SQL:1999, SQL:2003, SQL:2006,and most recently SQL:2008.
The bibliographic notes provide references to these standards.”


标准是企业竞争的制高点

1.1 SQL的组成部分

Data-definition language ——DDL 数据定义(描述)语言。提供了定义关系模式、删除关系和修改关系模式的命令。
Data-manipulation Language ——DML 数据操作语言,提供了从数据库:查询、插入元组、删除和修改元组的功能
Integrity 完整性,The SQL DDL包括了用于指定存储在数据库中的数据必满足完整性约束的命令不允许违反完整性约束的更新
View definition SQL DDL包括用于定义视图的命令
Transaction control 事务控制,指定事务的开始和结束。
Embedded SQL and dynamic SQL 嵌入式和动态SQL定义了如何在通用编程语言(如C、c++和Java)中嵌入SQL语句
Authorization SQL DDL包括用于指定对关系和视图的访问权限的命令
  • 注意:教材上的例子都是根据SQL 标准设计的,和具体的DBMS软件中的语法有所区别

1.2 Data Definition Language 数据定义语言

SQL DDL, 不只可以指定关系(relations)集,还可以指定每个关系的详细细信息

  • The schema for each relation.定义模式
  • The types of values associated with each attribute. 属性数据类型
  • The integrity constraints. 完整性约束
  • The set of indices to be maintained for each relation 索引
  • Security and authorization information for each relation.安全,授权
  • The physical storage structure of each relation on disk.物理存储

1.2.1 Basic Types基本类型

类型 说明
char(n) 用户指定长度为n的固定长度(fixed-length)字符串,若输入不足n个字符,会用空格补全所以char(n)类型的变量,长度永远是n
varchar(n) 一个由用户指定的最大长度n可变长度(variable-length) 字符串,若输入不足n个字符,无碍。不会像上面的类型用空格补全。
int 一个整数(依赖于机器的整数的有限子集)。
smallint 短整型
numeric(p, d) p代表整数位加小数位的总位数, d代表小数位数
real, double precision 双精度实数,浮点数和双精度浮点数与机器相关的精度
float(n) 一种精度至少为n位的浮点数

空值NULL:
每种类型都可以包含。
表示可能存在,但未知,或根本不存在的缺失值。
在某些情况下,我们可能希望禁止输入空值


1.2.2 如何为表中属性选择恰当的数据类型

一般原则

  • 判断数据的种类,需要存储的数据的大小和最大长度
    对于数字数据类型还要考虑精度和小数位数
  • 在所用的DBMS找得到可用的数据类型,够用即可;
  • 权衡存储空间和查询效率
    • 数据类型的长度越小,存储大量数据所需要存储空间就越小
      分配的页面就越少一次读取到内存中的数据记录就会越多
      操作数据的效率就会提高很多
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

adingable

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值