当前位置: 首页 > news >正文

网站建设一条龙/学电脑在哪里报名

网站建设一条龙,学电脑在哪里报名,网站备案内容,西安的网站制作公司oracle数据类型 文本,二进制类型: char 存放字符串,最大存放2000个字符,是定长。 varchar2 存放字符串,最大可以存放4000个字符,可变长度。 如果数据长度是固定的,应当使用char&#xff0c…

 

oracle数据类型

文本,二进制类型:

char  存放字符串,最大存放2000个字符,是定长。

varchar2 存放字符串,最大可以存放4000个字符,可变长度。

如果数据长度是固定的,应当使用char,如果存放的数据长度是变化的,则使用varchar2。

nvarchar2  Unicode数据类型,变长,最大长度4000。

clob 字符型大对象,变长,最大8tb

blob 二进制大对象,变长,可以存放图片和声音  【注意:一般不直接存放图片和声音,而是存放链接。】

 

数值型:

number  可以存放整数,也可以存放小数。

number  保存数据范围,   -1.0e-130<=number<1.0e126,默认可以表示整数和小数。

number(10,5)   有效数字10位,小数5位

number(5,0) 、number(5)  有效数字5位,小数0位  整数。

注意:如果有明确要求小数点保存到第几位,则明确指定,如果没有,直接使用number即可。

number是变长 使用1-22bytes来表示

 

日期类型:

date  用于表示时间   年月日时分秒,默认格式 DD-MM-YYYY,从公元前4712年1月1日到公元4712年12月31日的所有合法日期。

添加的时候使用to_date('20180408 222730','yyyyMMdd  hh24miss')

TimeStamp 更加精确,精确到小数秒,最多小数点后9位,默认6位。

使用麻烦,如果没有特别要求,不推荐。

insert into TEST(updatetime) values(to_timestamp(to_char(sysdate,'YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS'));

 

数据表的创建

类和表的对应关系。

学生信息表,教师信息表。

 

基本语法:

create table student(

       id number,

       name varchar2(64),

       sex char(2),

       birthday date,

       score number(4,2),

       resume clob

);

 

 

使用sql脚本创建表。

使用工具创建表。

 

数据表的修改

添加列:

alter table 表名 add(新的列名 列的类型);

alter table 表名 add(新的列名 列的类型,新的列名2 列的类型2);

 

 

删除列:

alter table 表名 drop column(列名);

alter table 表名 drop (列名,列名2);--删除多列不能添加column

 

修改字段的名称:

alter table 表名 rename column 旧列名 to 新列名;

 

修改字段的类型:

alter table 表名 modify(列名 列的新类型);

alter table 表名 modify(列名 列的新类型,列名2 列2的新类型);

 

修改表名

rename 旧表名to 新表名;

 

删除表

drop table 表名;

 

CRUD操作

增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)

 

INSERT

  1. 插入的数据应与字段数据类型相同。
  2. 数据的大小应该在规定范围之内。
  3. 在values中列出的数据位置必须与被加入的列的排列位置相对应。
  4. 字符和日期型数据应包含在单引号中。
  5. 插入空值,不指定’’或给null

insert into stu values(1,'ouyang','男');

insert into stu(id) values(1);

insert into stu values(1,null,’’);

 

比较运算符

> 大于

< 小于

>= 大于等于

<= 小于等于

=  等于

!= 不等于

<>不等于

SELECT

select * from表名 where 条件

select 列名 from 表名 where 条件

 

select 指定查询哪些列的数据。

column指定列名

 

使用scott用户下的三张表:dept,emp,salgrade进行查询演示。

  1. 基本查询语句 select [distinct] *|[column 1,column 2 ……] from表名 [where (条件)]

示例:

查询所有列。      select * from emp;

查询指定列。     select distinct job from emp;

不显示重复列。   select distinct job from emp;

  1. 查询中使用算术表达式 select sal*12 from emp;
  2. 查询中使用函数 select sal*12+nvl(comm,0)  from emp;

说明: NVL(E1, E2)的功能为:如果E1为NULL,则函数返回E2,否则返回E1本身。

  1. 拼接字符串select ename||'是一个'||job from emp;

说明:在查询时,如果希望将多列拼接起来作为一个字符串可以使用||

  1. where子句的用法

查询工资高于3000的员工

select * from emp where sal>3000;

 

查询1982年1月1日之后入职的员

select * from emp where hiredate>to_date('19820101','yyyymmdd');

 

显示工资在2000和2500之间的员工信息

select * from emp where sal>=2000 and sal<=2500;

 

  1. between  and  在两者之间

select * from emp where sal between 2000 and 2500;--闭区间

select * from emp where sal not between 2000 and 2500;

  1. in

select * from emp where ename in ('ALLEN','WARD','MARTIN');

select * from emp where ename not in ('ALLEN','WARD','MARTIN');

  1. 使用like模糊查询

%表示0到多个字符

_表示一个字符

select * from emp where ename like '%ITH';

select * from emp where ename like '_ITH';--没有数据

select * from emp where ename like '_MITH';

select * from emp where ename not like '%LEN';--不常用

  1. is null的用法

显示没有上级的员工

select * from emp where mgr is null;

  1. 使用逻辑运算符

select * from emp where mgr is null or comm is null;

select * from emp where mgr is null and comm is null;

  1. 增加排序功能order by

select [distinct] *|[column 1,column 2 ……] from表名 [where (条件) order by 列名 ]

 

select * from emp order by sal;--默认升序

select * from emp order by sal asc;--升序

select * from emp order by sal desc;--降序

select * from emp where job = 'CLERK' order by sal desc;--降序

select * from emp where job = 'CLERK' order by empno,sal desc;--按照员工号升序工资降序

select * from emp order by 8;--使用数字排序  按照表列的顺序

select empno,ename,deptno from emp order by 3;--使用数字排序  按照查询列的顺序

 

  1. 别名排序

select sal*12+nvl(comm,0)  yearSal  from emp order by yearsal;

 

注意:

oracle 关键字,列名,表名等都不区分大小写,但是表中的数据是区分大小写的。

 

扩展:

select * from user_tables;  查询用户下的所有表

select * from dba_users;--查询所有用户信息,使用管理员用户

 

UPDATE

update 表名 set 列名=表达式 {+}  where 条件

 

update语法可以使用新值更新原有表行中的各列。

set子句指示要修改哪些列和给与哪些值。

where子句指定更新哪些行。如没有where子句,则更新所有的行(特别小心)。

DELETE

delete from 表名where 条件

 

truncate table 表名;删除所有记录,不写日志,速度快,无法恢复。

COMMIT和ROLLBACK

commit 提交

rollback 回滚

 

DML,DDL,DCL

DML(data manipulation language):

它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言

DDL(data definition language):

DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用

DCL(Data Control Language):

是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL

 

统计函数

max,min,sum,avg,count

查询员工数量

select count(*) from emp;

查询有奖金的人

select count(comm) from emp;--空值不统计

查询最高工资。

select max(sal) from emp;

查询最低工资。

select min(sal) from emp;

查询最高年薪。

select max((sal+nvl(comm,0))*12) from emp;

查询平均工资。

select avg(sal) from emp;

select avg(comm) from emp;--奖金不一定有,没有的不参与

查询总工资。

select sum(sal) from emp;

查询真正的平均工资

select sum(sal)/count(*) from emp;

 

group by  和 having子句

group by 列名 用于分组

having 表达式  针对于一组数据,譬如求

  

两者一般结合使用,单独使用也可以。

按照部门分组查询部门平均工资和最高工资

select avg(sal),max(sal),deptno from emp group by deptno;

select avg(sal),max(sal),deptno from emp;--错误 不是单组分组函数

 

查询部门不同岗位的平均工资和最高工资

select avg(sal),max(sal),deptno,job from emp group by deptno,job;

 

查询部门不同岗位的平均工资和最高工资并按照部门和岗位排序。

select avg(sal),max(sal),deptno from emp group by deptno,job order by deptno,job;

 

查询部门平均工资低于2000的部门的平均工资和最高工资。【典型用法】

select avg(sal) ,max(sal),deptno from emp group by deptno having avg(sal)<2000;

 

select avg(sal) ,max(sal),deptno from emp  where avg(sal)<2000 group by deptno; --错误,此处不允许使用分组函数

 

单独使用having

select avg(sal) ,max(sal),deptno from emp group by deptno having 1>2;--扩展 特殊形式

 

为什么不能使用having替代where

select * from emp having avg(sal)>20;--不是group表达式

 

当同时使用group by   having   order by  的顺序问题

推荐使用顺序 group by   having  order by

查询部门工资低于2000的部门不同岗位的平均工资和最高工资并按照部门和岗位排序。

select avg(sal),max(sal),deptno from emp group by deptno,job having avg(sal)<2000 order by deptno,job;--推荐写法

 

select avg(sal),max(sal),deptno from emp having avg(sal)<2000  group by deptno,job order by deptno,job;--不推荐写法

 

select avg(sal),max(sal),deptno from emp order by deptno,job having avg(sal)<2000  group by deptno,job ;--错误写法

 

其他常用语句

select * from all_tables where owner = 'SCOTT';--查询scott用户下的所有表

select * from user_tables;--查询当前用户的所有表

http://www.jmfq.cn/news/4944799.html

相关文章:

  • 建筑工程网登/广州seo优化公司排名
  • 我和椅子做游戏小精灵网站/能让网络非常流畅的软件
  • javaweb做的网站有哪些/linux网站入口
  • wordpress 响应式模板下载/网站页面优化方法
  • seo网站快速排名外包/策划营销推广方案
  • 安阳哪里做360网站/亚洲精华国产精华液的护肤功效
  • 做网络推广常用网站/百度关键词搜索量排行
  • 盱眙网站建设公司/百度搜索引擎的特点
  • 东莞物流网站建设/网络推广是什么职业
  • 企业品牌网站建设我们的优势/游戏代理免费加盟
  • 公司网站建设模板/引流推广
  • 淘宝网站那个做的/接外包项目的网站
  • 学做莱网站/百度怎么打广告在首页
  • 站酷网官网进入/seo伪原创工具
  • 猪八戒网做网站如何/广告发布
  • 可视化编辑建站平台/重庆seo网络推广平台
  • html5网站源代码/网站优化公司上海
  • 征婚网站做原油/谷歌推广平台
  • dede网站模板安装/竞价恶意点击犯法吗
  • 网站用户体验优化方案/最有效的免费推广方法
  • 做购物类网站有哪些/医疗器械龙头股
  • 网页设计与网站建设案例教程/宁波seo基础入门
  • 设计师招聘网站有哪些/怎样制作一个自己的网站
  • 推广网站怎么建/seo优化主要工作内容
  • 珠海网站推广/郑州网络营销公司哪个好
  • 网站建设方案案例/网络营销策划方案800字
  • 网站建设长春/百度学术官网论文查重免费
  • 南昌企业做网站设计/hao123网址导航
  • 国内建网站流程/各大搜索引擎提交入口
  • 做机械的外贸网站/长沙百度关键词排名