第三章SQL语句

SQL基本概念:

SQL是Structured Query Language的缩写,是一种在数据库管理系统中查询或对数据库里面的数据进行更改的语言。

关系型的数据库管理系统主要有:

非关系型数据库管理系统主要有:

一、数据定义语言DDL(Data Definaition Language)

SQL数据定义语言主要用来定义逻辑结构,包括定义基表、视图和索引

删除表  定义表   修改表

二、数据查询语句DQL(Data Query Language)

SQL的数据查询语句主要用来对数据库各个数据对象进行查询

三、数据操纵语言DML(Data Manipulation Language)

SQL的数据操纵语言,用于改变数据库中的数据,包括插入、删除、修改

四、数据控制功能DCL(Data Control Language)

SQL的数据控制语言,对表和视图的授权,完整性规则的描述以及事物开始和结束等控制语句

sql语言的功能:数据查询、数据定义、数据操纵、数据控制

SQL语言的特点:

 基本概念

基本表:

概念:本身独立存在的表

关系:基本表与关系--一对一

            基本表与存储文件--多对一

          基本表与索引--一对多

视图:

概念:从一个或多个基本表中导出的表

         数据库中只存放视图的定义不存放视图的数据

数据定义:

一个关系数据库管理系统的实例中可以建多个数据库,一个数据库可以建多个模式,一个模式包含多个表 视图 索引

模式定义:

定义:CREATE SCHEMA<模式名>AUTHORIZATION<用户名>

           定义模式实际上定义了一个命名空间,在这个空间中可以进一步定义该模式包含的数据库               对象,例如基本表、视图、索引

删除:DROP SCHEMA<模式名><CASCADE|RESTRICT>

          分类:CASCADE级联:想删除该模式及模式中所有数据库对象

                      RESTRICT:模式中有数据库对象 拒绝删除

表定义:

      定义:约束:列级完整性约束、表级完整性约束

               在定义表时,会将表的定义及约束放在数据字典中

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

     修改:alter table

              ADD  DROP ALTER

     删除:cascade:删除基本表和相关依赖对象

               restrict:当表里有视图 触发器 存储过程 函数时 拒绝删除 

索引定义:
引入索引的目的:

                                    优点:加快查询速度,加速定位查询内容

                                            保证行的唯一性

                                缺点:需要占用一定的存储空间

                                           使用索引可以提高数据查询速度,但会降低数据更新速度

索引的分类:

 顺序文件上的索引、B+树索引、散列索引、位图索引

索引的建立:

create  unique/cluster index  索引名 on  表名 列名 以及他的次序等等

原则:索引可以建立在该表的一列或多列上

          可以指定索引值的排列顺序asc/desc

类型:unique: 每个索引值只对应唯一的数据记录--可以是空值

          cluster(聚簇索引): 将索引对象按照索引项上的值是否相同来存储

                       注意:一个表只能建立一个聚簇索引

                                   建立聚簇索引后,插入新的记录将导致物理顺序发生变化

                                   建立聚簇索引后更新表中的非主属性值不会引起记录的物理顺序发生变化

                                   必须先删除所有聚集表才能删除聚集

索引的修改:

索引的删除:

注意:在where子句中出现频率较高的列应该尽量创建索引

           索引属于内模式    视图属于外模式

           索引的个数是受限制的

           索引可以用来提供多种存取路径

数据字典:

是关系数据库管理系统内部的一组表,记录了数据库中所有的定义信息,用户对数据库的操作权限 统计信息等

注意:模式和视图不存在修改操作,只能删除再重建

数据查询:

  语句:select ...(all/distinct) ...from ....where

             group by having 

             order by

查询:  单表查询:选择表中若干列select:查询指定列、查询全部列、查询经计算的值(目标表达                                  式、可以通过指定列名来改变查询结果的列标题)

                               选择表中若干组:消除重复行distinct 、

                                                          查询满足条件的元组:比较大小

                                                                                               确定范围:between and

                                                                                                                 not between and

                                                                                                确定集合:in、not in

                                                                                                 字符匹配:like

                                                                                                  空值查询:is null \is not null

   order by    

 group by:分组的目的是为了细化聚集函数作用的对象

例如:

group by having :

注意:不能用于where只能用于having

         where和having的区别:作用对象不同

         where子句作用于基本表或视图  选择满足给定条件的元组

          having短语作用于组   选择给定条件的组

数据更新:

插入数据:INSERT INTO tablename(字段1、字段2....) VALUES(值1、值2...)

                  或者默认值的顺序:INSERT INTO tablename VALUES(值1、值2..)

修改数据:UPDATE tablename  SET WHERE 条件

删除数据:DELETE FROM 表名 WHERE

视图定义:从基本表导出的表,为了让用户看得简单

分类:

  行列子集视图:从单个表导出,并且只是去掉了某些行和某些列但保留了主码。一般可更新

  分组视图:带有聚集函数和group by子句的查询来定义视图

建立:

(图中有错,应该是with check option 而不是opinion)

不能在视图上建立基本表

删除视图:

删除基本表,其视图不能用了,但还存放于数据字典中,需要通过drop view才能将视图从数据字典中删除

使用cascade删除视图以及所有由他导出的视图

引用视图的优点:

简化用户的查询操作,又不增加数据的存储空间

  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值