DDL数据定义语言

对数据库对象的创建、删除、修改操作。


创建数据表

  1. create table productinfo
  2. (
  3. productId varchar2(20),
  4. productName varchar2(20),
  5. productPrice number(8,2)
  6. );

使用alter修改表

  1. -- 添加列
  2. alter table scott.productinfo add remark varchar(200);
  3. -- 修改列
  4. alter table scott.productinfo modify remark number(2,2);
  5. -- 删除列
  6. alter table scott.productinfo drop column remark;

使用drop语句删除表

  1. drop table productinfo;

约束

主键约束

  1. create table categoryinfo (
  2. categoryId varchar2(10),
  3. catagoryName varchar2(30),
  4. primary key (categoryId)
  5. );
  6. alter table scott.categoryinfo drop constraint constraint_name;
  7. alter table scott.categoryinfo add constraints pk_category primary key(categoryId);

外键约束

  1. create table productinfo1
  2. (
  3. productId varchar2(20),
  4. productName varchar2(20),
  5. productPrice number(8,2),
  6. quantity number(10),
  7. description varchar2(200),
  8. category varchar2(10),
  9. origin varchar2(20),
  10. primary key (productId),
  11. constraint fk_pro foreign key(category) references categoryinfo(categoryId) on delete cascade
  12. );
  13. add constraint constraint_name foreign key (column_name) references table_name (column_name) on delete cascade;

check约束

  1. create table custominfo(
  2. customId varchar2(10),
  3. name varchar2(10),
  4. age number(2),
  5. gender varchar2(11),
  6. tel varchar2(11),
  7. address varchar2(100),
  8. constraint che_age check(age>=18 and age<=50)
  9. );
  10. add constraint constraint_name check(condition);
  11. alter table custominfo add constraint che_gender check(gender='男' or gender='女');
  12. alter table custominfo drop constraint che_gender;

unique约束

  1. create table orderinfo
  2. (
  3. orderId varchar2(10),
  4. customId varchar2(10),
  5. productId varchar2(10),
  6. orderDate varchar2(10),
  7. orderQuantity number(10),
  8. sendDate varchar2(10),
  9. constraint unq_orderid unique (orderId)
  10. );
  11. add constraint constraint_name unique (column_name);
  12. alter table orderinfo add constraint unq_customid unique (customId);

not null约束

  1. CREATE TABLE managerinfo
  2. (
  3. managerid varchar2(10),
  4. loginname varchar2(10) NOT NULL ,
  5. password varchar2(10) NOT NULL ,
  6. name varchar2(10),
  7. tel varchar2(11)
  8. );
  9. alter table table_name modify column not null;
  10. alter table managerinfo modify name not null;

DML & DQL

对数据库中的数据进行的增删改查操作。

添加数据insert

  1. insert into table_name (column_name1,column_name2, ...) values (data1, data2, ...);
  2. INSERT INTO MANAGERINFO (managerid, loginname, password, name ,tel) VALUES ('1', 'xiaoming', '123456', 'liming', '12345678901');

通过其他数据表向表中添加数据

要确保两个表的列和数据类型一致,否则出现错误。

  1. insert into table_name (column_name1,column_name2, ...) select column_name1,column_name2, ... from table_name2;

示例
  1. create table logininfo (
  2. loginname varchar2(10),
  3. loginpassword varchar2(10)
  4. );
  5. insert into logininfo (loginname, loginpassword) select loginname,password from managerinfo;
  6. -- 不创表直接通过源数据表在添加数据同时创建表
  7. create table table_name as select column_name1, column_name2, ... from source_table;
  8. create table login as select loginname, password from managerinfo;

image.png

image.png

image.png
image.png

修改数据update

  1. update table_name set column_name1=data1, column_name2=data2, ... where condition;

image.png
image.png

删除数据delete

  1. delete from table_name where condition;

image.png

查询数据select

  1. select column_name1,column_name2, ... from table_name where condition;

其他数据操作语句

merge, truncate, lock table等。

truncate

删除数据表中数据,速度要比delete 速度快。

merge

和update功能类似,都是修改表中的数据,但是merge可以对数据同时进行增加和修改操作。

  1. merge [into] table_name1 -- 要修改或添加的表
  2. using table_name2 -- 参照更新的表
  3. on (condition) -- 两表的关系,或其他条件
  4. when matched then merge_update_clause -- 如果参照table_name2中的条件匹配,就执行更新操作。
  5. when not matched then merge_insert_clause; -- 如果不匹配就执行增加操作。
  6. merge_update_clause merge_insert_clause 是可以省略其中一个的。

DCL 数据控制语言

主要是对数据库的使用者赋予和撤销访问数据库额权限设置。