关系数据库标准语言

简介: 关系数据库标准语言

1.SQL的特点:

  • 高度非过程化
  • 面向集合的操作方式
  • 结构统一
  • 同一语言结构提供了多种使用方式
  • 结构简单,易学

2.数据的定义

2.1:模式

create schema <模式名> authorization <用户名>
drop shcema <模式名> <CASCADE | RESTRICT>
CASCADE 是级联,若删除模式,则把该模式下的所有数据库对象删除,RESTRICT表示限制,若该模式下定义了数据库对象(表、视图)则拒绝删除。

2.2:表

create table <表名> (<列名> <数据类型>[ 列级完整性约束],....);
alter table <表名>
     [add [column] <新列名> <数据类型> [完整性约束]]
     [add <表级完整性约束>]
     [drop [column] <列名> [CASCADE | RESTRICT] ]
     [drop constraint<完整性约束名> [CASCADE | RESTRICT] ]
     [alter column <列名> <数据类型>]
drop table <表名> [RESTRICT | CASCADE]

2.3:索引

create [unique][cluster] index <索引名> on <表名> (<列名> [次序],<列名> [次序] ....);
alter index <旧索引名> rename to <新索引名>
drop index <索引名>

3.数据字典

数据字典是关系数据库管理系统中的一组系统表,它记录了数据库中所有的定义信息,

包括关系模式定义、视图定义、索引定义等。在执行SQL语句的数据定义语句时,实际上就是在更新数据字典中的相应信息。

4.数据查询

select [all | distinct] <目标列表达式> [,<目标列表达式>] ...
from <表名或视图名> [,<表名或视图名>] | [(< select 语句>) as <别名>]
where <条件表达式>
[group by <列名> [HAVING 表达式]]
[order by <列名> [ASC | DESC]]

4.1:单表查询

select * from table_name , “*”表示所以列,也可选择部分列

4.2:连接查询

select A.a,B.b from A,B where A.id = B.id

4.3:嵌套查询

select A.nam from A
    where A.id in
                (select B.id
                from B
                where B.id = 1)

4.4:集合查询

集合操作包括 union( 并 ) 、intersect(交)、 except (差)
select * from A where A.ID = 1
union select * from B where B.ID = 2

4.5:基于派生表的查询

select id,name from A , (select id,name from B) as tmp where A.id = tmp.id;

5.数据更新

5.1:插入数据

insert into <表名> [<属性列1> [,属性列2] ...] values (<常量1> [,常量2] ...)

5.2:修改数据

update <表名> set <列名> = <表达式> [,<列名>=<表达式>] ...
[wherec<条件>];

5.3:删除数据

delete from <表名> [where <条件>];

6:视图

create view <视图名> [<列名> [...]]
as <子查询>
[with check option]
with check option表示对视图进行更新、插入、删除时要满足视图中定义的谓语条件

6.1:视图查询

视图的查询与基本表查询一致

6.2:视图更新

  • 视图由两个基本表导出的话,此视图不允许更新。
  • 视图字段来自表达式或常熟,则不允许对视图执行插入和update。
  • 视图中有字段来自聚集函数,不允许更新。
  • 视图定义中有group by 或distinct , 不允许更新。

6.3:视图的删除

drop view <视图名> [CASCADE]

6.4:视图的优点

  • 视图可以简化用户操作,不必关心视图是哪些表连接查询而得。
  • 对重构数据库提供了一定程度的逻辑独立:有时候数据库的逻辑结构发生改变,使用视图可以让应用程序不发生改变,只要视图导出的字段还存在于对于的基本表中。
  • 视图可以对机密数据提供保护:视图可以将一张表的不敏感字段数据选择查询出来给用户,而选择性的将敏感字段数据屏蔽,视图不查询敏感字段,这样就起到了隔离用户的作用。
  • 适当使用视图可以让查询表达更清晰。
相关实践学习
体验RDS通用云盘核心能力
本次实验任务是创建一个云数据库RDS MySQL(通用云盘),并通过云服务器ECS对RDS MySQL实例进行压测,体验IO加速和IO突发带来的性能提升;并通过DMS执行DDL,将数据归档到OSS,再结合云盘缩容,体验数据归档带来的成本优势。
目录
相关文章
|
1月前
|
数据库连接 Go 数据库
Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性
本文探讨了Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性;防御编程则强调在编码时考虑各种错误情况,确保程序健壮性。文章详细介绍了这两种技术在Go语言中的实现方法及其重要性,旨在提升软件质量和可靠性。
32 1
|
1月前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
57 4
|
1月前
|
SQL 关系型数据库 MySQL
go语言中安装数据库驱动
【11月更文挑战第1天】
52 5
|
1月前
|
SQL 关系型数据库 MySQL
go语言中数据库操作
【10月更文挑战第22天】
45 4
|
1月前
|
关系型数据库 MySQL 数据库连接
go语言中打开数据库连接
【11月更文挑战第1天】
31 2
|
2月前
|
SQL 关系型数据库 MySQL
Go语言项目高效对接SQL数据库:实践技巧与方法
在Go语言项目中,与SQL数据库进行对接是一项基础且重要的任务
90 11
|
2月前
|
SQL Serverless 数据库
数据库常用DQL语言合集
数据库常用DQL语言合集
|
2月前
|
SQL NoSQL 数据管理
超越查询语言:GQL 如何塑造图形数据库的未来
超越查询语言:GQL 如何塑造图形数据库的未来
34 0
|
4月前
|
SQL 关系型数据库 数据库
|
4月前
|
SQL 存储 NoSQL
从SQL到NoSQL:理解不同数据库类型的选择与应用——深入比较数据模型、扩展性、查询语言、一致性和适用场景,为数据存储提供全面决策指南
【8月更文挑战第31天】在信息技术飞速发展的今天,数据库的选择至关重要。传统的SQL数据库因其稳定的事务性和强大的查询能力被广泛应用,而NoSQL数据库则凭借其灵活性和水平扩展性受到关注。本文对比了两种数据库类型的特点,帮助开发者根据应用场景做出合理选择。SQL数据库遵循关系模型,适合处理结构化数据和复杂查询;NoSQL数据库支持多种数据模型,适用于非结构化或半结构化数据。SQL数据库在一致性方面表现优异,但扩展性较差;NoSQL数据库则设计之初便考虑了水平扩展性。SQL使用成熟的SQL语言,NoSQL的查询语言更为灵活。
99 0