首页 > 数据库 >高斯数据库HCNA之数据定义

高斯数据库HCNA之数据定义

时间:2023-11-11 16:32:50浏览次数:33  
标签:高斯 数据库 视图 索引 序列 HCNA schema name

三、数据定义

1、DDL分类

DDL (Data Definition Language数据定义语言),用于定义或修改数据库中的对象,主要分为三种类型
语句:CREATE、ALTER和DROP
CREATE用来创建数据库对象
ALTER用来修改数据库对象的属性
DROP则是用来删除数据库对象

2、数据库对象

什么是数据库对象
数据库对象是数据库的组成部分,数据库对象主要包含:表,索引,视图,存储过程,缺省值,规则,触发器,用户,函数等
表
  表是数据库中的一种特殊数据结构,用于存储数据对象以及对象之间的关系,由行和列组成的
索引
  索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息
视图
  视图是从一个或几个基本表中导出的虚表,可用于控制用户对数据访问
存储过程
  存储过程是一组为了完成特定功能的SQL语句的集合,一般用于报表统计、数据迁移等
缺省值
  缺省值是当在表中创建列或插入数据时,对没有指定其具体值的列或列数据项赋予事先设定好的值
规则
  规则是对数据库表中数据信息的限制,它限定的是表的列
触发器
  触发器是一种特殊类型的存储过程,通过指定的事件触发执行,一般用于数据审计、数据备份等
函数
  函数是对一些业务逻辑的封装,以完成特定的功能,函数执行完成后会返回执行结果

3、定义表

高斯数据库HCNA之数据定义_数据

4、创建表

高斯数据库HCNA之数据定义_最小值_02

高斯数据库HCNA之数据定义_数据库_03

高斯数据库HCNA之数据定义_最小值_04

5、修改表属性

ALTER TABLE功能指通过更改、添加、删除列和约束来更改表的定义,功能包括
  列的添加、删除、修改、重命名
  约束的添加、删除
  约束的启动和禁用
  修改分区的名称
  修改分区的表空间

高斯数据库HCNA之数据定义_数据_05

高斯数据库HCNA之数据定义_数据_06

6、删除表

高斯数据库HCNA之数据定义_最小值_07

高斯数据库HCNA之数据定义_最小值_08

7、定义索引

索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息,所涉及的SQL语句,如下表所示
索引按照索引列数分为单列索引和多列索引,按照索引使用方法可以分为普通索引、唯一索引、函数索引、分区索引

高斯数据库HCNA之数据定义_数据库_09

8、创建索引

功能描述
在指定的表上创建一个索引,索引可以用来提高数据库查询性能,但是不恰当的使用将导致性能下降
注意
执行该语句的用户需要有CREATE INDEX、CREATE ANY INDEX系统权限,普通用户不可以创建系统用户对象
语法格式
CREATE [ UNIQUE ] INDEX [ IF NOT EXISTS ] [ schema_name. ]index_name ON table_index_clause [ CRMODE { PAGE | ROW } ]
table_index_clause子句
[ schema_name.]table_name ( { [function_name()]column_name [ ASC | DESC ]} [ ,... ] )

参数说明
UNIQUE
创建唯一性索引,每次添加数据时检测表中是否有重复值,如果插入或更新的值会导致重复的记录时将生成一个错误
INDEX_NAME
要创建的索引名
TABLE_NAME
要创建索引的表名,可以有用户修饰
ONLINE
在线创建索引

高斯数据库HCNA之数据定义_最小值_10

9、修改索引属性

语法格式
ALTER INDEX [ schema_name. ]index_name [ ON [ schema_name.] table_name ] { rebuild_clauses | rename_clauses }
rebuild_clauses
REBUILD ONLINE
在线创建或重建索引,这个功能的主要作用是在创建和重建索引过程中,大幅度减少对表加排它锁的时间,从而不阻塞在线业务的运行
REBUILD TABLESPACE tablespace_name
复制索引数据到其他表空间
rename_clauses
RENAME TO [schema_name.]index_name_new
待重命名的索引名

示例
创建索引idx_posts
CREATE INDEX idx_posts ON posts(post_id ASC,post_name) ONLINE;
在线重建索引
ALTER INDEX idx_posts REBUILD ONLINE;
重命名索引
ALTER INDEX idx_posts RENAME TO idx_posts_temp;

10、删除索引

语法格式
DROP INDEX [ IF EXISTS ] [ schema_name. ]index_name [ ON [schema_name.]table_name ]
参数说明
IF EXISTS #索引不存在时,直接返回成功
[ schema_name. ]index_name #待删除索引名
ON [schema_name.]table_name
开启ENABLE_IDX_CONFS_NAME_DUPL配置项后,不同表支持索引名重名,删除索引时必须指定表名
示例
DROP INDEX IF EXISTS idx_posts ON posts;

11、定义视图

视图是从一个或几个基本表中导出的虚表,可用于控制用户对数据访问,所涉及的SQL语句,如下表所示
视图与基本表不同,数据库中仅存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中
若基本表中的数据发生变化,从视图中查询出的数据也随之改变,从这个意义上讲,视图就像一个窗口,通过它可以看到数据库中用户感兴趣的数据及变化

高斯数据库HCNA之数据定义_最小值_11

12、创建视图

语法格式
CREATE [ OR REPLACE ] VIEW [ schema_name. ]view_name [(alias [ ,... ])] AS subquery
参数说明
[ OR REPLACE ] #创建视图时,若视图存在则更新
[ schema_name. ]view_name #视图名
[(alias [ ,... ])] #视图列别名,若不给出,将根据后面子查询自动推导列名
AS subquery #子查询

高斯数据库HCNA之数据定义_数据_12

13、删除视图

删除视图
语法格式
DROP VIEW [ IF EXISTS ] [ schema_name. ]view_name
参数说明
IF EXISTS
视图存在,则执行删除
[ schema_name. ]view_name
待删除的视图
示例
DROP VIEW IF EXISTS privilige_view;

14、定义序列

序列可以产生一组等间隔的数值,能自增,主要用户表的主键,所涉及的SQL语句,如下表所示

高斯数据库HCNA之数据定义_数据_13

15、创建序列

如果没有声明该子句或者声明了NOMAXVALUE,则使用默认值
递增序列的缺省最大值为263-1
递减序列的缺省最大值为-1
MINVALUE bigint|NOMINVALUE
MINVALUE声明序列的最小值
NOMINVALUE声明序列无最小值
如果没有声明该子句或者声明为NOMINVALUE,则使用默认值
递增序列的缺省最小值为1
递减序列的缺省最小值为-263+1

功能描述
向当前数据库中增加一个新的序列生成器,当前用户为该生成器的所有者
语法格式

高斯数据库HCNA之数据定义_最小值_14

CACHE bigint|NOCACHE
CACHE bigint表示为快速访问而在内存里预先存储序列号的个数,默认值是20,最小值是1
此处在存在约束:如果向上取整(( MAXVALUE - MINVALUE )/INCREMENT )<CACHE bigint,则会报错
NOCACHE表示不设置缓存
ORDER|NOORDER
ORDER保证序列号按请求顺序产生,如果想以序列号作为timestamp(时间戳)类型的话,可以采用该选项
对于将序列用于生成主键来说,约定顺序通常并不重要
NOORDER:NOORDER跟ORDER相对应,并不按照请求的顺序进行生成
默认是NOORDER
示例
创建序列seq_auto_extend,序列起点为10,步长为2,最大值为200,序列到达最大值时可循环
create sequence seq_auto_extend start with 10 maxvalue 200 increment by 2 cycle;
得到序列的下一个值或当前值
select sea_auto_extend { nextval | currval } from dual;
通过序列实现id的自增
create table test (id number(6),name varchar(20),constraint ts_id primary key(id));
insert into test values(seq_auto_extend.nextval,'weifan');

16、修改序列属性

高斯数据库HCNA之数据定义_数据库_15

高斯数据库HCNA之数据定义_数据_16

高斯数据库HCNA之数据定义_数据库_17

17、删除序列

语法格式
DROP SEQUENCE [ IF EXISTS ] [ schema_name. ] sequence_name
参数说明
IF EXISTS 序列不存在时,删除也会成功
[ schema_name. ] sequence_name 待删除序列名

示例
删除序列seq_auto_extend
drop sequence if exists seq_auto_extend;

标签:高斯,数据库,视图,索引,序列,HCNA,schema,name
From: https://blog.51cto.com/u_13236892/8318589

相关文章

  • DM8数据库单机部署
    1.环境主备X86contos7 64位ulimit-adatasegsize          (kbytes,-d)unlimitedfilesize              (blocks,-f)unlimitedopenfiles                     (-n)65537virtualmemory         (kbytes,-v......
  • Java基础、MySQL数据库、Web前端(HTML、CSS、JavaScript)
    一、选择题(每题1分,共20题,共20分),注:可能有多选哦!1、在Java中,下列标识符不合法的有(   )A.newB.$UsdollarsC.1234 D.car.taxi2、定义了int型二维数组int[][]a=newinta[6][7]后,数组元素a[3][4]前的数组元素个数为(  )  A.24 B.25 C.18 D.173、下面程序的运行结果是( ......
  • milvus向量数据库源码编译
    (milvus源码编译)编译环境os:ubuntu22.04.6live-server,x64gcc:9.4.0cmake:3.24.0go:1.18.10milvus:v2.3.2操作系统建议使用ubuntu。在centos7上未编译成功。在root账户下操作。安装gcc因为后面需要安装cmake,因此先安装如下依赖:aptinstallg++gccmakelibssl-dev......
  • 解决sqlserver数据库显示单个用户
    今天突然发现数据库显示为单个用户并且,访问速度超慢,执行以下语句解决了1USEmaster;2GO3DECLARE@SQLVARCHAR(MAX);4SET@SQL=''5SELECT@SQL=@SQL+';KILL'+RTRIM(SPID)--杀掉该进程6FROMmaster..sysprocesses7WHEREdbid=DB_ID('Test');89......
  • 基于MacOS M2 芯片的Mysql 数据库安装与使用
    第一步:MySQL软件下载与安装1.1 登录网址:https://dev.mysql.com/downloads/mysql/,选择系统:MacOS,版本:8.0.35,或者更新的版本,OSversion选择ARM,64-bit,点击下Download1.2 接下来安装软件:双击mysql-8.0.35-macos13-arm64.dmg,点继续或下一步,使用强密码usestrongpasswordencr......
  • 国产瀚高数据库简单实践 及 authentication method 13 not supported 错误解决方法
    近几年IT界软硬件“国产化”搞得很密集,给很多公司带来了商机。但是有些公司拿国外的代码改改换个皮肤,就是“自主知识产权”的国产软件,光明正大卖钱,这个有点...,还经常有丑闻露出,譬如某星浏览器、C某-IDE...话不多说,最近有个项目需要国产化改造,业主方推荐了国产数据库---瀚高数据库......
  • Grafana监控Oracle数据库的表大小等信息
    Grafana监控Oracle数据库的表大小等信息方案oracledb_exporter以及prometheusgrafana使用的SQL以及配置文件[[metric]]context="table_sizeinfo"labels=["table_nameinfo","table_tablespace"]metricsdesc={table_rownum="tablerownum&q......
  • 数据库设计心得
    数据库设计心得前言我们小组的项目较为特殊,我们小组是基于Miniob的SQL请求并发处理的子系统,意思是在原有Miniob这个DBMS上面完善其功能,并且实现能够对SQL请求的并发处理。由于本身项目就是一个数据库管理系统,想要根据这个数据库管理系统再设计新的表不太合适。但我们小组仍然竭......
  • Python MySQL 数据库查询:选择数据、使用筛选条件、防止 SQL 注入
    从表格中选择数据要从MySQL中的表格中选择数据,请使用"SELECT"语句:示例选择"customers"表格中的所有记录,并显示结果:importmysql.connectormydb=mysql.connector.connect(host="localhost",user="yourusername",password="yourpassword",datab......
  • 团队项目数据库设计心得
    数据库设计心得一、项目简介该项目是在一个miniob(mini数据库)库的基础上,让参数选手实现数据库的非常基础的功能,功能分为入门(预选赛),中级(决赛),高阶(黑客松)3个阶段。入门门槛较低,适合所有参赛选手。面向的对象主要是在校学生,数据库爱好者,或者对基础技术有一定兴趣的......