DDL数据定义语言
对数据库对象的创建、删除、修改操作。
创建数据表
create table productinfo(productId varchar2(20),productName varchar2(20),productPrice number(8,2));
使用alter修改表
-- 添加列alter table scott.productinfo add remark varchar(200);-- 修改列alter table scott.productinfo modify remark number(2,2);-- 删除列alter table scott.productinfo drop column remark;
使用drop语句删除表
drop table productinfo;
约束
主键约束
create table categoryinfo (categoryId varchar2(10),catagoryName varchar2(30),primary key (categoryId));alter table scott.categoryinfo drop constraint constraint_name;alter table scott.categoryinfo add constraints pk_category primary key(categoryId);
外键约束
create table productinfo1(productId varchar2(20),productName varchar2(20),productPrice number(8,2),quantity number(10),description varchar2(200),category varchar2(10),origin varchar2(20),primary key (productId),constraint fk_pro foreign key(category) references categoryinfo(categoryId) on delete cascade);add constraint constraint_name foreign key (column_name) references table_name (column_name) on delete cascade;
check约束
create table custominfo(customId varchar2(10),name varchar2(10),age number(2),gender varchar2(11),tel varchar2(11),address varchar2(100),constraint che_age check(age>=18 and age<=50));add constraint constraint_name check(condition);alter table custominfo add constraint che_gender check(gender='男' or gender='女');alter table custominfo drop constraint che_gender;
unique约束
create table orderinfo(orderId varchar2(10),customId varchar2(10),productId varchar2(10),orderDate varchar2(10),orderQuantity number(10),sendDate varchar2(10),constraint unq_orderid unique (orderId));add constraint constraint_name unique (column_name);alter table orderinfo add constraint unq_customid unique (customId);
not null约束
CREATE TABLE managerinfo(managerid varchar2(10),loginname varchar2(10) NOT NULL ,password varchar2(10) NOT NULL ,name varchar2(10),tel varchar2(11));alter table table_name modify column not null;alter table managerinfo modify name not null;
DML & DQL
对数据库中的数据进行的增删改查操作。
添加数据insert
insert into table_name (column_name1,column_name2, ...) values (data1, data2, ...);INSERT INTO MANAGERINFO (managerid, loginname, password, name ,tel) VALUES ('1', 'xiaoming', '123456', 'liming', '12345678901');
通过其他数据表向表中添加数据
要确保两个表的列和数据类型一致,否则出现错误。
insert into table_name (column_name1,column_name2, ...) select column_name1,column_name2, ... from table_name2;
示例
create table logininfo (loginname varchar2(10),loginpassword varchar2(10));insert into logininfo (loginname, loginpassword) select loginname,password from managerinfo;-- 不创表直接通过源数据表在添加数据同时创建表create table table_name as select column_name1, column_name2, ... from source_table;create table login as select loginname, password from managerinfo;




修改数据update
update table_name set column_name1=data1, column_name2=data2, ... where condition;


删除数据delete
delete from table_name where condition;

查询数据select
select column_name1,column_name2, ... from table_name where condition;
其他数据操作语句
merge, truncate, lock table等。
truncate
删除数据表中数据,速度要比delete 速度快。
merge
和update功能类似,都是修改表中的数据,但是merge可以对数据同时进行增加和修改操作。
merge [into] table_name1 -- 要修改或添加的表using table_name2 -- 参照更新的表on (condition) -- 两表的关系,或其他条件when matched then merge_update_clause -- 如果参照table_name2中的条件匹配,就执行更新操作。when not matched then merge_insert_clause; -- 如果不匹配就执行增加操作。merge_update_clause 或 merge_insert_clause 是可以省略其中一个的。
DCL 数据控制语言
主要是对数据库的使用者赋予和撤销访问数据库额权限设置。
