关系数据库-----SQL标准语言

Posted TaoHF

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关系数据库-----SQL标准语言相关的知识,希望对你有一定的参考价值。

关系数据库三级模式结构

  外模式:视图,基本表导出的表,数据库中只存放视图的定义而不存放视图对应的数据。

  模式:基本表

  内模式:存储文件

数据定义

操作对象 创建 删除 修改
模式 create schema drop schema  
create table drop table alter table
视图 create view drop view  
索引 create index drop index alter index

 

    模式的定义与删除

    要创建模式,调用该命令的用户必须拥有数据库管理员权限,或者获得了数据库管理员授予的create schema 权限

    语句: create schema 模式名 authorization 用户名

    删除模式,drop schema 模式名 <cascade| restrict>  

        cascade 级联 :删除模式的同时把该模式下的数据库对象全部删除、

        restrict 限制:如果该模式下定义有表,视图,则拒绝该删除语句的执行。只有当该模式下没有任何下属对象时才能执行drop schema语句

  基本表的定义、删除、修改

    定义 create table 表名(<字段1><数据类型>[列级完整性约束条件],...,[<表级完整性约束条件>])

    修改基本表 alter table<表名>

    删除 drop table <表名>[restric|cascade]   

      cascade:该表的删除没有限制条件

      restrict:该表的删除有限制条件,要删除的基本表不能被其他表的约束条件所引用,不能有视图,触发器,存储过程或函数    (默认情况)

  索引的建立与删除

    索引可以加速数据库查询,但要占用一定存储空间。基本表更新时,索引要进行相应维护。

    建立索引create [unique][cluster] index <索引名> on 表名(<列名>[<次序>][,<列名>[<次序>]])

    修改索引 alter index <旧索引名> rename to <新索引>

    删除索引 drop index <索引名>

数据查询

  select [all | distinct]  <目标列表达式>[,目标列表达式] ... 

  from <表名 or 视图名>[,<表名 or 视图名>,...] | (select 语句) [as]<别名>

  [where <条件表达式>]

  [group by <列名1> [having <条件表达式>]]

  [oder by <列名2>[ASC|DESC]];

根据where子句的条件表达式从from 子句指定的基本表,视图或派生表中找出满足条件的元组,再按照select 子句中的目标列表达式选出元组中的属性值形成结果表。

有group by 子句,则将结果按列名1 的值进行分组,该属性列值相等的元组为一个组

oder by 子句 按列名2事务值的升序或降序排序

  单表查询 

    指定列 select <列名1>,<列名2>,... from tablename;

    全部列 select * from tablename;

  选择表中的若干元组

    消除取值重复的行 select distinct 列名 ,... from tablename;

    满足一定条件的元组

查询条件 谓词
比较 =,>,<,>=,<=,!=,<>,!=,!>,!<,;not +上述比较运算符
确定范围 between  (下限) and (上限), not between and
确定集合 in  ,  not in
字符匹配 like  ,  not like
空值  is null   ,   is not null
多重条件   and , or  , not 

  聚集函数

count(*) t统计元组个数
count( [distinct|all ] <列名>) t统计一列中的值的个数
sum( [distinct|all ] <列名>) j计算一列值的总和
avg ( [distinct|all ] <列名>) j计算一列值的平均值
max ( [distinct|all ] <列名>) y一列的最大值
min ( [distinct|all ] <列名>) y一列的最小值

          all为默认的

 

where语句里不能有聚集函数作为条件表达式,having 里面可以有

 

 

以上是关于关系数据库-----SQL标准语言的主要内容,如果未能解决你的问题,请参考以下文章

关系数据库标准语言SQL-第一节:SQL概述

关系数据库标准语言SQL02

关系数据库标准语言SQL01

关系数据库标准语言SQL

GO语言(三十):访问关系型数据库(上)

4:关系数据库标准语言sql(sql概述:功能,特点)