NO.40 数据库原理和SQL(DDL、DML)

Posted by

–测试数据

DELETE FROM myemp WHERE salary<5000

create or replace trigger tri_testafter delete or insert or update on test declare v_tag varchar2;begin if inserting then v_tag := '插入'; elsif updating then v_tag := '修改'; elsif deleting then v_tag := '删除'; end if; insert into test_log values((SELECT USER FROM DUAL),v_tag,sysdate);end;

主流数据库产品:

–创建记录测试表CREATE TABLE test_log(l_user VARCHAR2, –用户l_type
VARCHAR2, –操作类型l_date VARCHAR2 –操作日期);–测试数据INSERT INTO
test VALUES(101,’zhao’,22,’M’);UPDATE test SET t_age = 30 WHERE t_id =
101;DELETE test WHERE t_id = 101;

deptno NUMBER(2)

–创建测试表CREATE TABLE test(t_id NUMBER, –编号t_name VARCHAR2,
–姓名t_age NUMBER, –年龄t_sex CHAR –性别);

SQL语句不区分大小写

create or replace trigger tri_nameis before delete or insert or update on emp for each rowbegin if inserting then if :new.ename='丁院院' then DBMS_OUTPUT.PUT_LINE; end if;elsif updating then if :new.ename='SMITH' or :old.ename='SMITH'then DBMS_OUTPUT.PUT_LINE; end if;elsif deleting then if :old.ename='SMITH' then DBMS_OUTPUT.PUT_LINE; end if; end if;end;

char1:一个具体日期的字符串

delete EMP where empno=7369;create or replace trigger tri_empafter delete on emp for each rowbegin if :old.deptno=20 then SYS.DBMS_OUTPUT.PUT_LINE('您不能删除20部门的员工'); insert into EMP values(:old.empno,:old.ename,:old.job,:old.mgr,:old.hiredate,:old.sal,:old.comm,:old.deptno); end if;end;

数据库(Database,简称DB)是按照数据结构来组织、存储和管理数据的仓库。

–2 创建触发器,它记录表的删除数据 ,将删除的数据存储到old_employee
表中–创建表CREATE TABLE employee(id VARCHAR2 NOT NULL, –编号name
VARCHAR2 NOT NULL, –姓名age NUMBER NOT NULL, –年龄sex CHAR NOT NULL
–性别);–插入数据INSERT INTO employee
VALUES(‘e101′,’zhao’,23,’M’);INSERT INTO employee
VALUES(‘e102′,’jian’,21,’F’);

SELECT * FROM myemp

–4.当员工姓名是丁院院时,执行触发器

在数据库中,所有字段的默认值都是NULL,可以通过DEFAULT关键字指定一个默认值。

create or replace trigger save_deletedata_oldemp before delete on employee for EACH ROWbegin insert into old_employee values(:old.id,:old.name,:old.age,:old.sex);end;

name VARCHAR2(20),

update emp set sal=1000 where ename='丁院院';

数据库管理系统(Database Management System,简称DBMS):管理数据库的软件。

–3.不允许删除20部门的人

birth DATE,

–1 创建触发器,当test表执行DML语句时,将相关信息记录到日志表–
当前用户: userSELECT USER FROM DUAL;

RENAME employee TO myemp

DESC employee

4)修改表名:

ALTER TABLE myemp ADD (hiredate DATE)

name VARCHAR2(20) NOT NULL,

DESC employee_xxx

deptno NUMBER(2)

INSERT INTO myemp VALUES (2,’rose’,’F’,SYSDATE,5000,’CLERK’,10)

DDL:数据定义语言

INSERT INTO myemp (id,name,birth) VALUES
(3,’bob’,TO_DATE(‘1992-08-05′,’YYYY-MM-DD’))

不指定字段则是全列插入,给定的值的类型与顺序要与表中字段一致。

birth DATE,

删除现有字段

ALTER TABLE myemp MODIFY(job VARCHAR2(40))


salary NUMBER(6,2) DEFAULT 3000,

如:

)

id NUMBER(4),

2)UPDATE语句:修改表中数据

salary NUMBER(6,2),

job VARCHAR2(30),

salary NUMBER(6,2) DEFAULT 3000,

3)删除表:

RENAME old_name TO new_name

1)INSERT语句

gender CHAR(1),

5)修改表结构:

修改现有字段

gender CHAR(1) DEFAULT ‘M’,

MySQL(Oracle)

id NUMBER(4),

job VARCHAR2(30),

SELECT * FROM myemp

将JOB字段的长度变为40:

相关文章

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注