Oracle DDL语句(学习Oracle第一天)

            Oracle     day1


--SQL语句的类型
--DDL:数据定义语言  create/drop/alter/...
--DML:数据操纵语言  insert/update/delete...
--DQL:数据查询语言  select
--DCL:数据控制语言(DBA)

--创建一个学生表
--SID(学号 int),SNAME(姓名 nvarchar2),GENDER(性别 nchar),BIRTHDAY(出生日期 date)

create table students(
   sid integer not null primary key,
   sname nvarchar2(20),
   gender nchar(1),
   birthday date
);

commit;

desc students;

insert into students values(1,'张鹏','男','1998-10-25');

select * from students;

 

 

                     Oracle     day2



--RENAME给表重新命名
语法:rename 表名 to 新表名;

--给表或者表的字段添加备注
comment on table 表名 is 'xxxxxx';
comment on column 表名.字段名 is 'xxxxx';

--查看用户所有表的备注信息
SELECT * FROM user_tab_comments;
--查看指定表的所有字段备注信息
SELECT * FROM user_col_comments
WHERE table_name = '表名';

--从已有数据创建表  复制了表结构和数据,主键和注释不会复制
create table stud3 as select * from stud2;  

--删除表  DROP 直接删除,不去回收站
DROP TABLE 表名;

--给order_status表增加一列
ALTER TABLE order_status
ADD modified_by INTEGER;

--给order_status表增加一列,指定默认值
ALTER TABLE order_status
ADD initially_created DATE DEFAULT SYSDATE NOT NULL;

--使用DESCRIBE命令验证添加结果
DESC order_status;

--给students表添加address字段并且设置默认值为'西安市长安区'
ALTER TABLE students ADD address nvarchar2(50) default '西安市长安区';
DESC students;


--给表salary_grades添加虚拟列
ALTER TABLE salary_grades
ADD(average_salary AS((low_salary+high_salary)/2));


--给emp表添加年薪列
ALTER TABLE EMP 
ADD(YEAR_SAL AS(SAL*12));

--删除年薪列
alter table emp drop column year_sal;

--修改students表字段的名字
alter table students rename column sname to name;

--给指定的字段添加数据
insert into students(sid,name) values(3,'王五');
insert into students values(4,null,null,'1887-12-11',null);


--字段的值为字符串且包含有特殊字符比如:' 或者 "
--O'Malley 
insert into students values(5,'O''Malley','女','1997-11-11',default);  
--O"Jary
insert into students values(6,'O"Jary','女','1997-01-11',default);  

--将行从一个表复制到另一个表
例如:将customers表中的1号用户查询出来,
然后插入到customers表中,并为其指定customer_id为10

INSERT INTO customers(customer_id,first_name,last_name)
SELECT 10,first_name,last_name
FROM customers WHERE customer_id=1

--将students表中的性别为男的数据插入到students2中去
insert into students2(sid,sname,gender,birthday)
select sid,name,gender,birthday
FROM students WHERE gender = '男';

--使用Update修改表
例如:将products表中商品价格大于等于20的提高20%,并将
商品名全部转化为小写

UPDATE products SET price = price * 1.20,
name = LOWER(name) WHERE price >= 20;

--删除test表中所有记录
delete from test;
--删除test表中id=1的记录
delete from test where id =1;

--回滚 rollback --> 回到commit的状态


TRUNCATE TABLE : 删除内容不删除定义,会释放空间(效率高,速度快)。
//删除完所有的内容后自动commit;不能回滚成功。

DELETE TABLE:删除内容不删除定义,不释放空间(效率低,速度慢,因为一行一行的删除)。
//能回滚(rollback)成功(在物理磁盘还存在)

DROP TABLE:删除内容和定义,会释放空间。(会放进回收站)


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值