Oracle笔记

发布 2021-05-11 22:59:28 阅读 3647

oracle day05

目标:熟悉如何在where子句中加条件。

上节重点回顾:

表的5种约束条件(非空约束、唯一约束、主键约束、外键约束、检测性约束)

复习练习:1.建立一张班级表(字段有班级编码(非空且唯一 primary key),班级名称(非空 not null/ check(cname is not null)))

2.建立一张学生表(字段有学生编码(非空且唯一 primary key),学生名字(非空not null/ check(sname is not null)),学生地址(地址不能超过5个字符 check(length(saddress)) 5),学生所在班级编号(参考班级表 forging key))

j**a中char的变量能否存放一个中文汉字。

授课内容。一、 where条件的语法。

二、 比较运算符。

三、 逻辑运算符。

四、 order by子句。

作业:删除员工表中重复数据(只保留重复数据中的一条)

select * from employees for update;(不推荐使用)

上课内容笔记:

-复习练习。

-要求:-1.建立一张班级表(字段有班级编码(非空且唯一),班级名称(非空)):

-2.建立一张学生表(字段有学生编码(非空且唯一),学生名字(非空),学生地址(地址不能超过5个字符),学生所在班级编号(参考班级表))

-drop table t1_class;

create table t1_class(

cno varchar(10) primary key,cname varchar(20) not null

-drop table t1_student;

create table t1_student(

sno varchar2(10) primary key,sname varchar2(20) not null,saddress varchar(30) check(length(saddress) <5),cno varchar2(10) references t1_class(cno)

-测试length返回的是字符串中字符的个数。

-length() 返回字符的长度一个中文存储长度为3

drop table test;

create table test(

t varchar(20)check(length(t)<=5)

insert into test(t)values('我是中国人我');

-1.从雇员表中[选出部门编号为30]的员工信息。

select * from employees

where department_id = 30;

去重复数据。

select distinct* from employees where last_name = xiaowang';

insert into employees(last_name,email,hire_date,job_id)

values('xiaowang','to_date('2008-01-01','yyyy-mm-dd'),it');

select * from employees where last_name = xiaowang';

-作业:删除表中重复数据(只保留重复数据中的一条)

-任务二:检索出工资大于3000小于5000的雇员信息。

select * from employees

where salary > 3000

and salary < 5000;

-检索出工资大于等于3000小于等于5000的雇员信息。

select * from employees

where salary >=3000

and salary <=5000;

-between and

select * from employees

where salary between 3000 and 5000;

-in-在部门编码为50,60,90,100的部门工作的员工。

select * from employees

where department_id in (50,60,90,100);

-任务四:显示姓名由字母s开头的雇员 s

-like %表示0个或者是多个字符 _表示一个字符。

select * from employees where first_name like 's%';

-显示姓名包含a的雇员。

select * from employees where first_name like '%a%';

--显示姓名中第二个字母是a的雇员。

select * from employees where first_name like '_a%';

--显示姓名中第三个字母是a,最后一个字符是a的雇员;

select * from employees where first_name like '_a%a';

-查询员工id为空的数据 null不能用=

select * from employees where employee_id is null;

-查询员工id不为空的数据。

select * from employees where employee_id is not null;

-逻辑运算符 and or not (not and or )

select count(*)from employees --87

where (first_name like '%a%'

and salary > 3000)

or (salary < 5000);

select count(*)from employees --87

where first_name like '%a%'

and salary > 3000

or salary < 5000;

select count(*)from employees --75

where first_name like '%a%'

or salary > 3000

and salary < 5000;

select count(*)from employees --75

where (first_name like '%a%')

or (salary > 3000

and salary < 5000);

--数值(降序从大到小升序从小到大空值降序在最前边升序最后面)

--任务十一:显示雇员信息,要求工资的排列方式为从高到低(desc)

select *

from employees

where salary is not null

order by salary desc;

-任务十二:显示雇员信息,要求工资的排列方式为从低到高(asc)

-升序排列 asc可以省略。

select *

from employees

order by salary asc;

select *

from employees

order by salary;

-日期。-查询员工信息,入职从新到旧排列(desc)

select *

from employees

order by hire_date desc;

-查询员工信息,入职从旧到新排列(asc)

select *

from employees

order by hire_date;

--字符串 (升序 a ——z 降序 z---a)

select *

from employees

order by first_name;

oracle笔记

1 查看表的结构 desc tabledescription 2 set timing on 打开操作表的时间记录。3 消除重复行 distinct 4 大小写不区分的是列名,而不是里面的数据。1 可以对某一列直接进行加减乘除。两列相加。2 如果有一列为null,所得结果也为空。使用nvl函数处理n...

Oracle笔记

第1页1.oracle 的使用 1.1.sqlplus 的命令 初始化表的位置 set nls lang american 设置编码才可以使用下面脚本 cd oracle home rdbms cd demo 我们目前使用的是oralce 9i 9201 版本 select from v versi...

oracle笔记

clear 清屏。col title for a20 设置title的字符最多有20个。oracle介绍。rdbsrdb 基本的存储结构是,二维表。表头。行。列。字段。sql的分类 dsl 关键字 select dml 操作 insert delete update ddl 定义 create dr...