结构和数据进行增、删、改"/>
DB(二):对表结构和数据进行增、删、改
文章目录
- ORACLE SQL
- 一、DDL数据定义语言
- 1、CREATE创建表
- 2、DESC查看表结构
- 3、DROP删除表
- 4、RENAME修改表名
- 5、ALTER修改表结构
- 二、DML语句
- 1、INSERT 语句
- 2、UPDATE语句
- 3、DELETE、TRUECATE语句
ORACLE SQL
包括CREATE创建表、DESC查看表结构、DROP删除表、RENAME修改表名、ALTER修改表结构、INSERT插入数据、DELETE\CREATURE删除数据、UPDATE更新数据。
一、DDL数据定义语言
DDL是对数据库对象
1、CREATE创建表
CREATE语句基本语法:
CREATE TABLE [schema.] table_name(column_name datatype[DEFAULT expr][,...]
);
根据现有的表创建新表:
-- 使用旧表创建新表
CREATE TABLE tab_new like tab_old;
CREATE TABLE tab_new as select col1,col2... FROM tab_old definition only
-- 创建employee_liu表
CREATE TABLE employee_liu(id NUMBER(4) NOT NULL,name VARCHAR2(20),gender CHAR(1) DEFAULT 'M',birth DATE,salary NUMBER(6,2),job VARCHAR2(30),deptno NUMBER(2),mgr NUMBER(4)
);
-- 创建dept表
CREATE TABLE dept(
deptno NUMBER(2) NOT NULL,
dname VARCHAR2(10),
loc VARCHAR2(20)
);
数据库中所有数据类型的默认值都是NULL,在创建表的时候可以使用DEFAULT为某个字段单独指定一个默认值
gender CHAR(1) DEFAULT 'M'
数据库中的字符串字面量是使用单引号的,虽然SQL语句本身不区分大小写,但是字符串的值是区分大小写的
NOT NULL:非空是一种约束条件,用于确保字段值不为空
id NUMBER(4) NOT NULL
(1)、默认情况下,任何列都允许有空值
(2)、当某个字段被设置了非空约束条件,这个字段中必须存在有效值
(3)、当执行插入数据的操作时,必须提供这个列的数据
(4)、当执行更新操作时,不能给这个列的值设置为NULL
2、DESC查看表结构
--DESC查看employee_liu表结构
DESC employee_liu;
3、DROP删除表
--DROP删除employee_liu表
DROP TABLE employee_liu;
4、RENAME修改表名
RENAME employee_liu TO myemployee_liu;
5、ALTER修改表结构
(1)、添加新的字段
--添加新字段,日期默认为当前系统时间
ALTER TABLE myemployee_liu ADD (hiredate DATE DEFAULT SYSDATE);
注:列增加后将不能删除;DB2中列加上后数据类型也不能改变,唯一能改变的是增加VARCHER类型的长度
(2)、修改现有字段
a、修改字段可以修改字段的类型、长度、默认值、是否非空
b、修改表结构都应当避免在表中有数据以后进行,若表中有数据,修改表中字段时尽量不要修改类型,若修改长度尽量增大避免缩小,否则可能导致失败
c、基本语法:
ALTER TABLE table_name MODIFY(column datatype [DEFAULT expr][,column datatype...]
);
--修改字段
ALTER TABLE myemployee_liu MODIFY(job VARCHAR2(40) DEFAULT 'CLERK');
(3)、删除现有字段
--删除字段
ALTER TABLE myemployee_liu DROP (hiredate);
二、DML语句
(1)、DML是对表中的数据进行的操作
(2)、DML伴随事物控制(TCL)
(3)、DML包含操作:增、删、改
1、INSERT 语句
INSERT向表中插入数据
--向表中插入数据
INSERT INTO myemployee_liu (id,name,salary,deptno) VALUES (1,'jack',5000,10);
注:字符类型的值必须用单引号括起来;未指定的列默认值为NULL
如果想插入的列有日期字段,需要考虑日期的格式
默认的日期‘DD-MON-RR’
可以自定义日期格式,用TO_DATE函数转换为日期类型的数据
--使用默认日期格式插入记录(有地区限制,在英文地区好使,不建议使用)
INSERT INTO myemployee_liu (id,name,job,birth) VALUES (2,'ersd','teacher','01-SEP-03');
--使用自定义日期格式插入记录
INSERT INTO myemployee_liu (id,name,job,birth) VALUES (2,'ersd','teacher',TO_DATE('2022-06-06','YYYY-MM-DD'));
2、UPDATE语句
UPDATE修改表中数据要使用WHERE添加过滤条件,这样才会只将满足条件的记录进行修改,否则是全表所有数据都修改
--修改数据
UPDATE myemployee_liu SET salary=6000 WHERE id=1;
3、DELETE、TRUECATE语句
DELETE语句,删除表中数据,删除数据通常也要添加WHERE语句来限制要删除数据的条件,否则就是清空表操作
DELETE FROM myemployee_liu WHERE NAME='ersd';
在DDL语句中的TRUNCATE语句,同样有删除表数据的作用
和DELETE语句的区别:
-
DELETE可以有条件删除,TRUECATE将表数据全部删除
-
DELETE是DML语句,可以回退,TRUNCATE是DDL语句,立即生效,无法回退
-
如果是删除全部表记录,且数据量较大,DELETE语句效率比TRUNCATE语句低
--删除全部记录
DELETE FROM myemployee_liu
--或者
TRUNCATE TABLE myemployee_liu
更多推荐
DB(二):对表结构和数据进行增、删、改
发布评论