antd 获取table选中行数据_数据库基础学习——SQL语言知识总结(5)

c6047e39399a19fb35ad67383193154c.png

一. 操纵数据(DML)

数据操纵语言:当添加、更新或者删除数据库中的数据时需要使用 DML 语句。DML 依

据的一个集合构成了一个被称为事务的逻辑单元。

当完成下面操作时,DML 语句被执行:

– 添加新行到表中

– 修改表中的行

– 删除表中的行

1 添加一个新行到表中

1.1INSERT 语句语法

c5ccfb237ceb7439f574c78af883b238.png

用该语法一次只能插入一行

1.2指定列添加

insert 

1.3完全列添加

insert into departments values(280,'Teaching',180,2000);

1.4插入带空值的行

隐式方法: 省略字段列表中的列。

insert into departments(department_id,department_name) values(300,'A');

显式方法: 在 VALUES 子句中指定 NULL 关键字。

insert into departments(department_id,department_name,manager_id,location_id) values(310,'A',null,null);

1.5插入日期值

示例

添加一个新的雇员:

insert into employees(employee_id,first_name,last_name,email,phone_number,hire_date,job_id,salary,commission_pct,manager_id,department_id) values(300,'Old','Lu','sdfsdfd','23423423',sysdate,'AD_PRES',23423,null,204,290);

使用默认日期格式:

insert into employees(employee_id,first_name,last_name, email,phone_number,hire_date,job_id,salary,commission_pct,manager_id,department_id)values(301,'Old','Lu','sdfsdddfd','23423423','01/3 月/2019','AD_PRES',23423,null,204,290);

指定日期格式:

insert into employees(employee_id,first_name,last_name,email,phone_number,hire_date,job_id,salary,commission_pct,manager_id,department_id)values(302,'Old','Lu','sdfsddfd','23423423',to_date('2019-03-01','yyyy-MM-dd'),'AD_PRES',23423,null,204,290);

1.6从另一个表中复制行

• 用一个查询写 INSERT 语句

• 不用 VALUES 子句

• 在查询中列的数目要匹配 INSERT 子句中列的数目

创建表

create table EMP(id NUMBER not null,name VARCHAR2(50),salary NUMBER(8,2),commission NUMBER(2,2));

示例

将 employees 表中的 job_id 中含有 REP 的工作岗位的数据插入到 emp 表中。

insert into emp(id,name,salary,commission) select employee_id,last_name,salary,commission_pctfrom employees where job_id like '%REP%';ORinsert into emp selectemployee_id,last_name,salary,commission_pctfrom employees where job_id like '%REP%';

1.7使用默认值

在 INSERT 中的 DEFAULT

insert into emp (id,name) values(302,'Kevin');

insert into emp values(301,'OldLu',default,null);

2 改变表中的数据

2.1UPDATE 语句的语法

e7f470ce375ce7c8151ee3a78fd1ef55.png

用 UPDATE 语句修改已存在的行

示例

更新 emp 表中 ID 为 170 的数据,将名字修改为 OldLu,薪水修改 20000。

update emp e set e.name = 'OldLu',e.salary= 20000 where e.id = 170;

2.2用查询更新列

示例

更新 emp 表中的雇员 165 的薪水,使其和雇员 156 相同。

update emp e set e.salary = (select salary  from emp where id = 156) where e.id = 165;

3 从表中删除行

3.1DELETE 语句

37711de92c82e8f8e2784fa05223caf9.png

使用 DELETE 语句从表中删除已存在的行。

示例

删除 emp 表中 id 为 302 的雇员。

delete from emp where id = 302;

3.2删除基于另一个表的行

示例

删除 emp 表中薪水与 IT_PROG 岗位相同的薪水。

delete from emp where salary in(select distinct salary from employees where job_id ='IT_PROG');

3.3删除表中的全部数据

如果在删除语句中没有给定任何条件,那么数据将会删除该表中的所有数据。

示例

删除表中的所有数据。

delete emp;

3.4删除行: 完整性约束错误

解决方法:先删除外键,再删除主键。

八、 事务处理语言(TCL)

1 什么是事务

指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。

2 什么是事务特性

2.1原子性(ATOMICITY)

事务中的操作要么都不做,要么就全做。

2.2一致性(CONSISTENCY)

一个事务应该保护所有定义在数据上的不变的属性(例如完整性约束)。在完成了一个成

功的事务时,数据应处于一致的状态。

2.3隔离性(ISOLATION)

一个事务的执行不能被其他事务干扰。

2.4持久性(DURABILITY)

一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。

3 使用事务

commit.....事物提交

rollback....事物回滚

savepoint..设置回滚点

3.1事务类型

3.1.1显式事务

需要我们手动的提交或回滚。

DML 语言中的所有操作都是显示事务操作。

3.1.2隐式事务

数据库自动提交不需要我们做任何处理,同时也不具备回滚性。

DDL、DCL 语言都是隐式事务操作

3.2事务提交

Commit

当我们执行了一个 DML 语言后,此时的数据并不会持久化到数据文件中。需要使用

commit 来确认提交。

3.3事务回滚

Rollback

当我们执行了一个 DML 语言后,也可以使用 rollback 来撤销当前对表的操作。

3.4设置回滚点

Savepoint

Rollback to

九、 数据定义语言(DDL)

create.....创建数据库对象

drop.......删除数据库对象

arter......修改数据库对象

rename.....修改数据库对象名称

1 创建表(CREATE TABLE)

示例

create table dept(deptno NUMBER(2),dname VARCHAR2(14),loc VARCHAR2(13));

1.2Oracle 数据库中的表

• 用户表:

– 由用户创建和维护的表的集合。

– 包含用户信息。

• 数据字典:

– 由 Oracle 服务器创建和维护的表的集合。

– 包含数据库信息。

1.2.1常见的数据字典表

c1a4ca76a00076a9b1c9b6a0ed9ab5d6.png

1.3用查询创建表

示例

create table dept80 as select employee_id,last_name name,salary,hire_date from employees e where e.department_id = 80;

2 修改表(ALTER TABLE)

ALTER TABLE 语句可以修改表的信息。

• 添加一个新列

• 修改一个已存在的列

• 删除一个列

2.1添加一个新的列

示例

alter table dept add(salary number(8,2));

2.2修改一个列

示例

修改数据类型

alter table dept modify(dname varchar2(40));

示例

修改默认值

alter table dept modify(salary number(8,2) default 1000);
alter table dept modify(salary number(8,2) default null);

示例

修改列名

alter table dept rename column dname to name;

2.3删除一个列

示例

alter table dept drop column salary

3 修改表名称(RENAME)

示例

rename dept80 to dept90;

4 截断表(TRUNCATE TABLE)

特点:删除表中的所有的数据,但是保留表结构。在截断表时不能给定条件,截断表是隐式事务,不支持回滚。

示例

truncate table dept90;

5 删除表(DROP TABLE)

示例

drop table dept90;

十、 定义约束

1 数据库中的约束类型

– 非空约束(NOT NULL)

– 唯一性约束(UNIQUE)

– 主键约束(PRIMARY KEY)

– 外键约束(FOREIGN KEY)

– 用户自定义约束(CHECK)

b025be65b783a18b80fd8815e366b41f.png

1.1定义约束原则

创建一个约束:在创建表的同时,或者在创建表之后都可以定义约束。可以给约束起名字,但是约束名不能相同,必须是唯一的。如果没有为约束起名字,Oracle 服务器将用默认格式 SYS_Cn 产生一个名字,这里 n 是一个唯一的整数,所以约束名是唯一的。

2 定义 NOT NULL 约束

43846a2ae7341bf7b2b2c0b648d555bd.png

2.1创建表时定义 NOT NULL 约束

示例

create table dept80(id number,name varchar2(20) not null, salary number constraint dept80_notn not null);

2.2修改表定义 NOT NULL 约束

示例

alter table dept80 modify location_id not null;

3 定义 UNIQUE 约束

3.1创建表时定义 UNIQUE 约束

示例

create table dept90(id number constraint dept90_uk unique,name varchar2(20));

3.2修改表定义 UNIQUE 约束

示例

alter table dept90 modify(name unique);

4 定义 PRIMARY KEY 约束

4.1创建表时定义 PRIMARY KEY 约束

示例

create table dept70(id number constraint dept70_pk primary key);

4.2修改表定义 PRIMARY KEY 约束

示例

alter table dept60 modify(id constraint dept60_pk primary key);

4.3创建联合主键

示例

create table dept50(id number,name varchar2(20),constraint dept50_pk primary key(id,name));

5 定义 FOREIGN KEY 约束

5.1创建表时定义 FOREIGN KEY

示例

create table dept40(id number,d_id number,constraint dept40_fk foreign key(d_id) references dept60(id));

5.2修改表定义 FOREIGN KEY

示例

alter table dept50 add constraint dept50_fk foreign key(d_id) references dept60(id);

6 定义 CHECK 约束

6.1创建表时定义 CHECK 约束

示例

create table dept30(id number,salary number(8,2) constraint dept30_ck check (salary > 1000));

6.2 修改表定义 CHECK 约束

示例

alter table dept50 add constraint dept50_ck check(salary > 1000);

7 禁用与启用约束

7.1查看约束

示例

select constraint_name,constraint_type,search_condition from user_constraints where table_name= 'DEPT40';

7.2禁用约束

示例

alter table dept40 disable constraint

dept40_ck;

级联禁用(禁用有外键的约束加cascade)

alter table dept60 disable constraint dept60_pk cascade;

7.3启用约束

示例

alter table dept40 enable constraint dept40_ck;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值