--表示系统时间
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. [ASP.NET Core 3框架揭秘] 异步线程无法使用IServiceProvider?

    标题反映的是上周五一个同事咨询我的问题,我觉得这是一个很好的问题.这个问题有助于我们深入理解依赖注入框架在ASP.NET Core中的应用,以及服务实例的生命周期. 一.问题重现 我们通过一个简单的实 ...

  2. scrapy下载中间件结合selenium抓取全国空气质量检测数据

    1.所需知识补充 1.下载中间件常用函数 process_request(self, request, spider): 当每个request通过下载中间件是,该方法被调用 process_reque ...

  3. requests请求库练习--GitHub登录

    # coding = utf-8 """ 结合抓包工具,采用两种方法模拟登录github直接利用session登录和利用requests登录 ""&q ...

  4. ES6之Set

    阮大神的es6看了一遍,但是对于Set和Map还是一知半解的,主要还是没怎么用吧,这里总结一下,以后再工作中也要多用用才行 怎么定义set呢?有什么用处? set是ES6中新增的类型,和数组类似,唯一 ...

  5. Mybatis拦截器实现原理深度分析

    1.拦截器简介 拦截器可以说使我们平时开发经常用到的技术了,Spring AOP.Mybatis自定义插件原理都是基于拦截器实现的,而拦截器又是以动态代理为基础实现的,每个框架对拦截器的实现不完全相同 ...

  6. mybatis精讲(五)--映射器组件

    目录 前言 标签 select insert|update|delete 参数 resultMap cache 自定义缓存 # 加入战队 微信公众号 前言 映射器之前我们已经提到了,是mybatis特 ...

  7. Server MyEclipse Tomcat v7.0 was unable to start within 45 seconds. If the server requires more time

    启动Tomcat服务器时经常遇到这个错误, Server MyEclipse Tomcat v7.0 was unable to start within 45 seconds. If the ser ...

  8. hybrid app初体验,和react-native一起飞

    第一次启动了react-native的示例,今天主要把其中遇到的坑与解决的办法分享给大家.如有疏漏.错误还望指正. 首先还是要从hybrid app这个概念说起(如果对于这个过程不感兴趣的同学,可以直 ...

  9. SQL追踪器的安装和使用

    SQL追踪器主要作用快速查出错误SQL语言.此工具能几秒钟追踪出sql 数据库操作,能几分钟内分析任意项目系统数据库表结构,瞬间无刷新测试.调试 php代码 第一步:下载 https://pan.ba ...

  10. 求亿级记录中搜索次数Top N的搜索词(MapReduce实现)

    程序事例: 日志信息: 二手车 1345 二手房 3416 洗衣机 2789 输入: N=2 输出: 二手房 洗衣机 map函数如下: import java.io.IOException; impo ...