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为10INSERT 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:删除内容和定义,会释放空间。(会放进回收站)