包括
1)创建表
2)删除表
3)加字段
4)字段换名
5)字段改类型
6)字段添加注释
7)修改字段为自增类型
8)增加主键
9)查看模式下的表
一、创建和删除表
DROP TABLE IF EXISTS "DZ_RAIN" CASCADE;
CREATE TABLE "DZ_RAIN" (
"ID" SERIAL CONSTRAINT DZ_RAIN_PK PRIMARY KEY,
"BEGINTIME" TIMESTAMP,
"ENDTIME" TIMESTAMP,
"CATEGORY" SMALLINT,
"CREATETIME" TIMESTAMP NULL,
"CREATOR" VARCHAR(50 byte) NULL
);
二、修改表结构
--添加字段
ALTER TABLE "DZ_ALERT" ADD COLUMN levels varchar(20) NULL;
ALTER TABLE dz_targetunit ADD d varchar(50);
--字段换名
ALTER TABLE "DZ_ALERT_DETAIL" RENAME "regiontype" TO "region_type";
ALTER TABLE dz_targetunit RENAME COLUMN address TO country;
--修改字段类型
ALTER TABLE dz_targetunit ALTER COLUMN "TYPE" TYPE SMALLINT ,ALTER COLUMN country TYPE varchar(50);
ALTER table dz_targetunit ALTER COLUMN id TYPE BIGINT;
三、字段注释
--添加字段注释
COMMENT ON COLUMN dz_targetunit."TYPE" IS '0全部发送(默认)1区别发送';
四、自增字段和主键
设置主键(一般为自增)的最佳时机是创建表的时候:
CREATE TABLE "DZ_RAIN" (
"ID" SERIAL CONSTRAINT DZ_RAIN_PK PRIMARY KEY,
"BEGINTIME" TIMESTAMP,
"ENDTIME" TIMESTAMP,
"CATEGORY" SMALLINT,
"CREATETIME" TIMESTAMP NULL,
"CREATOR" VARCHAR(50 byte) NULL
);
上述语句中,id设置为主键。同时类型指定为serial,创建之后,ID即为自增。但如果创建的时候没有设为自增怎么办?注意并不可以将ID设为serial类型。serial是一个伪类型,作用是自动创建一个序列(sequence)并赋给该字段。那么将某字段设为自增(主键与自增是两码事),应沿着相同路径操作:
--将字段改为自增
ALTER TABLE dz_targetunit ALTER column ID set default nextval('DZ_TARGETUNIT_ID_SEQ');
--删除约束(主键就是一个约束)
ALTER TABLE dz_targetunit DROP CONSTRAINT dzzhyj_dz_targetunit_constraint_1;
--添加主键
ALTER TABLE dz_targetunit ADD PRIMARY KEY(id);
五、其他
1、查看模式下的表
SELECT count(table_name) FROM information_schema.TABLES WHERE table_schema =‘information_schema’;
2、查看指定机器有多少数据库:
ksql -h 192.168.0.79 -U system -W 123456 -l
关键是 -l
这个参数
六、表名大小写更改
kingbase默认不区分大小写。不过如果创建表的时候,不小心用了大写命名,想改回小写,或者相反,在人大金仓提供的对象管理工具重命名是不行的。只能用语句。并且要分2步走。先改成一个小写、不同名字的表名;然后再改回小写、本名的表名。
如:
–注意第二个表名前面不带schema
ALTER TABLE publicDB."OUTLET_NONFARMED" RENAME TO "outlet_nonfarmed1";
ALTER TABLE publicDB."outlet_nonfarmed1" RENAME TO "outlet_nonfarmed";