IT评测·应用市场-qidao123.com
标题:
dm数据库sql语句的使用
[打印本页]
作者:
玛卡巴卡的卡巴卡玛
时间:
2024-8-16 06:21
标题:
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;
复制代码
就可以查询。
背面的慢慢训练就行。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/)
Powered by Discuz! X3.4