返回介绍

1.4 SQL

发布于 2024-09-26 01:05:59 字数 3655 浏览 0 评论 0 收藏 0

SQL: Structured Query Lanauage,结构化查询语言。

SQL 包括 DDL(数据库操作语言), DCL (数据库控制语言), DML (数据库管理语言)。

  • DML(data manipulation language),包括 SELECT、UPDATE、INSERT、DELETE,这 4 条命令是用来对数据库里的数据进行操作的语言。
  • DDL(data definition language),主要的命令有 CREATE、ALTER、DROP 等,DDL 主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用。
  • DCL(Data Control Language): 是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke 等)语句。在默认状态下,只有 sysadmin,dbcreator,db_owner 或 db_securityadmin 等人员才有权力执行 DCL。
SQL简介支持 DB 或框架
ANSI SQL最初是基于 IBM 的实现。1986 年被 ANSI 批准的,1987 被 ISO 批准为国际标准。国际标准
PLSQL甲骨文公司在 90 年代初开发,以提高 SQL 的功能。Oracle、TimesTen、DB 2
HQLHibernate SQL Language。仅限 Hibernate
TCLTransaction Control Language,事务控制语言。 

备注:Hibernate 是对 JDBC 的再封装,实现了对数据库操作更宽泛的统一和更好的可移植性。

1.4.1 ANSI SQL

“美国国家标准化组织(ANSI)”是一个核准多种行业标准的组织。SQL 作为关系型数据库所使用的标准语言,最初是基于 IBM 的实现在 1986 年 被批准的。1987 年,“国际标准化组织(ISO)”把 ANSI SQL 作为国际标准。这个标准在 1992 年进行了修订(SQL-92),1999 年再次修订(SQL-99)。目前最新的是 SQL-2011。

SQL-2003 是由 8 个相关的文档组成,在不远的将来还可能增加其他文档,以扩展标准来适应新出现的技术。

第一部分:SQL/结构,指定实现一致性的一般性需求,定义 SQL 的基本概念;

第二部分:SQL/基础,定义 SQL 的原发和操作;

第三部分:SQL/调用级接口,定义程序编程与 SQL 的接口;

第四部分:SQL/持久存储模块,定义控制结构,进而定义 SQL 例程。还定义了包含 SQL 例程的模块;

第五部分:SQL/主机语言绑定,定义 SQL 的扩展,用户通过使用数据包裹支持外部 数据管理 ,还定义了数据链类型;

第六部分:对象语言绑定,定义 SQL 的扩展,支持把 SQL 语句内嵌到用 Java 编写的程序;

第七部分:信息和定义方案:定义信息方案和定义方案的规范,提供与 SQL 数据相关的结构和安全信息;

1.4.2 PL/SQL

PL/SQL 是是由甲骨文公司在 90 年代初开发,以提高 SQL 的功能。PL/SQL 是 Oracle 数据库对 SQL 语句的扩展。在普通 SQL 语句的使 用上增加了编程语言的特点,所以 PL/SQL 就是把数据操作和查询语句组织在 PL/SQL 代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或 者计算的程序语言。

关于 PL/ SQL 值得注意的事实:

  • PL/SQL 是一个完全可移植的,高性能的事务处理语言。

  • PL/SQL 提供了内置的解释器以及 OS 独立编程环境。

  • PL/ SQL 也可直接调用的命令行 SQL* Plus 接口。

  • 直接调用也可以从外部编程语言调用数据库。

  • PL/SQL 的一般语法是基于 ADA 和 Pascal 编程语言。

  • 除了甲骨文,PL/SQL 在 TimesTen 内存数据库和 IBM DB2 也可用。

PL/SQL 具有以下特点:

  • PL/SQL 紧密结合集成 SQL。
  • 它提供了广泛的错误检查。
  • 它提供了大量的数据类型。
  • 它提供了多种编程结构。
  • 它支持通过函数和程序结构化编程。
  • 它支持面向对象的编程。
  • 它支持开发 Web 应用程序和服务器的页面。
  1. 事务
 declare
 begin
 dbms_output.put_line('hello world');
 end;
  1. 查看角色
    --dba:数据库管理员,系统最高权限,可以创建数据结构(表空间等)
    --resource:可以创建实体(表、视图),不可以创建数据库的结构
    --connect:连接的权限,可以登录数据库,但是不可以创建实体和不可以创建数据库结构
select * from role_sys_privs;
grant connect to yc1;

1.4.3 SQL Mode

SQL Mode 定义了 sql 语法,数据校验等。

MySQL

查看 MySQL 当前数据库使用的 sql_mode:

SELECT @@sql_mode

表格 7 MySQL 支持的 sql_mode 模式(mysql5.0+)

模式简介
ANSI宽松模式,对插入数据进行校验,如果不符合定义类型或长度,对数据类型调整或截断保存,报 warning 警告。
TRADITIONAL严格模式,当向 mysql 数据库插入数据时,进行数据的严格校验,保证错误数据不能插入,报 error 错误。用于事物时,会进行事物的回滚。
STRICT_TRANS_TABLES严格模式,进行数据的严格校验,错误数据不能插入,报 error 错误。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文