标签:2012020713213
第一章 kingbase 语法
第一节 词语的含义
英文
truncate
vacuum
rename
analyse
Range
RangePartition
sequence
Vertical
VerticalPartition
tablespace
encrypted
SysFunc
defaultIsSysFunction
pk
fk
pkSchema
PARTITION_RANGE
PARTITION_LIST
PARTITION_VERTICAL
CONSTRAINT_CHECK
CONSTRAINT_FORIGN
CONSTRAINT_UNIQUE
ARCHIVE_FILE
LOGFILE
DATAFILE
partitionKey(s)
Data warehouse
highValues
中文
把…截短,截断(针对分区)
清理
重命名
分析
范围
范围分区
序列,表示第几个
垂直的
垂直分区
表空间
加密的
系统函数
默认值为系统函数
主键
外键
主键的模式
范围分区
列表分区
垂直分区
CHECK 约束
外键约束
唯一性约束
归档文件
日志文件
数据文件
分区参考的列
数据仓库
分区的上限值
第二节 全局约束(说明)
1 管理工具适配列存储和 OLAP 管理接口是一个事儿。
2 许可证就是 license。
3 OLAP 就是列存储。
一、 伪列
declare JDBC_CURS_152 cursor with hold for SELECT *, xmin, ctid FROM "PUBLIC"."A"
伪列有 xmin,ctid,rownum;
执行“打开表”操作的时候,要查询 xmin,ctid 两个伪列。
二、 运行 kingbase 的必备条件
第三节 SQL 语法
一、 转义
(一)指定转义字符
用法:
ESCAPE '\'
ESCAPE 指定转义字符,转义字符不一定必须是“\”
select * from student where name like 'h\_w' ESCAPE '\' ;
select * from student where name like 'hc_w' ESCAPE 'c' ;
二、 表
(一)查看表
SELECT TABLENAME FROM SYS_TABLES where SCHEMANAME='PUBLIC';
SELECT * FROM SYS_TABLES;
SELECT TABLENAME FROM SYS_TABLES;
包括系统表。
1.查看指定模式的表
SELECT TABLENAME FROM SYS_TABLES where SCHEMANAME='PUBLIC';
TABLEOWNER:表的属主名:
SELECT
SCHEMANAME='PUBLIC';
TABLENAME,TABLEOWNER
FROM
SYS_TABLES
where
SYS_TABLES
视图定义
获得表的 oid
select oid from sys_class where
relname='AAA';
2.查看表的详细信息
1)\d
功能:查看当前数据库下的用户表
使用命令\d
\d student;
注意:查看视图的详细信息也是用此命令
2)查看表的存储类型
关键字 列存储 DSM
select relkind from sys_class where relname='STUDENT';(查看名称为 STUDENT 的存储类型,r 表示行
存储表;R 表示列存储表。)
select relname
from sys_class where relkind='r' or relkind='R';(查找所有模式的行存储表和列存储表)
select sys_namespace.oid , relname ,relkind from sys_class,sys_namespace where
or
relkind='R') and RELNAMESPACE=sys_namespace.oid and sys_namespace.nspname='PUBLIC' ;(查找
PUBLIC 模式下的所有表)
( relkind='r'
(二)创建表
1.创建简单表
正确:
CREATE TABLE "PUBLIC"."a%c" (
a DECIMAL (4,2) DEFAULT 2.555 NULL
) TABLESPACE "SYSTEM";
错误:
CREATE TABLE "PUBLIC".a%c (
a DECIMAL (4,2) DEFAULT 2.555 NULL
) TABLESPACE "SYSTEM";
2.创建复杂表
int
char,sid
int
table
,courseName
create
course(cid
REFERENCES student(id));
create table course(cid int ,courseName char,sid int constraint
conabc REFERENCES student(id));
1)建表时不为约束命名
create table course(cid int ,courseName char,sid int REFERENCES student(id));
2)建表时手动为约束命名
create table course(cid int ,courseName char,sid int constraint
conabc REFERENCES student(id));
3)建表时手动添加唯一性约束
king10=# create table student (id int unique ,name char(10));
NOTICE: CREATE TABLE / UNIQUE 将建立隐式索引"STUDENT_ID_KEY"在表"STUDENT"
上
CREATE TABLE
4)建表时表加密和 COMMENT
CREATE TABLE "PUBLIC".sd (
a NUMERIC (11,1) NOT NULL,
PRIMARY KEY (a) USING INDEX TABLESPACE "SYSTEM"
) TABLESPACE "SYSTEM" ENCRYPTED;
COMMENT ON COLUMN "PUBLIC".sd.a IS 'efds';
COMMENT ON TABLE "PUBLIC".sd IS 'fsdfs';
5)自增列
create table person(id int auto_increment primary key ,name varchar(20),sex bit);
mysql 数
据库
kingbase
mysql 要求自增列必须是主键或满足唯一性;kingbase 没有这个要求。
错误
create table person(id int identity(2,3) primary key ,name varchar(20),sex bit);
正确
正确
create table person(id int auto_increment ,name varchar(20),sex bit);
create table person(id int auto_increment unique,name varchar(20),sex bit);
create table person(id int auto_increment primary key ,name varchar(20),sex bit);
CREATE TABLE "PUBLIC".course (
id INTEGER IDENTITY (2,3),
name char(20)
) TABLESPACE "SYSTEM";
注:2 是种子,3 是步长。
CREATE TABLE "PUBLIC".course ( id INTEGER IDENTITY (2,3),name char(20) );
3.创建列存储表
关键字 列存储 列存储表 column
DSM