sql简介
sql(Structure Query Language)语言是数据库的核心语言。
sql的发展是从1974年开始的,其发展过程如下:
1974年-----由Boyce和Chamberlin提出,当时称SEQUEL。
1976年-----IBM公司的Sanjase研究所在研制RDBMS SYSTEM R
时改为sql。
1979年-----ORACLE公司发表第一个基于sql的商业化RDBMS产品。
1982年-----IBM公司出版第一个RDBMS语言sql/DS。
1985年-----IBM公司出版第一个RDBMS语言DB2。
1986年-----美国国家标准化组织ANSI宣布sql作为数据库工业标准。
sql是一个标准的数据库语言,是面向集合的描述性非过程化语言。它功能强,效率高,简单易学易维护(迄今为止,我还没见过比它还好学的语言)。然而sql语言由于以上优点,同时也出现了这样一个问题:它是非过程性语言,即大多数语句都是独立执行的,与上下文无关,而绝大部分应用都是一个完整的过程,显然用sql完全实现这些功能是很困难的。所以大多数数据库公司为了解决此问题,作了如下两方面的工作:
(2)把sql嵌入到高级语言中,以便一起完成一个完整的应用。
1. sql 分为五个部分:
2. 数据查询语言(Data QueryLanguage,DQL)
数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE
2.1 查询命令
子句组成的查询块:
SELECT <字段名表> FROM <表或视图名> WHERE <查询条件>
3. 数据操纵语言(Data Manipulation Language,DML)
是sql语言中负责对数据库对象运行数据访问工作的指令集,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入、更新与删除,是开发以数据为中心的应用程序必定会使用到的指令,因此有很多开发人员都把加上sql的SELECT语句的四大指令以“CRUD”来称呼。
3.1 主要功能:
DML 的主要功能即是访问数据,因此其语法都是以读取与写入数据库为主,除了INSERT以外,其他指令都可能需搭配WHERE指令来过滤数据范围,或是不加WHERE指令来访问全部的数据。
3.3 注意:
严格意义上来说呢。select的是属于 数据查询语言(Data QueryLanguage)但是为了比较容易记忆和区分出操纵数据库和不是操纵数据库。所以我们通常都会把增删改查放在一起。
4. 数据库模式定义语言DDL(Data Definition Language)
sql 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。
4.1 sql 中最重要的 DDL 语句:
CREATE DATABASE - 创建新数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引
5. 数据库控制语言DCL(Data Control Language)
是数据库控制语言。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL
常用的语句关键字包括:
COMMIT 提交
SAVEPOINT 保存点
ROLLBACK 回滚
SET TRANSACTION 设置当前事务的特性,它对后面的事务没有影响
5.1 commit 提交
在数据库的插入、删除和修改操作时,只有当事务在提交到数据库时才算完成。在事务提交前,只有操作数据库的这个人才能有权看到所做的事情,别人只有在最后提交完成后才可以看到。提交数据有三种类型:显式提交、隐式提交及自动提交。下面分别说明这三种类型。
5.1.1 显式提交
用COMMIT命令直接完成的提交为显式提交。其格式为:
sql>COMMIT;
5.1.2 隐式提交
用sql命令间接完成的提交为隐式提交。这些命令是:
ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。
5.1.3 自动提交
若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后,系统将自动进行提交,这就是自动提交。其格式为:
sql>SET AUTOCOMMIT ON;
参考:
https://blog.csdn.net/qq_28007533/article/details/72859882
https://www.cnblogs.com/dato/p/7049343.html
https://baike.baidu.com/item/DML/10035808
https://www.cnblogs.com/fan-yuan/p/7879353.html