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...