DMSQL
一、数据类型
1、字符数据类型
char:指定定长字符串,长度为存储满空格2补齐,缺损为1
varchar:指定可变长度字符串,存储空间以实际存储长度为准,缺损为 32767 字节
2、数值数据类型
1)、精确数字类型
numeric::numeric(4,1)定义了小数点前面3位和小数点后面1位,共4位的数字,范围在-999.9
到999.9,缺省精度为38,标度无限定。精度是一个无符号整数,定义了总的数字数,精度范围是1至38。标度定义了小数点右边的数字位数。
decimal:decimal(精度,标度)
dec: dec(精度,标度)
number: number(精度,标度)
integer:用于存储有符号整数,精度为 10,标度为 0
int:
bigint: 用 于 存 储 有 符 号 整 数 , 精 度 为 19 ,标度为 0
tinyint:用于存储有符号整数,精度为 3,标度为 0
byte:
smallint:
binary:
varbinary:
2)、近似数值数据类型
float:单精度浮点数
double:双精度浮点点数
real:
double precision:指定双精度浮点数
2、位串数据类型
bit:用来存储1,0或null,类似bool。0判断为假,其他判断为真。
3、日期时间数据类型
date:包括年、月、日信息
time:包括时、分、秒信息
timestamp:包括年、月、日、时、分、秒信息,可以指定秒的精度,缺省精度为 6。也可以用datetime来代替timestamp
补充:
‘2002-12-12 09:10:21’或’2002-12-12 9:10:21’或’2002/12/12 09:10:21’
或’2002.12.12 09:10:21’ 都是有效的 TIMESTAMP 值,且彼此等价
4、多媒体数据类型
text: 为变长字符串类型。其字符串的长度最大为 100G-1 字节。DM 利用它存
储长的文本串
image: 用于指明多媒体信息中的图像类型
interval
二、DDL(数据库定义语言)
1、创建库:
2、创建表:
/*
创建表
*/
create table stu(
stu_id int identity ,
stu_num varchar(20) not null ,
stu_name varchar(10) not null ,
stu_sex bit default '1' ,
stu_college varchar(10) ,
stu_image image ,
stu_jianjie text,
stu_date datetime
)
/*
添加备注
*/
comment on column stu.stu_id is '主健自增';
comment on column stu.stu_num is'学号';
comment on column stu.stu_name is '姓名';
comment on column stu.stu_sex is '1表示男,0表示女'
comment on column stu.stu_college is '学院';
comment on column stu.stu_image is '头相';
comment on column stu.stu_jianjie is '简介';
comment on column stu.stu_date is '日期';
/*
插入数据
*/
insert into stu(stu_num,stu_name,stu_sex,stu_college,stu_image,stu_jianjie,stu_date)
value ('201822111050001','小李',1,'商学院',null,'勤奋好学','2022-03-21 11:10:20');
3、修改表结构:
/*
增加值段
*/
alter table stu add stu_grade int;
alter table stu add stu_phone int;
/*
修改字段类型
*/
alter table stu modify stu_phone varchar(11);
/*
修改字段名
*/
alter table stu rename column stu_jianjie to stu_introdaction;
/*
将原字段数据更新到新字段
*/
alter table stu add column stu_number varchar(20);
update stu set stu_number = trim(stu_num);
/*
删除原字段
*/
alter table stu drop column stu_num;
4、删除表:
/*
清空表:
1、delete清空:使用 DELETE 清空表,当表有很多行时,会消耗很多系统资源。
DELETE操作需要 CPU 时间,并且会产生大量的 REDO 日志和 UNDO 记录。另外,
如果表上关联了元 组级触发器,每删除一行,就会启动一次触发器。这都需要大量的系统资源;
2、使用drop 先删除表,再使用create创建同名表;
3、使用truncate清空:truncate 语句能够快速、有效地删除表所有行,不会产生任何回滚信息,语句执行后会立即提交,而且不能回滚。
truncate 语句并不影响与被删除的表相关联的任何结构、约束、触发器或者授权。 另外,DM 数据库 truncate 表后,原来分配给该表的空间会被释放,供其他数据库对象使用,大大提高空间的利用效率
*/
delete * from XSWL.CITY
truncate table XSWL.CITY
/*
删除表:
如果要删除的表被其他表引用,即其他表的外键引用了表的任何主键或唯一键,则需要在 DROP TABLE 语句中包含 CASCADE 选项,
*/
Drop table XSWL.CITY;
drop table XSWL.CITY cascade;
如果还有任何问题,欢迎到达梦在线服务平台提问哦!
社区 | 达梦在线服务平台https://eco.dameng.com