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,用于查询数据,使用最多的一个动词(查询)

(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这几个看起来比较长的单词,还有就是经常使用电脑,自己手写的时候容易写错,要多练习练习。

第8章 SQL语言(一)相关推荐

  1. PostgreSQL 10.1 手册_部分 I. 教程_第 2 章 SQL语言

    第 2 章 SQL语言 目录 2.1. 引言2.2. 概念2.3. 创建一个新表2.4. 在表中增加行2.5. 查询一个表2.6. 在表之间连接2.7. 聚集函数2.8. 更新2.9. 删除 本文转自 ...

  2. 【学习笔记】数据库系统原理 第三章 SQL语言

    以下内容为参考课件和<数据库系统概论>(第5版,王珊等著)的个人整理,若有错误欢迎指出 第三章 SQL语言 文章目录 第三章 SQL语言 一.概述 二.数据查询功能 1.查询语句 2.连接 ...

  3. oracle中值集限定词为灰色,《Oracle从入门到精通》读书笔记第四章 SQL语言基础之一...

    4.1 SQL语言概述 4.1.1 SQL语言的特点 1.集合性 2.统一性 3.易于移植性 4.1.2 SQL语言的分类 1.数据查询语言(DQL)- select语句,查询数据 2.数据操纵语言( ...

  4. 部分 I. 教程_第 2 章 SQL语言_2.2. 概念

    2.2. 概念 PostgreSQL是一种关系型数据库管理系统 (RDBMS).这意味着它是一种用于管理存储在关系中的数据的系统.关系实际上是表的数学术语. 今天,把数据存储在表里的概念已经快成了固有 ...

  5. 《Oracle从入门到精通》读书笔记第四章 SQL语言基础之二

    4.7 事务处理 4.7.1 事务概述 事务的4种属性:acid (1)原子性(atomic):事务是一个整体的工作单元,要么全部执行,要么全部取消. (2)一致性(consistency):所有的数 ...

  6. 二级计算机vf里的sql,计算机等级考试二级VF考点:SQL语言

    第4章 SQL语言(数据查询) 一.投影:SELECT 字段 FROM 表名 题目:1. 对职工表进行查询,显示职工的职工号. 2. 对职工表进行查询,显示所有信息(即所有字段). 二.选择:SELE ...

  7. 第九章 Mysql语言

    #[例9.1] 使用RAND()函数求3个随机值. #[例9.2] 求3和4的平方根. #[例9.3] 求7.2和-7.2的绝对值. #[例9.4] 求小于或等于-3.5或6.8的最大整数,大于或等于 ...

  8. 【SQL语言】数据库原理与设计

    目录 第五章 SQL语言 5.3 简单查询(对一个表) 5.4 连接查询 5.5 聚集函数 5.6 嵌套查询 5.7 集合运算 5.8 视图的创建和使用 5.9 更新操作 第六章 高级SQL语言 6. ...

  9. PostgreSQL修炼之道之SQL语言入门(四)

    目录 第三章 SQL语言入门(二) 3.4 查询语句 3.4.1 单表查询语句 3.4.2 过滤条件的查询 3.5 其他SQL语句 3.5.1 INSERT INTO... SELECT语句 3.5. ...

最新文章

  1. SharedPreferences的工具类,使用起来方便、快捷
  2. js处理json和字符串示例
  3. SQL Server 2008带字段注释导入Power Designer 9.5
  4. 堆(Heap)大根堆、小根堆
  5. uClinux下移植Ne2000兼容的网卡驱动程序(转)
  6. 【Flink】Flink SQL Cannot instantiate user function cannot assign instance LinkedMap FlinkKafkaConsum
  7. Java程序运行时间的计算
  8. 3389服务器信息是什么意思,服务器3389端口监控问题
  9. 30天React Native从零到IOS/Android双平台发布总结
  10. SAP: Query创建教程
  11. bzoj:1922: [Sdoi2010]大陆争霸 (luogu 2446)
  12. 搬运:PHOTOSHOP存储为 Web 所用格式的选项|处理PNG图像透明度时的仿色选项
  13. 【新手福音】分享一个自己制作的机器学习工具集合
  14. 什么是Receptive Field
  15. 手机游戏开发现状分析
  16. Android下载网上图片
  17. R语言统计与绘图:生存曲线的两两比较
  18. 如何查看电脑开关机记录
  19. Super Unicode Editor(十六进制编辑器)v3.01中文版
  20. 百度云盘群组下载,细节操作让你摸不着头脑?

热门文章

  1. bzoj 3055礼物运送 floyed + 状压DP
  2. jquery和zepto的扩展方法extend
  3. hdu 1233 还是畅通工程(最小生成树的Prim和Kruskal两种算法的c++实现)(prim算法详解)...
  4. 快速了解 MySQL 的性能优化
  5. HR--上载信息类型的长文本的样例代码
  6. 30kJava程序员升为全栈架构师的晋升之路
  7. python logging模块使用总结
  8. 《从0到1学习Flink》—— Apache Flink 介绍
  9. Bless You Autocorrect!
  10. Oracle-11g 从表空间删除数据文件