oracle数据库SQL入门
1.oracle数据库的下载、安装、卸载
Oracle下载:
Oracle下载链接地址:http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/index.html
如上图:选择接受协议后,选择自己对应系统、位数的文件即可;
文件下载好的路径如下:
安装:点击setup.exe文件准备安装:
如图所示几个步骤:第一个配置安全安装处,只是为了学习,可以将前面的勾去掉,其余的直接点击下一步即可,注意的是:选择安装路径时,
由于Oracle数据库较大,最好不要放置于c盘,放于闲置空间较大的盘中,避免开机启动时拖慢系统速度,最后就是在设置口令时:口令就是
你的登录密码,其余直接下一步即可。
验证安装是否成功:
安装后可以在桌面左下角找到开始,我这里使用的是Windows 10系统,不同系统显示有所不同:里面可以找到一个如下图所示的图标(安装的当前Oracle的版本):
点击SQL plus工具
输入用户名:system
输入你在安装时输入的口令即密码出现:
出现了链接到对应的你下载安装的Oracle数据库版本的文字,说明你已经安装成功
Oracle的卸载:
首先找到安装Oracle文件目录下的deinstall文件夹:
找到文件下的deinstall.bat这是一个批量删除的执行文件,点击进去之后,按照提示进行操作即可,一般会
将软件卸载、注册表等都要删除干净,才算彻底的将软件卸载
2.用户与表空间
2.1使用系统用户登录
系统用户从权限大小进行排序:sys、system、sysman、scott;其中scott的默认密码是tiger
使用system用户登录语句:
connect [username/password] [@server] [as sysdba|sysoper]
例如:connect system/root @orcl as sysdba
上面的arcl就是在安装Oracle数据库时,创建数据库默认的数据库名,sysdba是以管理员身份登录,sysoper是以普通操作员省份登录
如下图:
对于sys必须后面必须加上as 什么,意思就是以什么身份进行登录,sys必须是sysdba管理员身份
此时也可以:通过 show users语句查看当前的登录用户
可以看到当前的登录用户为sys,oracle语句中是不区分大小写的,只有在指定表名是必须是大写
2.2.Oracle用户好表空间之间查看登录用户
dba-users:用户字典,通过desc查看出用户字典的结构;
通过select username,acount_status from dba_users;可以查看出对应的dba_users中对应用户名和账户的状态;
可以看到sys/system, 是一个open状态,其他的大多都是locked被锁定的状态
如果要使用这些被锁定的账户的SQL语句:alter user username account unlock;这样就可以使用它进行登录了;
2.3:表空间的创建、设置、删除、增减文件的语句
alter user username default|temporary tablespace tablespace_name;
临时表空间:不是永久保存的,只是在存储过程或其它的过程中使用,过程结束它就被回收掉。
创建表空间:create [temporary] tablespace tablespace_name tempfile|datafile 'xx.dbf' size xx;
查看数据字典:desc dba_data_files;
在数据字典里查看具体的表空间的文件路径:
修改表空间的状态:联机状态、脱机状态
SQL语句:alter tablespace tablespace_name online|offline
修改表空间的状态:设置只读或可读写状态
alter tablespace tablespace_name read only|read write;
在表空间中增加数据文件:
alter tablespace tablespace_name add datafile 'xx.dbf' size xx;
这就是通过SQL语句在原有表空间创建后最终生成的文件:
删除表空间:
SQL语句:drop tablespace tablespace_name [including contents];
表空间所在位置的路径,从下面可以看出,这个只是删除掉了它的数据结构,但是里面
的文件并未将其删除。
3.管理表
3.1Oracle的数据类型
(1)、字符型
char(n) 、nchar(n),其中char中的n最大值是2000,nchar的最大值是1000,他们是不可变长度的字符类型
例如:设置姓名的char(10),如果实际只装入了2个字符,那么后面的八个字符,内存中将会把它补齐,这样的话在
一定程度上是很浪费内存的;所以也就出现了可变化长度的字符类型
varchar2(n)、nvarchar(n)
(2)、数值型
number(m,n),m表示可以表达几位数子,n表示可以后几位小数;
例子:number(5,2):100.00,如果写成10000.00,用它来进行表示的话会出现######,无法显示出结果。
(3)、日期型
date
更加精确的timestamp
(4)、其它类型
BLOB和CLOB表示大数字的类型
1、BLOB全称为二进制大型对象(Binary Large Object)。它用于存储数据库中的大型二进制对象。可存储的最大大小为4G字节
2、CLOB全称为字符大型对象(Character Large Object)。它与LONG数据类型类似,只不过CLOB用于存储数据库中的大型单字节字符数据块,不支持宽度不等的字符集。
可存储的最大大小为4G字节,Clob可以存储单字节字符数据,Blob可以存储无结构的二进制数据
3.2Oracle中操作表结构
添加字段
alter table table_name add column_name datatype;
修改字段数据类型
alter table table_name modify column_name datetype;
删除字段
alter table table_name drop column column_name;
对存在字段名重命名
alter table table_name rename column column_name to new_column_name;
修改表名
rename table_name to new_table_name;
删除表
truncate table table_name
drop table table_name
truncate是截断的意思,删除的是表中的内容,相对而言效率很高
drop是将表结构和表内容一起删除掉
4.操作表中的数据
添加数据
insert into table_name(column_name,...) values(value1,....);
删除表
delete from table_name where conditions;
修改表
update table_name set column_name = 'xx',...
复制表
在创建时复制
前提:表中结构和数据类型需要保持一致
create table table_name
as
select column1,...|* from table_old;
在添加时复制
insert into table_name (column1,...)
select column1,...|* from table_old;
5.约束
Oracle中一共包含五中约束
(1)、非空约束
(2)、唯一约束
(3)、主键约束
(4)、外键约束
(5)、检查约束
SQL语句主要从三方面去做:
一、在创建表时进行添加约束
非空约束:not null
主键约束:primary key
外键约束:references table(column_name),主表和从表之间数据类型必须一致
唯一键:unique
检查约束:check(表达式),表达式即:某个字段的限制条件
二、在修改表时添加约束
添加非空:alter table table_name modify column_name datatype not null;
添加主键约束:alter table table_name add constraint constraint_name primary key(column_name);
添加外键约束:alter table table_name add constraint constraint_name forengn key(column name ) references table(column_name);
添加唯一键约束:alter table table_name add constraint constraint_name unique(column_name);
添加检查约束:alter table table_name add constraint constraint_name check(expression);
三、删除表中的约束
删除非空:alter table table_name modify column_name datatype null;
删除其他的约束:disable|enable constraint constraint_name
drop constraint constraint_name;
附加:要查询某张表中有哪些约束条件
select constraint_name,constraint_type,status from user_constraints where table_name='';
6.查询语句
6.1基本查询语句
select distinct column_name1,... |* from table_name where conditions;
distinct 是去除重复项
1.SQL*plus中设置格式:
column column_name HEADING new_name; column 也可以简写成col
先写这句语句在写查询语句,最后查询出的就是自己定义的new_name ;感觉就是MySQL中的as 别名
2.column column_name format dataformat;
直接定义格式,数字格式用9表示一个位。
3.清楚设置的格式
column column_name clear;
6.2 模糊查询
oracle中的模糊查询和mysql也是一致的都是用like 通配符(_,%);_只能表示一个字符,%可以表示0到多个任意字符
6.3 排序
order by desc/asc 和MySQL用法一致
6.4 case ... when的使用
case column_name when value1 then result,...
else result end;
这个就和java中的switch case 差不多,根据值的不同返回出不同的结果
6.5 decode 函数的使用
decode (column_name,value1,result1,....,defaultvalue);
这个是case ... when 差不多
oracle数据库SQL入门的更多相关文章
- Oracle数据库基础入门《二》Oracle内存结构
Oracle数据库基础入门<二>Oracle内存结构 Oracle 的内存由系统全局区(System Global Area,简称 SGA)和程序全局区(Program Global Ar ...
- Oracle数据库基础入门《一》Oracle服务器的构成
Oracle数据库基础入门<一>Oracle服务器的构成 Oracle 服务器是一个具有高性能和高可靠性面向对象关系型数据库管理系统,也是一 个高效的 SQL 语句执行环境. Oracle ...
- Oracle数据库从入门到精通 单行函数问题
视频课程:李兴华 Oracle从入门到精通视频课程 学习者:阳光罗诺 视频来源:51CTO学院 Oracle数据库从入门到精通-单行函数 在数据库中,为了方便用户的数据开发,往往会提供一系列的支持函数 ...
- Oracle PL/SQL入门之慨述
Oracle PL/SQL入门之慨述 一.PL/SQL出现的目的 结构化查询语言(Structured Query Language,简称SQL)是用来访问关系型数据库一种通用语言,它属于第四代语言( ...
- Oracle 数据库SQL性能查看
作为一个开发/测试人员,或多或少都得和数据库打交道,而对数据库的操作归根到底都是SQL语句,所有操作到最后都是操作数据,那么对sql性能的掌控又成了我们工作中一件非常重要的工作.下面简单介绍下一些查看 ...
- Oracle数据库sql命令整理
转至:https://blog.csdn.net/weixin_43712330/article/details/88358604 以下为oracle数据库中sql语句的整理,将持续更新01. 如何登 ...
- oracle数据库从入门到精通之二
重点关注表的创建与操作语法(如何创建与设计表是后话)常用数据类型表本质上是数据的集合操作数据类型:不管扩展多少种数据类型,常用的就以下几种字符串 varchar2(其它数据库是varchar)来 ...
- oracle数据库从入门到精通
oracle产品线围绕企业开发平台的企业开发平台四大组件:unix,weblogic中间件,java编程语言,oracle数据库oracle 开发主要分两类数据库管理:dba数据库编程:分两部分 ...
- Oracle数据库——SQL高级查询
一.涉及内容 1.掌握SELECT语句的多表连接查询. 2.掌握SELECT语句的子查询. 二.具体操作 (一)根据Oracle数据库scott方案下的emp表和dept表,完成下列操作: 1.查询所 ...
随机推荐
- .Net 多线程 (1) Task
多线程是一种有效提高程序工作效率的方法.当然为了效率需要使用更多的cpu,内存等资源. 并发是两个队列交替使用一台咖啡机,并行是两个队列同时使用两台咖啡机,如果串行,一个队列使用一台咖啡机,那么哪怕前 ...
- 腾讯云服务器使用smtp发送邮件
问题:在腾讯云服务器上使用自编写的邮件服务失败.查其原因,是该邮件服务调用smtpclient.Send(mailMessage)时,出现错误:由于连接方在一段时间后没有正确答复或连接的主机没有反应, ...
- 最新java学习路线:含阶段性java视频教程完整版
最新java学习路线:带阶段性java视频教程版本 第一阶段:Java基础 学习目标: 掌握基本语法.面向对象.常用类.正则.集合.Io流.多线程.Nio.网络编程.JDK新特性.函数式编程 知识点细 ...
- Python Semaphore
Semaphore信号量的使用 信号量: 互斥锁 同时只允许一个线程更改数据,而Semaphore是同时允许一定数量的线程更改数据 ,比如厕所有3个坑,那最多只允许3个人上厕所,后面的人只能等里面有人 ...
- layer(jQuery弹出层插件)
弹窗alert:默认确定按钮+右上角关闭 top.layer.alert("请选择要删除的记录!",{shade: 0.3,offset:'250px'}); 弹窗alert:默认 ...
- 2. Dubbo原理解析-Dubbo内核实现之基于SPI思想Dubbo内核实现(转)
转载自 斩秋的专栏 http://blog.csdn.net/quhongwei_zhanqiu/article/details/41577159 SPI接口定义 定义了@SPI注解 public ...
- centos6.5安装zabbix3.2
1.安装PHP Zabbix 3以后对PHP的要求最低为5.4,而CentOS6默认为5.3.3,完全不满足要求,故需要利用第三方源,将PHP升级到5.4以上,注意,不支持PHP7 rpm -ivh ...
- 深度学习标注工具 LabelMe 的使用教程(Windows 版本)
深度学习标注工具 LabelMe 的使用教程(Windows 版本) 2018-11-21 20:12:53 精灵标注助手:http://www.jinglingbiaozhu.com/ LabelM ...
- 【搬运】Wget 命令详解
用过 Linux 系统的对于 wget 不陌生吧,从网上下载资源等操作都是少不了它,它体积小但功能集全,支持 FTP HTTP HTTPS 协议下载方式,支持断点续传 代理服务器. 现在 Window ...
- spring boot ----> 常用模板freemarker和thymeleaf
===========================freemarker=================================== freemarker 官网:https://freem ...