--表示系统时间
select sysdate from dual
 
--表是关系型数据库的基本结构
--表是二维的,由行和列组成
--行称为记录,列称为字段
--创建第一张表
create table hw(
name varchar2(20),          --Java中的String数据类型在这里用varchar2,number(6,2)6位中有2位小数
age number(2),
address varchar2(50)
);
--查看创建的表
desc hw;
--删除表(实际上是删除表结构)
drop table hw;
--修改表结构alter table name modify();
alter table hw modify(name varchar2(15));
alter table hw drop(name);
alter table hw add(Xingming varchar2(20));
--修改表名
rename hw to hw1;
--插入一条数据
insert into hw (name,age,address) values('李',22,'长清区紫薇阁')
insert into hw (name) values('陈')
--查看表数据
select * from hw;
--删除表中的数据delete [from] hw where xxx=xxx;  delete 用来删除表中的数据,drop删除表头
delete hw where name='李';
--修改数据update name set col='' where col=''
update hw set age=21 where age is null;
update hw set name='再见' where age is not null;
update hw set name='' where age=null;
char(1)--表示一个字符,常常表示性别
--DDL:数据定义语言,操作表头。create table name();drop table name;alter table name motify();
--DML:数据操作语言,操作数据 insert into name() values();delete[from]hw where xxx=xxx;update name set xxx=   where yyy=null;
 
--drop table emp :删除表emp;
--char&varchar2:char :定长字符,声明多少占用多少,不够的补空格。varchar2变长字符,实际用多少占用多少。
--char最大2000字节,varchar2最大4000个字节,long最大2G,clob最大4G,一张表只能有一个clob。
--concat:将两个字段合成一个字段
--||连接符
 
实例:
--创建一个表 emp
create table emp(
empno number(4,0),
ename varchar2(10),
job varchar2(9),
rngr number(4,0),
hiredate date,
sal number(7,2),
comm number(7,2),
deptno number(2,0)
);
--向表中插入数据
insert into emp values(7369,'smith','clerk',7902,to_date('1980/12/17','yyyy-mm-dd'),800.00,null,20);
insert into emp values(7499,'allen','salesman',7698,to_date('1981/12/20','yyyy-mm-dd'),1600.00,300.00,30);
insert into emp values(7521,'ward','salesman',7698,to_date('1982/2/22','yyyy-mm-dd'),1250.00,500.00,30);
insert into emp values(7566,'jones','manager',7839,to_date('1981/4/2','yyyy-mm-dd'),2975.00,null,20);
insert into emp values(7654,'martin','manager',7698,to_date('1981/9/28','yyyy-mm-dd'),1250.00,1400.00,30);
insert into emp values(7698,'blake','manager',7839,to_date('1981/5/1','yyyy-mm-dd'),2850.00,null,30);
insert into emp values(7782,'clark','manager',7839,to_date('1981/6/9','yyyy-mm-dd'),2450.00,null,10);
insert into emp values(7788,'scott','analyst',7566,to_date('1987/4/19','yyyy-mm-dd'),3000.00,null,20);
insert into emp values(7839,'king','president',null,to_date('1981/11/17','yyyy-mm-dd'),5000.00,null,10);
insert into emp values(7844,'turner','salesman',7698,to_date('1981/9/8','yyyy-mm-dd'),1500.00,0.00,30);
insert into emp values(7876,'adamas','clerk',7788,to_date('1987/5/23','yyyy-mm-dd'),1100.00,null,20);
insert into emp values(7900,'james','clerk',7698,to_date('1981/12/3','yyyy-mm-dd'),950.00,null,30);
insert into emp values(7902,'ford','analyst',7566,to_date('1981/12/3','yyyy-mm-dd'),1300.00,null,20);
insert into emp values(7934,'miller','clerk',7782,to_date('1982/1/23','yyyy-mm-dd'),1300.00,null,10);
commit              --提交
select *from emp;         --查看表中的内容
--||连接符
select concat(concat(ename,':'),sal)from emp;
select ename||':'||sal from emp;      --查看表中enama和sal,并且连接起来
--length 返回字符串的长度
select ename,length(ename)from emp;   --查看表中ename表头下的长度
--lower,upper,initcap:转换大小写或者首字母大写。
select lower(ename)from emp;        --将enanme属性下的转换为小写并列出
select upper(ename)from emp;        --转换为大写
select initcap(ename)from emp;        --转换为首字符大写
--截去子串/左截去/右截去 : trim/ltrim/rtrim
select trim(7 from empno)from emp;      --截去7个
select ltrim('qwer','q')from dual;        --从左边截去q
select rtrim('qwer','r')from dual;        --从右边截去r
--补位函数 lpad/rpad
select sal from emp;
select lpad(sal,5,'+') from emp;      --sal补为五位,sal本身不够的补+
--截取字符 substr('',m,n)从第m个开始,截取n个字符
select substr('Following the track of the gale,I am chasing the sun.',33,25) from dual; --得到I am chasing the sun.
--instr(char1,char2)反回char2在char1中的位置(第几个)
select instr('qwer','w') from dual;
 
--round(num,int): 四舍五入,保留int位小数,int+1位四舍五入
select round(3.1415926,2) from dual;
select round(46.33,-1)from dual;
 
--trunc(num,int):无条件舍弃int位小数后面的数
select trunc(123456,-2)from dual;--个位为-1,十位为-2.
 
--mod(m,n)返回m余n
select mod(5,3)from dual;
select sal,job from emp;
 
--ceil/floor:向上/向下取整
select ceil(3.18)from dual;
select floor(3.18)from dual;
 
--to_date():将字符串格式转换为系统格式
--查看81年以后入职的都有谁
select *from emp where hiredate>to_date('1987-01-01','yyyy-mm-dd');
 
--to_char:转换为字符串格式
select sal,ename from emp ;
select ename,job,to_char(hiredate,'yyyy"年"mm"月"dd"日"') from emp;
 
--last_day(time):返回time所在月的最后一天
select last_day(sysdate) from dual;
--查看每个员工入职月的最后一天
select last_day(hiredate)from emp;
 
--add_months(d,i)返回日期d过了i个月的时间是哪天
select add_months(sysdate,10)from dual;
 
--查看员工入职二十周年纪念日
select add_months(hiredate,12*20)from emp;
--months_between(time1,time2):计算time1与time2隔了多少个月
--香港回归了多久
select round(months_between(sysdate,to_date('1997-07-1','yyyy-mm-dd')))from dual;
 
--计算我的一百周年诞辰
select round(months_between(to_date('2097-11-6','yyyy-mm-dd'),sysdate))from dual;
select round(months_between(add_months(to_date('1997-11-6','yyyy-mm-dd'),12*100),sysdate))from dual;
 
--next_day():返回下一个周几,要看这个周的周几有没有过,过了就是指下周,没过就是指本周,
select next_day(sysdate,1)from dual;
 
--nvl(arg1,arg2):若第一个参数为null,则转换为第二个参数。
--查看员工每个月领走多少钱
select ename,sal,comm,sal+nvl(comm,0) from emp;
--nvl2(arg1,arg2,arg3):判断第一个参数是否为null,若第一个参数为null则返回arg3,否则返回arg2
select ename,sal,comm,nvl2(comm,sal+comm,sal)from emp;
 
--别名
select ename  e,job  j from emp;
 
--where一般用来添加条件
--查看十号部门的人
select * from emp;
select *from emp where deptno=10 ;
--谁是经理

select *from emp where job='manager';

--谁的薪资大于两千
select *from emp where sal>2000;
 
--and&or用在条件中,表示并且&或者的意思
select *from emp where sal>2000 and job='manager';
--查看入职时间是81年以后,并且在20部门的人
select *from emp where deptno=20 and hiredate>to_date('1981-01-01','yyyy-mm-dd');     ---**
 
--like 模糊查询
select *from emp where ename like '_a%';
select *from emp where job like '%na%';
 
--in&not in 在&不在什么内
select * from emp where job not in ('manager','clerk');
select * from emp where job !='manager' and job !='clerk';
 
--between a and b:查看在a和b范围内有撒
select *from emp where hiredate between to_date('1981-01-01','yyyy-mm-dd')and to_date('1982-12-31','yyyy-mm-dd');
 
--  >any大于最小  <any 小于最大  >all大于最大   <all小于最小
select *from emp where sal >any(1500,3000)and sal <any(1500,3000);
 
--distinct(): 消除重复
select distinct(ename) from emp;

数据库学习笔记day01+day02的更多相关文章

  1. MySQL数据库学习笔记(十二)----开源工具DbUtils的使用(数据库的增删改查)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  2. MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  3. MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  4. Mysql数据库学习笔记之数据库索引(index)

    什么是索引: SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间. 聚集索引:该索引中键值的逻辑顺序决定了表中相应行的物 ...

  5. MYSQL数据库学习笔记1

      MYSQL数据库学习笔记1 数据库概念 关系数据库 常见数据库软件 SQL SQL的概念 SQL语言分类 数据库操作 创建数据库 查看数据库的定义 删除数据库 修改数据库 创建表 数据类型 约束 ...

  6. [转]mnesia数据库学习笔记

    mnesia数据库学习笔记一 mnesia数据库学习笔记二 mnesia数据库学习笔记三 mnesia数据库学习笔记四

  7. 数据库学习笔记3 基本的查询流 2 select lastname+','+firstname as fullname order by lastname+','+firstname len() left() stuff() percent , select top(3) with ties

    数据库学习笔记3 基本的查询流 2   order by子句对查询结果集进行排序 多列和拼接 多列的方式就很简单了 select firstname,lastname from person.pers ...

  8. Caché数据库学习笔记(5)

    目录 Cache数据库方法的RESTful封装 ================================================================ 因为对web serv ...

  9. MySQL数据库学习笔记(八)----JDBC入门及简单增删改数据库的操作

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

随机推荐

  1. Unity 工作经历+近期面试经历(二)

    注册博客园后,我原本打算每一份工作经历都记录下来.但是,这份工作已经换了半年了,好几次想要写,又不知道该怎么写.太多的负能量.我始终相信,情绪是会传染的.我基本决定放弃写这篇文章了.就让时间去淡化经历 ...

  2. [题解]洛谷P1094——纪念品分组

    原题链接: https://www.luogu.org/problem/P1094 题目简述: 有NNN件纪念品,每个纪念品都有特定的价格,要求将他们分组,每组纪念品之和不得超过MMM,并且每组最多只 ...

  3. 和SharpDX坑爹的Variant刚正面

    和SharpDX坑爹的Variant刚正面 几个月前我写了和篇文章<.NET中生成动态验证码>文章,其实里面藏着一个大坑.运行里面的代码,会发现运行的gif图片并没有循环播放: 细心的网友 ...

  4. mysql中给查询出的结果集添加自增序号

    select (@i:=@i+1) i,emp.* from emp,(select @i:=0) it 按部门分组并按薪资总和从大到小排序求薪资总和第二高的部门名称和薪资总和:select c.en ...

  5. Eclipse中查看JAVA源代码显示SOURCE NOT FOUND解决办法

    Problem:Java利用快捷键查看源代码显示Source not found 出现问题的原因:JDK目录下缺失src.zip文件只有javafx-src.zip src.zip文件:Java所有类 ...

  6. 九、Spring Boot 优雅的实现CORS跨域

    前言 我们的springboot 架手架已经包含了mysql,redis,定时任务,邮件服务,短信服务,文件上传下载,以及docker-compose 构建镜像等等. 接下来让我们解决另一个常见的问题 ...

  7. The place where I want to go

    The place where I want to go It’s hard to say where I want to go most. Because there are too many pl ...

  8. Netty学习——通过websocket编程实现基于长连接的双攻的通信

    Netty学习(一)基于长连接的双攻的通信,通过websocket编程实现 效果图,客户端和服务器端建立起长连接,客户端发送请求,服务器端响应 但是目前缺少心跳,如果两个建立起来的连接,一个断网之后, ...

  9. 对于Python函数与方法,你可能存在些误解

    欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华 ...

  10. Java-手动搭建SSH

    项目搭建工具:eclipse 项目开发环境:①Windows10-64位 ②Tomcat 8.5 ③jdk1.8.0_91 ④MySql 8.0.11 jar包准备:这里不详说,自己准备不不冲突能跑起 ...