dm数据库sql语句的使用

达梦数据库中sql语句一般在manager原章程工具中使用,这里也在远程工具中使用。

而我的学习方法是,复杂的先不要记,就先了解基础的结构,基础的结构了解深了,复杂的自然就会,不然突然上来一个特别难的结构,是不可能一下子看懂的。对了,触发器就不说了,因为我自己还没学。

基础的增删改查

create

创建表(create)

CREATE TABLE wang(id int, name char(10), AGE int);

创建和mysql没什么区别,但需要注意,如果在某个模式下创建,需要

CREATE TABLE LIQIAOFENG.wang(id int, name char(10), AGE int);

创建表空间(create tablespace)

CREATE TABLESPACE ab DATAFILE 'abc.DBF' SIZE 128;

在dm数据库中,表要存放在表空间,表空间要有一个或者多个数据文件,数据文件要有合适的大小。

这里可以看到刚才创建的数据文件。

但是表空间需要关联用户,关联表。这个留到表空间的内容再说。

创建索引(create index)

CREATE index hhh ON SYSDBA.WANG(name);

这里,hhh是索引名,SYSDBA是用户默认的模式,可以省略。如果不在默认模式下,可以省略,()中是要作为索引的字段。

开启索引的监控可以监控索引的状态,这个留到修改字段类型再说。

创建视图(create view 视图名 as 查询语句)

CREATE VIEW heihei  as
select * from YUANGONG;

如图,一张视图做出来的方法,是先找到表,找到表所在的模式,然后创建视图,查询的语句中可以指定条件。这个后面查询再说,不考虑条件,视图就是这样。

查看视图

创建用户(create user 用户名 identified )

CREATE USER nima IDENTIFIED BY "123456dameng"

这里也可以不加分号,一样能用。

delete或drop

删除表(drop table 表名)

drop TABLE wang;
DELETE FROM LIQIAOFENG.HH;

 这里,delete和drop都可以删除表。

删除表空间(drop tablespace 表空间名)

删除表空间不能删除用户默认的表空间。并且表空间中的表可能关联在多个模式下,慎重删除。

drop TABLESPACE AB;

删除索引(drop index 索引名)

DROP INDEX nihao;

删除用户(drop user 用户名)

DROP USER NIMA;

注意,不要去试图删除系统用户!

删除指定行(delete from 表名 where 条件)

DELETE FROM YUANGONG WHERE salary= 10000.25;

 有一张表的字段中有一行是薪水,将薪水是10000.25的删除。

所以,要提前看好表里的内容。

alter(修改),insert(插入),update(更新)

如何清晰的知道字段

desc 表名;

 

这样可以查出自己表的结构。但是要使用sql语句的字符工具。

表字段增加(alter table 表名 add 字段名)

ALTER TABLE LIQIAOFENG.HH add chaonima CHAR (10);

这条执行的时候,我表中原本的数据消失了,所以,添加字段要慎重,如果你有约束就更要慎重。

表字段改名(alter table 表名 rename column 原字段名 to 新字段名)

ALTER TABLE YUANGONG RENAME COLUMN ZHIWEI TO zhiwu;

表字段类型修改(alter table 表名 modify  字段名 要改为的类型)

ALTER  TABLE YUANGONG MODIFY first_name CHAR(5);

表插入数据(insert into 表名(字段名,字段名……)values(字段值,字段值……)

INSERT INTO YUANGONG (EMP_NO, FIRST_NAME, AGE, SALARY, DEPT_NO, ZHIWU, LAST_NAME)  
VALUES(10,'汉',25,80000.78,'9999-3','员工','呵呵');

其实结构是一样的,就是内容有点长了。

因为时间这列是设定的自己按照当前时间设定。所以不用插入。像时间这种比较复杂的条件,用的时候上网查就行。

表添加约束

表添加非空约束(alter table 表名 modify(列名 约束);
ALTER TABLE YUANGONG MODIFY(salary not NULL);

现在尝试插入一个salary为空的数据。

 表添加主键约束(alter table 表名 add constraint 键名 primary key(字段名);
ALTER TABLE ye ADD CONSTRAINT zhujian PRIMARY KEY(id);
表添加外键约束(alter table 表名 add constraint 键名 foreign key(被设置为主键的字段名)refrences 另一个表名(该表被设置为主键的字段名) ;
ALTER TABLE YE ADD CONSTRAINT waijian FOREIGN KEY(id) REFERENCES liqiaofeng.HH(id);

注意,在以上的外键约束语句中的两个表的设置为外键的字段,必须是各自的主键,要提前设置好。否则会报错

外键约束的作用是,表里的设置为外键的列,每次插入的值必须在”另一个表“中存在。而这里”另一个表“中被前面的表引用的字段值,不能随意的被删除或者更改,除非在前面的表里的对应字段删除该值。

表添加唯一性约束(alter table 表名 constraint 键名 unique(字段名);
ALTER TABLE YE ADD CONSTRAINT weiyixi UNIQUE(name);

设置了唯一性约束,则该字段值不能重复。

检验约束(alter table 表名 add constraint 键名 check (字段 运算符 条件);
ALTER TABLE YE ADD CONSTRAINT jiancha CHECK (salary>2100);

检验约束的作用是,当新插入的内容不符合检验约束。禁止插入。

禁止约束(alter table 表名 disable constraint jiancha;
alter table YE DISABLE CONSTRAINT jiancha;
启用约束(alter table 表名 enable constraint jiancha;
alter table YE ENABLE CONSTRAINT jiancha;
删除约束(alter table 表名 drop constraint jiancha;
alter table YE DROP CONSTRAINT jiancha;

删除了就可以插入

表更新字段值(update 表名 set 字段 = 替换后的值 where 字段=要替换的值;

UPDATE YE SET SALARY = 5000 WHERE ID=2;

表字段删除(alter table 表名 drop 字段名;

ALTER TABLE YE DROP salary;

select(select 字段1,字段2…… from 表名 where 条件 group by 字段1,字段2…… having 字段 运算符  条件  order by 字段 desc ;

 以上,蓝色为必选内容,黄色为可选择内容。我时间不够了。大致说一下。

where指定选择行的条件。

group by 指定要输出的字段。

having给要输出的行加限制,比如只要工资大于2100的。

order by 是按照一个字段给输出的表格排序,desc是降序排序

其实,select一般直接

SELECT id,name,age FROM YE;

就可以查询。

后面的慢慢练习就行。

  • 15
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值