一、DQL操作
-
按照emp表中的入职时间降序查询
SELECT * FROM emp e ORDER BY e.hiredate DESC;
-
获取emp表中的所有职位信息,不要重复显示
SELECT DISTINCT job FROM emp;
-
显示每个员工的sal增加500后的信息
SELECT ename,sal 原工资,sal+500 现工资 FROM emp;
-
JavaScript中找出数组重复的元素
[10,9,3,7,2,8,4,5,7,9],找出9和7
<script>
var arr=[10,9,3,7,2,8,4,5,7,9];
arr.sort();
for(i=1;i<=arr.length;i++)
if(arr[i]==arr[i-1])
console.log(arr[i]);
</script>
二、DDL(data definition language):数据定义语言
-
关键词
create(创建),alter(修改),drop(销毁)
-
操作的对象
-
表空间
-- 授予管理员权限
grant dba to user_test;
-- 授予创建表空间的权限
grant create tablespace to user_test;
-- 创建表空间
create tablespace sp1 datafile 'sp1.dbf' size 1m;
-- 创建临时表空间
create temporary tablespace tsp1 tempfile 'tsp1.dbf' size 2m;
-- 创建用户时指定表空间和临时表空间
create user user_test identified by user_test default tablespace sp1 temporary tablespace tsp1;
-- 授予删除表空间权限
grant drop tablespace to user_test;
-- 删除表空间
drop tablespace sp1 including contents and datafiles;
-- 删除临时表空间
drop tablespace tsp1 including contents and datafiles;
-- 授予扩大表空间的权限
grant alter database to user_test;
-- 扩大表空间
alter database datafile 'sp1.dbf' resize 2m;
-- 授予在表空间增加数据文件的权限
grant alter tablespace to user_test;
-- 增加数据文件
alter tablespacesp1 add datafile 'sp1_2.dbf' size 1m; -
表
-
数据类型
number:数字类型
integer:整数
char:定长字符串
varchar:变长字符串
timestamp:时间戳
blob:二进制数据
clob:放大量的字符数据
bfile:二进制文件 -
对表的操作
-- 创建表
create table t1(id number);
-- 增加一列
alter table t1 add name char(4);
-- 修改列的宽度
alter table t1 modify name char(5);
-- 删除一列
alter table t1 drop column age;
-- 增加系统默认名字的主键约束
alter table t1 add primary key(id);
-- 增加自己命名的主键约束
alter table t1 add constraint t1_pk primary key(id);
-- 删除主键
alter table t1 drop primary key;
-- 删除指定约束的主键
alter table t1 drop constraint t1_pk;
-- 增加唯一约束
alter table t1 add constraint t1_uk unique(name);
-- 增加默认约束
alter table t1 modify age default 18;
-- 增加检查约束
alter table t1 add constraint t1_sex check(sex = 0 or sex = 1);
-- 增加外键约束
(什么都不写相当于no action,当子表有关联时删除父表记录会报错)
alter table t1 add constraint t1_fk foreign key(clazz) references t_clazz(id);
(设置为set null,删除父表记录时,把子表相应外键置为空)
alter table t1 add constraint t1_fk foreign key(clazz) references t_clazz(id) on delete set null;
(设置为cascade级联删除,删除父表时,子表相应的记录也会被删除)
alter table t1 add constraint t1_fk foreign key(clazz) references t_clazz(id) on delete cascade;
-- 删除外键约束
alter table t1 drop constraint
-- 删除表
drop table t1;
truncate table t1;
-
-
三、DML(data manipulation lanuage)数据操纵语言
-
关键词
insert(插入),delete(删除),update(修改)
-
对表中的数据进行操作
-- 插入数据
-- 不指定添加的字段
insert into t_clazz values(1,'name1','');
-- 指定添加的字段
insert into t1(id,name,age,sex,clazz) values(3,'name1',10,0,1);
-- 修改
-- 修改所有记录
update t_clazz set name='新名称';
-- 修改指定记录
update t_clazz set name='新名称1' where id=1;
-- 删除
delete from t_clazz where id=1;
四、DQL(data query language)数据查询语言
-
关键词
select
-
查询表中的信息
-- 查询当前用户下所有表的信息
select * from user_tables t;
-- 查询当前表的所有字段信息
select * from user_tab_columns where table_name='T_CLAZZ';
-- 给表起别名
as 或者是空格
select sal,empno,ename,sal+100 sal2 from emp;
-- 判断字段是否为空
select sal from emp where sal is null;
-- where过滤
select empno,ename,sal from emp where sal>=3000;
-- distinct去重
-- 查询部门里有员工的部门号
select distinct deptno from emp;
-- distinct对后面的字段都进行过滤
select distinct deptno,sal from emp;
-- 排序,升序asc,降序desc
-- 默认为升序
select * from emp order by sal;
-- 部门升序,部门中的员工工资降序
select * from emp order by deptno asc,sal desc;
五、truncate,drop,delete三个的区别
-
truncate和drop属于DDL,针对的是表,delete属于DML,针对的是表中的数据
-
delete删除后不会释放空间,可以恢复数据,truncate和drop都会释放空间,不能恢复,truncate只删除表里的内容,drop删除的是全部,表上的所有对象都会删除掉
-