注:课堂讲义使用的数据库
5.1利用SQL语言建立数据库
5.1.1 create Database
5.1.2 create schema...authorization...
创建数据库和创建模式的区别: 数据库是架构的集合,架构是表的集合。但在MySQL中,他们使用的方式是相同的。
create schema <模式名> authorization <用户名>
[<表定义子句>|<视图定义子句>|<授权定义子句>]
如果没有指定模式名,那么模式名隐含为用户名。
用户可以在创建模式的同时在这个模式定义中进一步创建基本表、视图,定义授权。
5.1.3数据类型
- char(n),character(n):长度为n的定长字符串
- varchar(n),charactervarying(n):最大长度为n的变长字符串
- clob:字符串大对象
- blob:二进制大对象
- int,integer:长整数(4字节)
- smallint:短整数(2字节)
- bigint:大整数(8字节)
- numeric(p,d):定点数,由p位数字(不包括符合、小数点)组成,小数点后面有d位数字
- decimal(p,d),dec(p,d):同numeric
- real:取决于机器精度的单精度浮点数
- double precision:取决于机器精度的双精度浮点数
- float(n):可选精度的浮点数,精度至少为n位数字。
- boolean:逻辑布尔量
- date:日期,包含年月日,格式为YYYY-MM-DD
- time:时间,保护时分秒,格式为HH:MM:SS
- timestamp:时间戳类型
- interval:时间间隔类型
5.1.4 create Table
5.1.5 create index
5.2利用SQL语言进行简单查询
5.2.1 select-from-where
5.2.2 where-检索条件的书写问题
5.2.3 distinct-查询结果唯一性问题
5.2.4 order by-查询结果排序问题
5.2.5 like-字符匹配问题
5.3利用SQL语言进行多表联合查询
5.3.1 θ-连接之等值连接
5.3.2 as-重名处理问题
5.3.3 θ-连接之不等值连接
5.4利用SQL语言进行增-删-改
5.4.1 insert into-values
5.4.2 delete from
5.4.3 update-set
5.5利用SQL语言修正与撤销数据库
5.5.1 alter table-(add / drop / alter)
5.5.2 use/close
5.6 利用SQL语言表达复杂查询
5.6.1 (not) in子查询
5.6.2 θ some / θ all子查询
5.6.3 not exists子查询
5.7 利用SQL语言进行结果计算与聚集计算
5.8 利用SQL语言进行分组查询与分组过滤
5.9 利用SQL语言实现关系代数操作
5.9.1 union / intersect / except
5.9.2 is (not) null-空值的处理
5.9.3 (inner / outer) join
5.10 SQL语言之视图及其应用
创建和使用视图需遵循一些基本原则,为此还应注意以下问题:
- 只能在当前数据库创建视图。
- 如果视图引用的基表或者视图被删除,则该视图不能再被使用,直到创建新的基表或者视图。
- 不能在视图上创建索引,不能在规则、默认、触发器的定义中引用视图。
- 当通过视图查询数据时,SQL Server要检查数据完整性规则,以确保语句中涉及的所有数据库对象存在,而且数据修改语句不能违反数据完整性规则。
- 也可以建立视图的视图。