一、SQL语句概述

1、SQL语句介绍

维基百科的定义:
SQL(Structured Query Language,结构性查询语句)是一种特定目的编程语言,用于管理关系数据库管理系统,或在关系流数据管理系统中进行流处理
SQL基于关系代数和元组关系演算,包括一个数据定义语言和数据操作语言
SQL的范围包括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制

2、SQL语句分类

DDL(Data Definition Language)数据定义语言
用于定义或修改数据库中的对象,如:表、索引、视图、数据库、序列、用户、角色、表空间、会话等
DDL不支持物化视图、存储过程、触发器、自定义函数、自定义类型

DML(Data Manipulation Language)数据操纵语言
用于对数据库表中的数据进行操作,如插叙、更新和删除

DDL:
定义数据库:创建数据库(create database),修改数据库属性(alter database)
定义表空间:创建表空间(create tablespace),修改表空间属性(alter tablespace),删除表空间(drop tablespace)
定义表:创建表(create table),修改表属性(alter table),删除表(drop table),删除表中所有数据(truncate table)
定义索引:创建索引(create index),修改索引属性(alter index),删除索引(drop index)
定义角色:创建角色(create role),删除角色(drop role)
定义用户:创建用户(create user),修改用户属性(alter user),删除用户(drop user)
定义视图:创建视图(create view),删除视图(drop view)
定义路由规则:创建路由规则(create distribute rule),删除路由规则(drop distribute rule)
定义节点:创建节点(create node),删除节点(drop node),修改节点(alter node)
修改系统参数:修改系统参数(alter system),结束会话(alter system kill session)
操作会话:修改会话(alter session),结束会话(alter system kill session)
DML:
数据操作:插入数据(insert),更新数据(update),删除数据(delete)
导入导出:导入(load),导出(dump)
其他:查看执行计划(explain plan)

DCL(Data Control Language)数据控制语言
用来设置或更改数据库事务、授权操作(用户或角色授权,权限回收,创建角色,删除角色等)、锁表(支持SHARE和EXCLUSIVE两种锁表模式)、停机等

DQL(Data Query Language)数据查询语言
用来查询数据库内的数据,如查询数据、合并多个select语句的结果集

二、数据类型

1、数据类型概述

数据类型是数据的一个基本属性,主要用户建表时指定字段的数据类型,包括:
常用数据类型(数值类型、字符类型、日期类型等)
非常用数据类型(二进制类型、布尔类型、时间间隔类型等)

2、常用数据类型

数值类型(1)
整型类型-integer(32位)和bigint(64位)
integer
  占用4字节
  对应关键字为int,integer,binary_integer,int signed,integer signed等
  当USE_NATIVE_DATATYPE=TRUE时映射为binary_integer类型
  当USE_NATIVE_DATATYPE=FALSE时映射为number(38)类型
bigint
  占用8字节
  对应关键字为bigint和binary_bigint
  当USE_NATIVE_DATATYPE=TRUE时映射为binary_bigint类型
  当USE_NATIVE_DATATYPE=FALSE时映射为number(38)类型
  
数值类型(2)
浮点类型(64位)
real:
  占用8字节
  对应关键字为real,double,float和binary_double
  当USE_NATIVE_DATATYPE=TRUE时映射为binary_double类型
  当USE_NATIVE_DATATYPE=FALSE时映射为number类型
高精度数值类型
decimal/number
  变长占用4~24字节
  对应关键字为decimal,number和numeric
  语法格式包括number/decimal,number/decimal(p)
  和number/decimal(p,s)

字符类型(1)
GaussDB 100在支持UTF8编码时,汉字和全角字符占2~8个字节,数字和英文字符等都是1个字节
在支持GBK编码时,汉字和全角字符占2个字节,数字等字符占用1个字节
定长字符串类型(占1~8000字节)
char(size [byte|char]):
默认为byte类型。对应关键字为char
size byte或size char分别表示最大能容纳的字节或字符数
若输入长度小于size,则利用空格在右端补齐
nchar(size):等同于char(size char),对应关键字为nchar

字符类型(2)
变长字符串类型
clob(占0~4G):
  存储大对象变长字符串
  对应关键字为clob,text,longtext,long
varchar(size [byte | char])
  用于存储变长字节或字符串,占用1~8000字节
  size byte或size char分别表示最大能容纳的字节或字符数
  对应关键字为varchar
nvarchar(size):等同于varchar(size char),占用1~8000字节,对应关键字为nvarchar
对于变长类型,若输入长度小于size,不需要利用空格补齐

日期类型(1)
不带时区的时间戳(占8字节)
datetime/date:
保存年、月、日、时、分、秒,对应关键字为date和datetime
如:2019-08-22 17:29:13
timestamp[(n)]
保存年、月、日、时、分、秒、微妙,n取值为0~6,默认值为6
对应关键字为timestamp
如:2019-08-22 17:29:13.263183 (n=6)
2019-08-22 17:29:13.383 (n=3)

日期类型(2)
带时区的时间戳
timestamp(n) with time zone
  保存年、月、日、时、分、秒、微妙和时区,占12字节
  对应关键字为timestamp(n) with time zone
  如:2019-08-22 18:41:30.135428 +08:00
timestamp(n) with local time zone:带时区的时间戳类型数据,不保存时区,存储时转换
  为数据库时区的timestamp,用户查看时转换为当前
  会话所在时区的timestamp,占8字节
  对应关键字为timestamp(n) with local time zone
  如:存储时为2019-08-22 18:41:30.135428
  查看时为2019-08-22 18:41:30.135428 +08:00

3、非常用数据类型

二进制类型

高斯数据库HCNA之SQL语法入门_数据类型

布尔类型

高斯数据库HCNA之SQL语法入门_操作符_02

时间间隔类型

高斯数据库HCNA之SQL语法入门_数据_03

4、数据类型案例介绍

高斯数据库HCNA之SQL语法入门_操作符_04

三、系统函数

1、系统函数

系统函数是对一些业务逻辑的封装,以完成特定的功能,系统函数可以有参数,也可以没有参数,系统函数执行完成后会返回执行结果
系统函数的分类如下:
  数值计算函数
  字符处理函数
  时间日期函数
  间隔函数
  类型转换函数

2、数值计算函数

abs(exp),cos(exp),sin(exp),acos(exp),asin(exp):返回表达式的绝对值,余弦值,正弦值,反余弦值和反正弦值。
abs(exp)的返回值类型与参数exp数据类型相同,其他的返回值为number
asin和acos函数说明:入参exp是可转成数值型的表达式,取值范围[-1,1]

高斯数据库HCNA之SQL语法入门_数据类型_05

高斯数据库HCNA之SQL语法入门_数据类型_06

高斯数据库HCNA之SQL语法入门_操作符_07

3、字符处理函数

高斯数据库HCNA之SQL语法入门_数据_08

高斯数据库HCNA之SQL语法入门_数据类型_09

高斯数据库HCNA之SQL语法入门_数据_10

4、时间日期函数

高斯数据库HCNA之SQL语法入门_操作符_11

高斯数据库HCNA之SQL语法入门_数据类型_12

5、间隔函数

高斯数据库HCNA之SQL语法入门_数据_13

6、类型转换函数

if(cond,exp1,exp2),ifnull(exp1,exp2),nullif(exp1,exp2),nvl(exp1,exp2),nvl2(exp1,exp2,exp3):条件判断函数
nullif函数不支持两个参数同为clob类型或同为blob类型,并且入参exp1不能为NULL,否则校验报错

高斯数据库HCNA之SQL语法入门_操作符_14

高斯数据库HCNA之SQL语法入门_操作符_15

高斯数据库HCNA之SQL语法入门_操作符_16

四、操作符

1、操作符

操作符可对一个或多个操作数进行处理,位置上可能处于操作数之前、之后,或两个操作数之间
常见操作符类型(从使用场景划分)
  逻辑操作符
  比较操作符
  算术运算符
  测试运算符
  通配符
  其他操作符

2、逻辑操作符

高斯数据库HCNA之SQL语法入门_操作符_17

3、比较操作符

高斯数据库HCNA之SQL语法入门_数据_18

4、算术操作符

高斯数据库HCNA之SQL语法入门_数据类型_19

5、测试操作符

高斯数据库HCNA之SQL语法入门_操作符_20

高斯数据库HCNA之SQL语法入门_操作符_21

6、其他操作符

高斯数据库HCNA之SQL语法入门_数据类型_22