📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前从事DBA及程序编程
擅长主流数据Oracle、MySQL、PG 运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️
文章目录
- 前言
- 📣 1.基本概念
- ✨ 1.1 数据库(Database)
- ✨ 1.2 数据块(Block)
- ✨ 1.3 行(Row)
- ✨ 1.4 列(Cloumn)
- ✨ 1.5 表(Table)
- ✨ 1.6 数据文件(Datafile Segment)
- ✨ 1.7 表空间(Tablespace)
- ✨ 1.8 模式(schema)
- ✨ 1.9 事务(Transaction)
- 📣 2.语法
前言
本篇介绍了openGauss基本概念及语法的使用技巧📣 1.基本概念
openGauss是一款关系型数据库管理系统(RDBMS)。
关系型数据库是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据。
图 1 openGauss系统架构
openGauss的数据库节点负责存储数据,其存储介质也是磁盘。逻辑视角下,可以看到数据库节点上对象包含表空间、数据库、数据文件、表、数据块,如数据库逻辑结构图2所示:
图 2 数据库逻辑结构图
✨ 1.1 数据库(Database)
数据库是存储在一起的相关数据的集合,这些数据可以被访问,管理以及更新。
数据库用于管理各类数据对象,与其他数据库隔离。创建数据对象时可以指定对应的表空间,如果不指定相应的表空间,相关的对象会默认保存在PG_DEFAULT空间中。
数据库管理的对象可分布在多个表空间上,如图3所示
图 3 openGauss表空间信息
✨ 1.2 数据块(Block)
数据块是数据库管理的基本单位,默认大小为8KB。
✨ 1.3 行(Row)
一行(元组,或记录)是一组相关的数据,例如一条生产履历信息的数据。
✨ 1.4 列(Cloumn)
每一列被当作是一个字段。每个字段中的值代表一种类型的数据。例如,一个表可能有3个字段,姓名、专业和班号。这个表就会有3列,一列代表姓名,一列代表专业,一列代表班号。表中的每一行包含3个字段的内容,姓名字段包含姓名,专业字段包含专业,班号字段包含班号,如图表1所示。
表1 学生信息表
✨ 1.5 表(Table)
表是由行与列组合成的,是数据库中用来存储数据的对象,是整个数据库系统的基础。
每张表只能属于一个数据库,也只能对应到一个表空间。每张表对应的数据文件必须在同一个表空间中。
✨ 1.6 数据文件(Datafile Segment)
通常每张表只对应一个数据文件。如果某张表的数据大于1GB,则会采用分区的方式分为多个数据文件存储。
✨ 1.7 表空间(Tablespace)
在openGauss中,表空间是一个目录,在物理数据和逻辑数据间提供了抽象的一层,为所有的数据库对象分配存储空间,里面存储的是它所包含的数据库的各种物理文件。
由于表空间是一个目录,仅是起到了物理隔离的作用,其管理功能依赖于文件系统。
表空间可以存在多个,创建好之后,创建数据库对象时可以指定该对象所属的表空间。
✨ 1.8 模式(schema)
数据库对象集,包括逻辑结构,例如表、视图、序、存储过程、同义名、索引及数据库链接。
SCHEMA又称作模式。通过管理SCHEMA,允许多个用户使用同一数据库而不相互干扰,可以将数据库对象组织成易于管理的逻辑组,同时便于将第三方应用添加到相应的SCHEMA下而不引起冲突。
✨ 1.9 事务(Transaction)
数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。
同时,事务也是恢复和并发控制的基本单位,必须具备ACID特性,即:
1)原子性(Atomicity):一个事务是一个不可分割的工作单位,事务中包括的操作要么都做,要么都不做。
2)一致性(Consistency):事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
3)隔离性(Isolation):一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
4)持久性(Durability):持久性也称永久性(Permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。
📣 2.语法
默认情况下,数据库安装成功,登录后,可以使用\help语句查看所有openGauss的SQL语法。
[root@jeames ~]# gsql -d postgres -p 5434
openGauss=# \help
\h name命令可以查看具体的语法信息,如下图所示
接下来我们详细介绍一下SQL语句:
结构化查询语言(SQL)是用于访问和处理关系型数据库的标准计算机语言。
SQL提供了各种任务的语句,包括:
查询数据。
在表中插入,更新和删除行。
创建,替换,更改和删除对象。
控制对数据库及其对象的访问。
保证数据库的一致性和完整性。
SQL语言由用于处理数据库和数据库对象的命令和函数组成:
DDL(data definition language)数据定义语言,用户定义和管理sql数据库中所有对象的语言。 主要命令:create、alter、drop等
DML(data manipulation language)数据操作语言。 主要命令:select、update、insert、delete等
DCL(date control language)数据库控制功能。主要命令:grant、deny、revoke、commit、savepoint、rollback等