第8章 SQL语言(一)

1、SQL(Structured Query Language),结构化查询语言,1974年Boyce和Chhamberlin提出,是一种通用的、功能强大的关系数据库的标准语言

2、SQL包含数据查询、数据操纵、数据定义、数据控制功能

3、基本表:实际存储在数据库中的表(真实的表)

4、视图:由若干个基本表或其他视图导出的表,是一个虚表(虚表)

数据库语言概述

1、任何一个数据库系统都应向用户提供一种数据库语言,包含数据定义语言和数据操纵语言(不同的数据库有自己的数据库语言,例如:mysql数据库的SQL语言,oracle数据库的SQL语言,大部分是相同的,但是部分地方存在“方言”差异,标注SQL也就是保证了大部分语法的相似)

2、SQL语言是集数据定义和数据操纵为一体的典型数据库语言

3、数据定义语言(Data Definition Language,DDL),用来定义数据库模式。包含数据库模式定义数据库存储结构存取方法定义数据库模式的修改和删除功能

4、数据操纵语言(Data Manipulation Language,DML),用来表示用户对数据库的操作请求,主要包含增删改查(也是开发人员最常使用到的),其中,最核心的就是数据的查询

5、SQL特点

  • 综合统一
  • 高度非过程化:进行数据操作时,只需要说做什么,无需指出怎么做
  • 面向集合的操作方式
  • 两种使用方式:用于在终端输入sql命令对数据库进行操作(也称为自含式语言),将sql语言嵌入到高级语言程序中(嵌入式语言)
  • 语言简洁,易学易用,核心动词9个,包含如下4类:

(1)数据查询:select,用于查询数据,使用最多的一个动词(查询)

扫描二维码关注公众号,回复: 17281329 查看本文章

(2)数据定义:create、drop、alter,用于创建新表、删除表、修改表(表结构)

(3)数据操纵:insert、update、delete,用于数据的插入、修改和删除(对表中的数据)

(4)数据控制:grant、revoke,用于数据库对象访问的权限授权和收回授权(赋予权限和收回权限)

6、SQL支持三级模式结构:外模式(视图)模式(基本表)内模式(存储文件)

7、SQL的基本组成

  • 数据定义语言:提供定义关系模式和视图、删除关系和视图、修改关系模式的命令
  • 交互式数据操纵语言:增删改查的命令
  • 事务控制:事务开始和结束的命令
  • 嵌入式sql和动态sql:高级语言中混合sql命令
  • 完整性:数据满足完整性约束条件,不满足条件则无法执行
  • 权限管理:数据定义中包含对关系和视图的访问权限

8、SQL支持的内部域类型(SQL数据类型

SQL数据类型
类型 说明
char(n) 固定长度字符串,表示n个字符的固定长度字符串
varchar(n) 可变长度字符串,表示最多可以有n个字符的字符串
int 整型,也可以用integer
smallint 短整型
numerical(p,d) 定点数p为整数位,d为小数位
real 浮点型
double 双精度浮点型
float(n) n为浮点型
boolean 布尔型
date 日期型
time 时间型

9、创建表(create table)

语法格式:create table 表名(列名1 数据类型 列级完整性约束条件,列名2 数据类型 列级完整性约束条件,...,表级完整性约束条件)

列级完整性约束条件主要有:非空、取值唯一等。表约束主要有外键等

【题外话:感觉mysql做得挺好,依据help create,看着给出的提示都能写出SQL代码,还无需记忆太多,但关键动词还是要自己能记忆】

例题:建立一个供应商、零件数据库。其中关系供应商S(Sno,Sname,Status, City)属性名分别表示供应商代码、供应商名、供应商状态和供应商所在城市;关系零件P(Pno,Pname, Color,Weight,City)属性名分别表示零件号、零件名、颜色、重量及产地。该数据库要满足如下:
(1)供应商代码不能为空,且值是唯一的,供应商的名也是唯一的。

(2)零件号不能为空,且值是唯一的;零件名不能为空。
(3)一个供应商可以供应多个零件,而一个零件可以由多个供应商供应。

分析:

1、首先,根据题意,存在两个基本表,分别是供应商表和零件表,表名和列名都给出了,建表的时候需要注意一下约束条件即可,这两个表的创建基本没有什么问题

2、根据(3),说明供应商和零件之间是多对多的关系,那么应该建立一个联系表,表名为SP,使用基本表的名字来构成联系表,应该没有什么问题,哪个供应商供应哪一个型号的零件,故需要Sno和Pno来构成联系表的主码,且分别又是基本表中的,所以还要设置外码约束,这点应该也没有什么问题,最难的是:联系表中还有其他的属性,供应商在哪些城市进行零件生产,这是零件的产地,也应该算一个属性;其次是供应商状态,对该种零件的供应状况。

经过分析,创建表的时候需要注意单词不要写错,如:foreign primary references unique create这几个看起来比较长的单词,还有就是经常使用电脑,自己手写的时候容易写错,要多练习练习。

猜你喜欢

转载自blog.csdn.net/songxiaolingbaobao/article/details/115529393