SQL语言大概纲要

表:基本表:实现存储在数据库中的表

视图:由若干基本表或其他视图构成的表的定义

导出表:执行了查询时产生的表

 

SQLSQL DDL:用于定义SQL模式、基本表、视图及索引等结构

  SQL DML:数据查询、数据更新(插入、删除、修改)

  嵌入式SQL语言的使用规定

  SQL DCL:包括对其基本表和视图的授权、完整性规则的描述及事务控制等内容

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

模式及其所属的基本表、视图等元素都不需要时,用drop语句撤销

      DROP SCHEMA <模式名>[CASCADE|RESTRICT]

 

SQL数据类型(主要)=(域类型)

1、  数值型

Integer,Samllint,Real,Double,Precision, Float(n),Numeric(p,d)

2、  字符串型

Char(n),varchar(n)具有最大长度为n的变长字符串

3、  位串型

Bit(n),bit varying(n)具有最大长度为N的变长二进制位串

4、时间型   date,time

 

 

基本表的创建、修改与撤销

--------基本表的创建

Create table <基本表名>

(<列名类型>,

 ……

 <完整性约束>,

 ……)

 

完整性约束:主键子句:Primary Key

            外键子句:Foreign Key

            检查子句:Check

--------基本表结构的修改

(1)       增加新的列:ALTER TABLE <基本表名> ADD <列名> <类型>

(2)       删除原有的列:ALTER TABLE<基本表> DROP <列名> [CASCADE|RESTRICT]

(3)       修改原有列的类型及宽度:ALTER TABLE <基本表> MODIFY <列名> <类型>

-----------基本表的撤销

DROP TABEL <基本表> [CASCADE|RESTRICT]

 

 

索引的创建和撤销

------------索引的创建:

CRATE [UNIQUE] INDEX <索引名> ON <基本表名> (<列名序列>)

对于聚集索引用CLUSTERED

升序排列用ASC ,降序排列用DESC

---------------索引的撤销:DROP INDEX <索引名>

 

数据查询

Where子句的条件表达式F中可使用下列运算符

算术比较运算符:<,<=,>,>=,=,<>!=

逻辑运算符:and ,or,not

集合成员资格运算符:INT ,NOT IN

谓词:exists,all,some,unique

聚合函数:avg,min,max,sum,count

 

集合运算符:union(),intersect(交),except(差)

 

 

SELECT 语句使用时3中写法:连接查询,嵌套查询,带存在量词的嵌套查询

 

SQL聚合函数:COUNT(*),COUNT(<列名>)SUM(<列名>)AVG(<列名>),

MAX(<列名>),MIN(<列名>)

 

SELECT   语句完整的句法

SELECT     <目标表的列名或列表达式序列>

FROM  <目标表名或视图序列> 

[WHREE  <行条件表达式> ]

[GROUP BY <列名序列>]

[HAVING  <组条件表达式>]

[ORDER BY  <列名 [ASC|DESC] >,…]

 

SQL中不允许对聚合函数进行复合运算

 

 

嵌套查询:导出表的使用,with子句和临时视图

 

数据更新

数据插入:

1、  单元组的插入:INSERT INTO <基本表> [(<列名序列>)] 

                  VALUES (<元组值>)

2、  多元组的插入:INSERT INTO <基本表> [(<列名序列>)]

                  VALUES (<元组值>)(<元组值>)

3、  查询结果的插入:INSERT INTO <基本表名> [(<列名序列>)]

                    <SELECT  查询语句>

4、  表的插入:INSERT INTO <基本表名> [(<列名序列>)]

              TABLE <基本表名>

数据删除:DELETE FROM <基本表名>

          [ <WHREE 条件表达式>]

数据修改:UPDATE  <基本表名>

          SET <列名>=<值表达式>[,<列名>=<值表达式>,…..]|ROW=(<元组>)

          [ <WHREE 条件表达式>]

 

 

视图的创建和撤销

视图的创建:CREATE VIEW <视图名> (<列名序列>)

            AS <SELECT 查询语句>

视图的撤销:DROP VIEW <视图名>

 

 

SQL语言嵌入:终端交互方式下使用-----交互式SQL

              嵌入式主语言的程序中使用--------嵌入式SQL

 

 

与游标有关的SQL语句

(!)游标定义语句(DECLARE

   EXEC SQL DECLARE <游标名> CURSOR FOR

          <SELECT 语句>

   END_EXEC

2)游标打开语句(OPEN

   EXEC SQL OPEN<游标名> END_EXEC

(3) 游标推进语句(FETCH

  EXEC SQL FETCH<游标名> INTO <变量表>END_EXEC

(4)游标关闭语句(CLOSE: EXEC SQL CLOSE<游标名> END_EXEC

 

 

不涉及游标的SQL DML语句

涉及游标的SQL DML语句

 

 

卷游标的定义和推进

(1)       卷游标的定义句法:

     EXEC SQL DECLARE <游标名> SCROLL CURSOR FOR

           <SELECT 语句>

      END_EXEC

(2)       卷游标的推进句法

   EXEC SQL FETCH  NEXT

                     PRIOR

                     FIRST                   FROM <游标名> INTO <变量表>

                     LAST

                     RELATIVE <整数>

                     ABSOLUTE <整数>

  END_EXEC

 

 

动态SQL技术

1、动态SQL预备语句   EXEC SQL PREPARE < 游标名> FROM <共享变量或字符串>

2、动态SQL执行语句    EXEC SQL EXECUTE <动态SQL语句名>

        

 

  

 

你可能感兴趣的:(sql,table,嵌入式,insert,语言,authorization)