BOB体验官网(RDBMS也可以向XML数据库那样操作XML形式的数据,并且具有面向对象数据库的功能。)
客户端/服务器(C/S类型):能够通过网络实现多个客户端访问同一个数据库。
服务器:指的是用来接收其他程序发出的请求,并对该请求进行相应处理的程序(软件),或者是安装了此类程序的设备(计算机)。RDBMS也是一种服务器,它能够从保存在硬盘上的数据库中读取数据并反汇编,还可以把数据变更为指定内容。
客户端:向服务器发出请求的程序(软件),或者是安装了该程序的设备(计算机)。
表:用来管理数据的二维表。表的列(垂直方向)称为字段,它代表了保存在表中的数据项目。表的行(水平方向)称为记录,它相当于一条数据。
RDBMS的用户管理:为了防止重要数据被窃读或篡改,RDBMS 只允许注册用户接触数据库。这里 的用户并不是指 Windows 等操作系统的注册用户,而是只能用于 RDBMS 的用 户。RDBMS 允许注册多个用户。 注册用户的时候除了设定用户名(账号),还需要设定密码。虽然密码并不是 必需的,但为了防止重要信息的泄露,还是希望大家能够设定密码。
SQL 语句是由关键字、表名、列名等组合而成的一条语句。根据对 RDBMS 赋予的指令种类的不同,SQL 语句可以分为以下三类:
DDL(Data Definition Language,数据定义语言) 用来创建或者删除存储 数据用的数据库以及数据库中的表等对象。DDL 包含以下几种指令:
DCL(Data Control Language,数据控制语言) 用来确认或者取消对数据 库中的数据进行的变更。除此之外,还可以对 RDBMS 的用户是否有权限 操作数据库中的对象(数据库表等)进行设定。DCL 包含以下几种指令:
(3)字符串和日期常数需要使用单引号()括起来。 数字常数无需加注单引号(直接书写数字即可)。
INTEGER型:用来指定存储整数的列的数据类型(数字型),不能存储小数。
CHAR型:CHAR 是 CHARACTER(字符)的缩写,是用来指定存储字符串的列的数据类型(字符型)。可以通过括号内的数字来指定字符串的长度(最大长度),字符串以定
的形式存储在被指定为 CHAR 型的列中,当列中存储的字符串长度达不到最大长度的时候,使用半角空格进行补足。
VARCHAR型:也是用来指定存储字符串的列的 数据类型(字符串类型),通过括号内的数字来指定字符串的长度(最大长度)。但该类型的列是以
删除了的表是无法恢复的,所以在执行DROP TABLE语句之前请务必仔细确认教程知识。
表定义变更之后无法恢复, 在执行ALTER TABLE语句之前请务必仔细确认。
在使用大于等于(=)或者小于等于(=)作为查询条件时, 一定要让不等号在左,等号在右。
在对字符串类型的数据进行大小比较时,使用的是和数字比较不同的规则。典型的规则就是按照字典顺序进行比较,也就是像姓名那样,按照条目在字典中出现的顺序来进行排序。
希望选取NULL记录时,需要在条件表达式中使用IS NULL运算符。希望选取不 是NULL的记录时,需要在条件表达式中使用IS NOT NULL运算符。
在 WHERE 子句中使用 AND 运算符或者 OR 运算符,可以对多个查询条件进行组合。
AND 运算符在其两侧的查询条件都成立时整个查询条件才成立,其 意思相当于“并且”。
OR 运算符在其两侧的查询条件有一个成立时整个查询条件都成立, 其意思相当于“或者”。
使用聚合函数对表中的列进行计算合计值或者平均值等的汇总操作。 通常,聚合函数会对NULL以外的对象进行汇总。
MAX/MIN函数几乎适用于所有数据类型的列。SUM/AVG函数只适用于数值类型的列。
使用GROUP BY子句可以像切蛋糕那样将表分割。通过使用聚合函数和 GROUP BY子句,可以根据“商品种类”或者“登记日期”等将表分割后再进行汇总。
聚合键中包含NULL时,在结果中会以“不确定”行(空行)的形式表现出来。
使用聚合函数和GROUP BY子句时需要注意以下 4点: ① 只能写在SELECT子句之中 ② GROUP BY子句中不能使用SELECT子句中列的别名 ③ GROUP BY子句的聚合结果是无序的 ④ WHERE子句中不能使用聚合函数
使用GROUP BY子句时,SELECT子句中不能出现聚合键之外的列名。SELECT 子句中只能存在以下三种 元素:常数 、聚合函数和GROUP BY子句中指定的列名(也就是聚合键)
只有SELECT子句和HAVING子句(以及ORDER BY子句)中能够使用聚合函数。
使用COUNT函数等对表中数据进行汇总操作时,为其指定条件的不是 WHERE子句,而是HAVING子句。
使用ORDER BY子句对查询结果进行排序,ORDER BY 子句中书写的列名称为排序键。
在ORDER BY子句中列名的后面使用关键字ASC可以进行升序排序,使用DESC关键字可以进行降序排序。
使用含有 NULL 的列作为排序键时, NULL 会在结果的开头或末尾汇总显示
在ORDER BY子句中可以使用SELECT子句中未使用的列和聚合函数。
使用INSERT语句可以向表中插入数据(行)。原则上,INSERT语句每 次执行一行数据的插入。
INSERT 语句中想给某一列赋予 NULL 值时,可以直接在 VALUES 子句的值清单中写入 NULL。
可以通过在创建表的 CREATE TABLE 语句中设置 DEFAULT 约束来设定默认值。就可以在 INSERT 语句中自动 为列赋值了。
省略INSERT语句中的列名,就会自动设定为该列的默认值(没有默认值时会设定为NULL)。如果省略的是设置了 NOT NULL 约束的列,INSERT 语句就会出错。
■通过显式方法插入默认值, 在 VALUES 子句中指定 DEFAULT 关键字
■通过隐式方法插入默认值,插入默认值时也可以不使用 DEFAULT 关键字,只要在列清单和 VALUES 中省略设定了默认值的列就可以了。
使用UPDATE语句可以更改(更新)表中的数据,将更新对象的列和更新后的值都记述在 SET 子句中。
使用UPDATE语句可以将值清空为NULL(但只限于未设置NOT NULL约束的列)。
在 RDBMS中,事务是对表中数据进行更新的单位。事务是需要在同一个处理单元中执行的一系列更新处理的集合。通过使用 事务,可以对数据库中的数据更新处理的提交和取消进行管理。
使用事务开始语句和事务结束语句,将一系列 DML 语句(INSERT/ UPDATE/DELETE 语句)括起来,就实现了一个事务处理。
ROLLBACK 是取消事务包含的全部更新处理的结束指令,相当于文件处理中的放弃保存。一旦回滚,数据库就会恢复到事务开始之 前的状态。通常回滚并不会像提交那样造成大规模的数据损失。
DBMS 的事务都遵循四种特性,将这四种特性的首字母结合起来统 称为 ACID 特性。这是所有 DBMS 都必须遵守的规则。
从SQL的角度来看,视图和表是相同的,两者的区别在于表中保存的是实际的数据,而视图中保存的是SELECT语句(视图本身并不存储数据)
② 根据得到的结果,再执行在 FROM 子句中使用视图的 SELECT 语句
REPLACE——字符串的替换:REPLACE(对象字符串,替换前的字符串BOB体验官网,替换后的字符串)
谓词就是返回值为线)LIKE谓词——字符串的部分一致查询 :部分一致大体可以分为前方一致、中间一致和后方一致三种类型(模糊匹配)
●前方一致:选取出“dddabc” 所谓前方一致,就是选取出作为查询条件的字符串(这里是“ddd”) 与查询对象字符串起始部分相同的记录的查询方法。>
●后方一致:选取出“abcddd” 后方一致与前方一致相反,也就是选取出作为查询条件的字符串(这 里是“ddd”)与查询对象字符串的末尾部分相同的记录的查询方法。
此外,我们还可以使用 _(下划线)来代替 %,与 % 不同的是,它代 表了“任意 1个字符”。
③ 实际上即使不使用 EXIST,基本上也都可以使用 IN(或者 NOT IN)来代替
CASE 表达式是在区分情况时使用的,这种情况的区分在编程中通常称为(条件)分支BOB体验官网。
集合运算就是对满足同一规则的记录进行的加减等四则运算。(2)表的加法——UNION(并集)
■注意事项③ —— 可以使用任何SELECT语句,但ORDER BY子句只 能在最后使用一次
联结( JOIN)就是将其他表中的列添加过来,进行“添加列”的集合运算。UNION是以行(纵向)为单位进行操作,而联结则是以列(横向)为单位 进行的。>
●内联结要点① ——FROM子句,进行联结时需要在FROM子句中使用多张表。
●内联结要点③ ——SELECT子句,使用联结时SELECT子句中的列需要按照“表的别名.列名”的格式进行书写。