表数据操作
数据操作是数据库管理系统的基本功能,包括数据的插入、修改和删除等。在实际用中,应用程序会并发操作数据库,导致出现数据库数据的不一致性和并发操作问是达梦数据库利用事务和封锁机制实现数据并发存取,保障数据的完整性。
1.插入表数据
表数据插入语句用于往已经定义好的表中插入单个或成批的数据。INSERT语句有两种形式:一种形式是值插入,即构造一行或多行值,并将它们插入表中;另一种形式是询插入,即通过返回一个查询结果集以构造要插入表的一行或多行值。
<1>.值插入
单行或多行数据插入语句格式如下: INSERT INTO<表名>[(<列名>{,<列名>})]
VALUES(<插入值>{,<插入值>});(<插入值>{,<插入值>}){,(<插入值>{,<插入值>})};
其中:(1)<列名>指明表或视图中列的名称,在插入记录中,这个列表中的每个列都被 VALUES子句或查询说明赋予一个值,如果在此列表中省略了表的一个列名,则用先前定义好的默认值插入这一列中,如果此列表被省略,则必须在VALUES子句和查询中为表中的所有列指定值;
(2)<插入值>指明在列表中对应的列插入的列值,如果列表被省略了,则插入的列值按照基表中列的定义顺序排列;
(3)当插入的是大数据文件时,启用@,对应的<插入值>格式为@'path'。
【例】单位新成立了一个部门“大数据事业部”(department_id-'909),在部门表(department)中添加该单位,插入语句为
INSERT INTO department(department_id,department_name) VALUES(909,大数据事业部'); COMMIT;
<2>.查询插入
查询插入语句格式如下:
INSERT INTO<目标表名>[(<列名>{,<列名>})]
SELECT<列名>{,<列名>}FROM 源数据表名[WHERE条件]
【例】有一张新表“老员工表”(oldemployee),表字段包括员工ID(employee_id)所属部门(departmentname)、入职日期(hire_date)、工资(salary),要求将入职日期早于“2009-01-01”的员工数据插入该新表中,插入语句如下:
insert into oldemployee(employee_id,department_namehire_date,salary) select a.employee_id,b.department_name,a.hire_date, a.salary from employee a,department b
where a.departmentid=b.department_id AND a.hire_date<TO_DATE('2009-01-01');
commit;