SQL 总结

这篇博客总结了SQL的基础知识,包括数据定义、查询、更新和删除操作,以及数据库的安全性和完整性。作者强调了实践中掌握SQL的重要性,提到了触发器、存储过程的概念,并概述了数据库角色和权限管理。此外,还提及了数据库完整性的各种约束和断言,以及触发器和存储过程的创建与使用。
摘要由CSDN通过智能技术生成

 

通过几个星期的学习和实践,对SQL语句有了最基本的理解,
也大概能运用SQL语句进行基本的增删改查操作。
只是SQL语句的深层次语句例如触发器,存储过程等
还没能完全掌握,在日后还是要多用,熟能生巧
才能在最后的大作业中灵活的运用

 

SQLStructured Query Language

结构化查询语言

· 关系数据库的标准语言。

· 是一个通用的、功能极强的关系数据库语言。

· 目前,没有一个数据库系统能够支持标准SQL的全部概念和特性。

 

数据定义:

模式定义

表定义

视图和索引的定义

数据查询:

有单表查询、连接查询、嵌套查询、集合查询、基于派生表的查询等,参见之前的例题。

Select语句的一般形式:

SELECT [ALL|DISTINCT] <目标列表达式> [别名] [ ,<目标列表达式> [别名]] …
    FROM     <表名或视图名> [别名][ ,<表名或视图名> [别名]] …
    |(<SELECT语句>)[AS]<别名>
    [WHERE <条件表达式>]
    [GROUP BY <列名1>[HAVING<条件表达式>]]
    [ORDER BY <列名2> [ASC|DESC]];

数据更新:

插入元祖:

INSERT INTO <表名> [(<属性列1>[,<属性列2 >…)]

        VALUES (<常量1> [,<常量2>]… );

修改数据;

UPDATE  <表名>
    SET  <列名>=<表达式>[,<列名>=<表达式>]…
    [WHERE <条件>];

删除数据:

DELETE
        FROM     <表名>
        [WHERE <条件>];

 

数据库的安全性:

授权和回收:

1.GRANT:

GRANT <权限>[,<权限>]... 
     ON <对象类型> <对象名>[,<对象类型> <对象名>]…
     TO <用户>[,<用户>]...
     [WITH GRANT OPTION];

2.REVOKE:

REVOKE <权限>[,<权限>]... 
    ON <对象类型> <对象名>[,<对象类型><对象名>]…
    FROM <用户>[,<用户>]...[CASCADE | RESTRICT];

数据库的角色:

角色(ROLE):被命名的一组与数据库操作相关的权限。权限的集合。可以为一组具有相同权限的用户创建一个角色。可以简化授权过程。

角色的创建:

CREATE  ROLE  <角色名> 

给角色授权 :

 GRANT  <权限>[,<权限>]… 
     ON <对象类型>对象名  
     TO <角色>[,<角色>]…

将一个角色授予其他的角色或用户:

GRANT  <角色1>[,<角色2>]…
    TO  <角色3>[,<用户1>]… 
    [WITH ADMIN OPTION]

角色权限的收回 :

REVOKE <权限>[,<权限>]…
    ON <对象类型> <对象名>
    FROM <角色>[,<角色>]…

数据库的完整性:

数据的正确性:数据是符合现实世界语义,反映了当前实际状况的
数据的相容性:同一对象在不同关系表中的数据是符合逻辑的
实体完整性:CREATE  TABLE中用PRIMARY KEY定义
参照完整性:在CREATE  TABLE中用FOREIGN KEY短语定义哪些列为外码,用REFERENCES短语指明这些外码参照哪些表的主码
用户定义的完整性:针对某一具体应用的数据必须满足的语义要求,例如定义属性上的约束条件 NOT NULL、UNIQUE
完整性约束命名字句:CONSTRAINT <完整性约束条件名><完整性约束条件>
断言:SQL中,可以使用 CREATE ASSERTION语句,通过声明性断言来指定更具一般性的约束。
触发器:

定义触发器:

CREATE TRIGGER <触发器名>  
   {BEFORE | AFTER} <触发事件> ON <表名>
   REFERENCING NEW|OLD ROW AS<变量>
   FOR EACH  {ROW | STATEMENT}
   [WHEN <触发条件>]<触发动作体>

执行触发器:

触发器的执行,是由触发事件激活的,并由数据库服务器自动执行!

删除触发器:

DROP TRIGGER <触发器名> ON <表名>;

存储过程:由过程化SQL语句,经编译和优化后存储在数据库服务器中,可以被反复调用,运行速度较快。

创建存储过程:

CREATE OR REPLACE PROCEDURE 过程名([参数1,参数2,...]) AS <过程化SQL块>;

执行存储过程:

CALL/PERFORM  PROCEDURE 过程名([参数1,参数2,...]);

修改存储过程:

ALTER PROCEDURE 过程名1  RENAME TO 过程名2;

删除存储过程:

DROP  PROCEDURE 过程名();

具体例题操作都可以在之前的博客上找到,只是总结了最简单的大体SQL语言基础,应用中千变万化,只能在题中寻找规律。
 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值