1、Oracle的五大约束条件:
1 主键 primary key
2 外键 foreign key,
3 唯一 unique,
4 检测 check
5 非空 not null
实例运用:
-- 商品表 客户表 购物车表 /* 商品表 goods 编号gid , 名称 , 价格 ,厂商 客户表 customer 编号cid ,姓名,性别,出生日期,身份证 购物车表 purchase 商品编号,客户编号,商品数量 请建立表,要求 必须有主外键,所有的名称不能为空,价格必须大于0,身份证必须唯一,性别必须是男女默认男,商品数量必须是1到30之间 */ create table goods( gid number(8) primary key, gname varchar2(50) not null, price number(15,2) check(price >0), firm varchar2(100) ); create table customer( cid number(8) primary key, cname varchar2(30) not null, sex char(2) default '男' check (sex in ('男','女')), birth date, idcard char(18) unique );
create table purchase ( gid number(8) references goods(gid), cid number(8) references customer(cid), goodsnum number(8) check( goodsnum between 1 and 30) );
2、Oracle 基础知识(在PLSQL developer中操作)
---管理员登录 conn sys/oracle@orcl as sysdba; --解锁scott方案 alter user scott account unlock; --scott登录 conn scott/tiger@orcl as normal;
3、基本数据类型
可参照:http://blog.csdn.net/weixin_41278231/article/details/78716417
1) 数字 number [小数,整数]
number(5,3)表示总共5个数字,小数点后3个,最大值99.999
number(5) 表示整数 最大值99999
2) 字符
char 定长字符 : char(10) 如果没有达到10字符就用空格补充,他所占的大小总是10字符空间
varchar2 变长字符和varchar类似 :varchar2(10) 如果没有达到10个字符长度不用空格补充
clob 大文本类型:文字很多,小说,简介,新闻内容...
blob 大文本类型: 图片,文件,压缩文件...
3)时间
date 年月日 时分秒
timestamp 年月日 时分秒 秒可以带小数点(精确到0点几秒)
4、dos命令行
1、连接数据库 在命令提示符中运行: C:\Adminstrator> sqlplus sys/change_on_install as sysdba; 或 C:\Adminstrator> sqlplus / as sysdba 在Oracle的SQL命令行工具中运行:
SQL> conn sys/change_on_install@szdev as SYSDBA; 解析:as SYSDBA:连接为数据库管理员 SQL> conn user/user@szdev as NORMAL; -- 格式:conn 用户名/密码@数据库名 as normal; 解析:as normal:连接为normal(普通数据库用户). 解析:sys:用户名 change_on_install:(默认)密码 sysdba:连接身份 连接身份:一共三种,分别为 sysdba:系统管理员 sysoper:系统操作员 normal:普通用户 2、解锁用户: SQL> alter user scott account unlock; 修改密码: SQL> alter user scott identified by 123; scott:用户名; 123:新密码 3、以scott普通用户的身份进入 SQL> sqlplus scott/tiger 注:oracle的关键字(比如sqlplus/as)不区分大小写,用户名(如scott/sysdba)不区分大小写,但是密码严格区分大小写. SQL> select status from v$instance; v$动态表开头,查看动态实例,open为启动。 SQL> shutdown immediate 关闭数据库 SQL> startup 继续启动 SQL> show parameter db_name 查看数据库名称 查询数据库SCOTT用户默认的状态 SQL> select username,account_status from dba_users where username='SCOTT'; SQL> desc user_tables; 描述 SQL> show user查看当前数据库用户
5、JavaEE工程师,oracleSQL和oracle的关系
(1)第四代语言:SQL【结构化查询语言,面向关系的】
第一代:机器语言
第二代:汇编
第三代:C/C++/C#/Java/VB/...
第四代:SQL
将来。。。
(2)SQL92/99 标准的四大分类
(A)DML(数据操纵语言):select,insert,update,delete
(B)DDL(数据定义语言):create table,alter table,drop table,truncate table 。。。
(C)DCL(数据控制语言):grant 权限 to scott,revoke 权限 from scott 。。。
(D)TCL(事务控制语言):commit,rollback,rollback to savepoint 。。。
(3)oracleSQL与SQL92/99的关系
SQL92/99标准,访问任何关系型数据库的标准
oracleSQL语言,只访问Oracle数据库服务器的专用语言
(4)Java技术和oracleSQL的关系
JDBC-->使用OracleSQL语法-->Oracle服务器--->orcl数据库-->表-->记录
Hibernate-->使用OracleSQL语法-->Oracle服务器
MyBatis-->使用OracleSQL语法-->Oracle服务器
===========================================================================================================================================================
第一种:创建数据库的方法 http://www.cnblogs.com/manmanlu/p/5993449.html
第二种方法:
1、数据库创好后,给数据表分配大小
create tablespace day48ssh datafile 'S:\OracleDB\oradata\day48ssh\day48ssh_data.DBF' size 500M;
解析:day48ssh:数据库名称
size 500M:给数据表分配的空间大小
'S:\OracleDB\oradata\day48ssh\day48ssh_data.DBF':本地路径
2、新增用户zhao/1234
创建用户:create user zhao identified by 1234;
授予用户使用表空间的权限:alter user zhao quota unlimited on day48ssh;
授予zhao用户创建session的权限,即登陆权限:grant create session to zhao;
授予zhao用户创建table的权限:grant create table to zhao;
授予zhao用户创建sequence的权限:grant create sequence to zhao;
授予zhao用户操作表空间的权限:grant resource to zhao;
或者一键授权:
grant create session,create table,create sequence,create view,resource to zhao;
3、执行建表脚本(创建表) “案例表”
create table users(
id number(5) primary key,
account varchar2(20) not null,
password varchar2(20) not null
);
创建序列:create sequence users_seq; 由于oracle没有自增长,所以...
插入一条记录:insert into users values(users_seq.nextval,'zhao','123456');
============================================================================================================================================================
调整dos命令行显示数据表的格式(简称:好看格式,就是把凌乱的格式转化为一个好看的表的形式,蓝色为表的字段名):
col empno for 9999;
col ename for a10;
col job for a10;
col mgr for 9999;
col hiredate for a12;
col sal for 9999999;
col comm for 9999999;
col deptno for 99;
set pagesize 20;
col tname for a20;
============================================================================================================================================================
4、Oracle用户创建及权限设置
1)、默认的普通用户scott默认未解锁,不能进行那个使用,新建的用户也没有任何权限,必须授予权限
grant create session to zhangsan; //授予zhangsan用户创建session的权限,即登陆权限 grant unlimited tablespace to zhangsan; //授予zhangsan用户使用表空间的权限 grant create table to zhangsan; //授予创建表的权限 grant drop table to zhangsan; //授予删除表的权限 grant insert table to zhangsan; //插入表的权限 grant update table to zhangsan; //修改表的权限 grant all to public; //这条比较重要,授予所有权限(all)给所有用户(public)
2)、oralce对权限管理比较严谨,普通用户之间也是默认不能互相访问的,需要互相授权
grant select on tablename to zhangsan; //授予zhangsan用户查看指定表的权限 grant drop on tablename to zhangsan; //授予删除表的权限 grant insert on tablename to zhangsan; //授予插入的权限 grant update on tablename to zhangsan; //授予修改表的权限 grant insert(id) on tablename to zhangsan; grant update(id) on tablename to zhangsan; //授予对指定表特定字段的插入和修改权限,注意,只能是insert和update grant alert all table to zhangsan; //授予zhangsan用户alert任意表的权限
二、撤销权限
基本语法同grant,关键字为revoke
三、查看权限
select * from user_sys_privs;//查看当前用户所有权限
select * from user_tab_privs;//查看所用用户对表的权限
四:查询/查看
查看当前的所有数据库: select * from v$database;
select name from v$database;
查看数据库结构字段:desc v$databases;
************************************* oracle基本操作语句 ************************************
打开服务器 net start oracleservicebinbo 打开监听器 lsnrctl start 关闭服务器 net stop oracleservicebinbo 关闭监听器 lsnrctl stop =============================================================== 清屏:clear screen 或 host cls 退出:exit 或 quit =============================================================== 查看当前用户的角色 SQL>select * from user_role_privs; =============================================================== 查看当前用户的系统权限和表级权限 SQL>select * from user_sys_privs; SQL>select * from user_tab_privs; =============================================================== 查看当前用户的缺省表空间 SQL>select username,default_tablespace from user_users; =============================================================== 换用户 conn as sysdba sys tsinghua sqlplus "sys/tsinghua as sysdba" conn sys/zl as sysdba =============================================================== 修改表结构 alter table test modify(name not null); alter table test add(name varchar2(20)); alter table test drop column sex; alter table test set unused column sex; alter table test drop unused columns; =============================================================== 更改用户密码 sql>alter user 管理员 identified by 密码; =============================================================== 创建表空间的数据文件 sql>create tablespace test datafile 'd:oraclebinbo.dbf' size 10m; =============================================================== 创建用户 sql>create user 用户名 identified by 密码; =============================================================== bfile类型实例 创建目录 create directory tnpdir as 'c:'; 删除目录 drop directory tnpdir 授权 (读数据库目录和文件的权限) grant read on directory tnpdir to scott; 用户:scott 建表 create table bfiletest(id number(3), fname bfile); 添加数据 insert into bfiletest values(1,bfilename('TMPDIR','tmptest.java')); =============================================================== 查看用户 sql>show user =============================================================== 检查语句是否有错 show error =============================================================== 锁定用户 sql>alter user 用户名 account lock =============================================================== 解除(锁)用户 sql>alter user 用户名 account unlock =============================================================== 删除用户 sql>drop user zl; =============================================================== 给用户创建表权限 sql>grant create table to 用户名; =============================================================== 授管理员权限 sql>grant dba to 用户名; =============================================================== 给用户登录权限 sql>grant connect to 用户名 =============================================================== 给用户无限表空间权限 sql>grant unlinmited tablespace to 用户名; =============================================================== 收回权限 sql>revoke dba from 用户名; =============================================================== 查看用户下所有的表 SQL>select * from user_tables; =============================================================== 查看名称包含log字符的表 SQL>select object_name,object_id from user_objects where instr(object_name,'LOG')>0; =============================================================== 查看某表的创建时间 SQL>select object_name,created from user_objects where object_name=upper('&table_name'); =============================================================== 查看某表的大小 SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&table_name'); =============================================================== 查看放在ORACLE的内存区里的表 SQL>select table_name,cache from user_tables where instr(cache,'Y')>0; =============================================================== 再添加一个表空间的数据文件 sql>alter tablespace test add datafile 'd:oracletest1.dbf' size 10m; =============================================================== 建表 SQL>create table studen(stuno int,stuname varchar(8) not null,stubirth date default to_date('1987-5-9','YYYY-MM-DD')); 向表结构中加入一列 SQL>alter table studen add(stuphoto varchar(9)); 从表结构中删除一列 SQL>alter table studen drop column stuphoto; 修改表一列的长度 SQL>alter table studen modify(stuno number(4)); 隐藏将要删除的一列 SQL>alter table studen set unused column stuphoto; 删除隐藏的列 SQL>alter table studen drop unused columns; 向表中加入约束 SQL>alter table studen add constraint pk primary key(stuno); 删除约束 SQL>alter table studen drop constraint pk; =============================================================== 创建表 sql>create table 用户名(name varchar2(20),password varchar(20)) tablespace 空间名; =============================================================== 添加字段 sql>alter table test add(column_x char(10) not null); =============================================================== 更改字段 sql>alter table emp modify(column_x char (20)); =============================================================== 删除字段 如待删除域属于某个索引,则不允许删除操作,必须将此域先设置为NULL。 sql>alter table emp modify(column_x null); sql>update emp set column_x=null; sql>commit; sql>alter table emp drop(column_x); =============================================================== 选择表空间 sql>alter user 用户名 default tablespace test; =============================================================== 管理员删除别的用户中的表 sql>drop table 用户名.表名; =============================================================== 退出 sql>exit; 或 sql>quit; =============================================================== 默认进入 sql>sqlplus "/ as sysdba" =============================================================== 查看数据库 sql>show parameter block; =============================================================== 写大量语句用记事本,新建方式。 输入"ed"回车 保存后 输入"/"运行; =============================================================== 查询用户有多少表 sql>select * from tab;
原创作者:DSHORE 作者主页:http://www.cnblogs.com/dshore123/ 原文出自:http://www.cnblogs.com/dshore123/p/8622757.html 欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!) |
检测语言世界语中文简体中文繁体丹麦语乌克兰语乌兹别克语乌尔都语亚美尼亚语伊博语俄语保加利亚语僧伽罗语克罗地亚语冰岛语加利西亚语加泰罗尼亚语匈牙利语南非祖鲁语卡纳达语印地语印尼巽他语印尼爪哇语印尼语古吉拉特语哈萨克语土耳其语塔吉克语塞尔维亚语塞索托语威尔士语孟加拉语宿务语尼泊尔语巴斯克语布尔语(南非荷兰语)希伯来语希腊语德语意大利语意第绪语拉丁语拉脱维亚语挪威语捷克语斯洛伐克语斯洛文尼亚语斯瓦希里语旁遮普语日语格鲁吉亚语毛利语法语波兰语波斯尼亚语波斯语泰卢固语泰米尔语泰语海地克里奥尔语爱尔兰语爱沙尼亚语瑞典语白俄罗斯语立陶宛语索马里语约鲁巴语缅甸语罗马尼亚语老挝语芬兰语苗语英语荷兰语菲律宾语葡萄牙语蒙古语西班牙语豪萨语越南语阿塞拜疆语阿尔巴尼亚语阿拉伯语韩语马其顿语马尔加什语马拉地语马拉雅拉姆语马来语马耳他语高棉语齐切瓦语 | 世界语中文简体中文繁体丹麦语乌克兰语乌兹别克语乌尔都语亚美尼亚语伊博语俄语保加利亚语僧伽罗语克罗地亚语冰岛语加利西亚语加泰罗尼亚语匈牙利语南非祖鲁语卡纳达语印地语印尼巽他语印尼爪哇语印尼语古吉拉特语哈萨克语土耳其语塔吉克语塞尔维亚语塞索托语威尔士语孟加拉语宿务语尼泊尔语巴斯克语布尔语(南非荷兰语)希伯来语希腊语德语意大利语意第绪语拉丁语拉脱维亚语挪威语捷克语斯洛伐克语斯洛文尼亚语斯瓦希里语旁遮普语日语格鲁吉亚语毛利语法语波兰语波斯尼亚语波斯语泰卢固语泰米尔语泰语海地克里奥尔语爱尔兰语爱沙尼亚语瑞典语白俄罗斯语立陶宛语索马里语约鲁巴语缅甸语罗马尼亚语老挝语芬兰语苗语英语荷兰语菲律宾语葡萄牙语蒙古语西班牙语豪萨语越南语阿塞拜疆语阿尔巴尼亚语阿拉伯语韩语马其顿语马尔加什语马拉地语马拉雅拉姆语马来语马耳他语高棉语齐切瓦语 |