关于Oracle与MySQL的使用总结

平时使用的比较多的数据库管理系统就是OracleMySQL,我在这里记录下使用过程中的遇到的问题以及解决方案,以备不时之需

Oracle

关于表空间

Oracle创建数据的代价还是比较大的,所以使用表空间的概念,每个表空间相互独立。这里记录的操作包括从创建表空间、创建用户并分配表空间、授权用户这一系列操作

创建表空间

create tablespace db_test  
datafile 'D:\app\Administrator\oradata\orcl\db_test.dbf'  --表空间文件位置
size 50m  --初始大小
autoextend on  --自动增长

创建用户并分配表空间

CREATE USER utest  --用户名
IDENTIFIED BY utestpwd  --密码
DEFAULT TABLESPACE db_test --分配表空间

授予一些权限给用户

grant create session to utest  --或者是CONNECT
grant RESOURCE to utest
--grant dba to utes

导入与导出

Oracle可以使用dmp文件、sql文件、数据泵方式进行导入与导出

Oracle导入.dmp文件

命令语句为 imp 用户名/密码@实例名 file=d:\data\x.dmp log=d:\data\x.log full=y ignore=y;其中:file 表示待导入的dmp文件位置;
log 指定导入过程log的记录文件位置,注意,即使指定了将记录保存到log文件里,屏幕打印也不会关闭;full 表示将dmp全部内容导入;ignore 表示忽略表创建过程中的错误,比如表名已存在时将直接覆盖原来表的内容;

Oracle导出.dmp文件

exp有三种主要的方式(完全、用户、表)

1. 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中 (完全) DBA权限exp system/manager@TEST file=d:\test.dmp full=y
2. 将数据库中system用户与sys用户下的对象导出 (用户)exp system/manager@TEST file=d:\test.dmp owner=(system,sys)
3. 将数据库中的表table1 、table2导出 (表),只导出表exp system/manager@TEST file=d:\test.dmp tables=(table1,table2)
4. 将数据库中的表table1中的字段filed1以”00”打头的数据导出 exp system/manager@TEST file=d:\test.dmp tables=(table1) query=\” where filed1 like ‘00%’\”
5. 只导出表table1结构,不导出数据exp userid=uname/pwd  tables=table1  file=d:\test.dmp rows=n;
上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。
不过在上面命令后面加上 compress=y 就可以了

Oracle导入.sql文件

@文件名

oracle 导入数据泵

  1. 创建与数据泵文件(也是个.dmp文件)相同的表空间
  2. 创建数据泵文件相同的用户并分配表空间
  3. 授予一些权限给用户(有时候还是需要dba权限)
  4. 创建一个目录,并分配读写权限
CREATE OR REPLACE DIRECTORY  BM as 'D:\bm'  --D:\bm 手动创建grant read,write on directory 目录名 to 用户名
--revoke read,write on directory BM from als7zx04  --收回目录的读写权限
  1. 将数据泵文件放在目录下,这里是D:\bm 下
  2. 使用impdp导入
impdp 用户名/密码@数据库实例 directory=目录名 dumpfile='数据泵文件名'full=y ignore=y;  --数据泵文件名不要写全路径

系统查询

这里的查询不是说如何查询表,而是查询一些与系统有关的信息

oracle怎么查看用户属于哪个表空间

select username,default_tablespace from dba_users  where username='用户名'; --用户名大写

查询当前数据库实例名

select instance_name from v$instance;

数据库实例名(instance_name)用于对外部连接。在操作系统中要取得与数据库的联系,必须使用数据库实例名。比如我们作开发,要连接数据库,就得连接数据库实例名:

jdbc:oracle:thin:@localhost:1521:orcl(orcl就为数据库实例名)

查询表个数

select table_name from user_tables; --当前用户拥有的表
--select count(1) from tabs;
--select count(1) from user_tables;select table_name from all_tables; --所有用户的表
select table_name from dba_tables; --包括系统表
select table_name from dba_tables where owner='用户名'--类似的,除了表,还有视图、存储过程、同义词等等对象,使用[DBA|USER|ALL]_TABLES可以查看到你想要的对象

查看数据库对象,可以发现同名数据库对象被占用的问题

--对象名为GETORGNAME
SELECT OBJECT_NAME,OBJECT_TYPE FROM USER_OBJECTS WHERE OBJECT_NAME='GETORGNAME';

创建表空间

Oracle查看哪些表被锁了

SELECT object_name, machine, s.sid, s.serial#, logon_time, locked_mode
FROM gv$locked_object l, dba_objects o, gv$session s 
WHERE l.object_id = o.object_id 
AND l.session_id = s.sid;

解除锁定

--alter system kill session 'sid,serial#'; 
ALTER system kill session '23,1647'; 

查询语句

这里是一些特殊的SELECT

oracle中把1,2,3显示成01,02

--oracle中把1,2,3显示成01,02,03等的数值怎么写
SELECT to_char(2,'fm00') FROM dual;  --结果 02
SELECT to_char(2,'fm999.00') FROM dual; --结果 2.00

格式化时间

select
cc.IDEXPIRY,cc.CUSTOMERID,ci.CUSTOMERNAME
from 
CUSTOMER_CERT cc,CUSTOMER_INFO ci
where cc.CUSTOMERID=ci.CUSTOMERID and cc.IDEXPIRY<=to_char(sysdate,'yyyy/mm/dd')
-- Oracle 使用to_char 将当前时间sysdate 格式化

Oracle查询上一月

select to_char(add_months(sysdate,-1),'yyyymm') from dual;

Oracle从一个日期中提取特定部分

--语法
extract (    { year | month | day | hour | minute | second }    | { timezone_hour | timezone_minute }    | { timezone_region | timezone_abbr }    from { date_value | interval_value } )--例子(从一个日期里提取年,月,日)
select  extract (year from sysdate) year, extract (month from sysdate) month, extract (day from sysdate) day from  dual;
--EXTRACT(MONTH  FROM TO_DATE(MIN(A1.EARLIESTDUEBILLPUTOUTMON),'YYYY-MM-DD'))

数据字典

查询表的表名,字段名,字段类型,注释

--如果还需要查询系统中的表 使用数据字典 dba_ 打头的数据字典
select 
user_tab_columns.table_name,user_tab_comments.comments as tablename,
user_tab_columns.COLUMN_NAME,user_col_comments.comments,
user_tab_columns.data_type||'('||user_tab_columns.data_length||')',
user_tab_columns.COLUMN_ID
from user_tab_columns,user_col_comments,user_tab_comments
where user_tab_columns.TABLE_NAME=user_tab_comments.table_name
and user_tab_columns.TABLE_NAME=user_col_comments.table_name
and user_tab_columns.COLUMN_NAME=user_col_comments.column_name 
and user_tab_columns.table_name like '表名%' order by user_tab_columns.COLUMN_ID  
--表名大写,或者使用upper('brc_21bank_custrisk'),以创建表的字段顺序(column_id)排序

MySQL

导入与导出

MySQL中我使用最多的是sql文件的方式导入与导出

  1. 登录MySQL
mysql ‐uroot ‐proot
  1. 选中需要操作的数据库
user db1;
  1. 使用source命令导出
source C:\bak.sql

导入也需要先登录系统,并选中数据库(这个数据库需要提前建好,一个空数据库)

使用SOURCE命令

mysql ‐uroot ‐prootcreate database db1;user db1;SOURCE 导入文件的路径;

查询语句

如果是null设置默认值

ifnull(表达式1,表达式2)方法 : 若表达式1的值为null,则返回表达式2的结果;若表达式1的值不为null,则返回表达式1的值 ifnull(age, 0)

SELECT COUNT(IFNULL(english,0)) FROM student3;

设置小数位数

可以使用cast(数值 as decimal(总位数,小数位))设置小数的位数

select cast(avg(price) as decimal(5,2)) from products;     

数据字典

SELECTtable_schema,table_name,column_name,column_type,column_comment
FROMinformation_schema.`COLUMNS`
WHEREtable_schema = '数据库名';

MYSQL忘记密码

  1. 使用管理员运行cmd ---> net stop mysql停止mysql服务
  2. 使用无验证方式启动mysql服务:mysqld --skip-grant-tables
  3. 打开新的cmd窗口,直接输入mysql,回车登录成功
  4. user mysql;
  5. set password for '用户名'@'主机名' = password('新密码');或者 update user set password = password('新密码') where user = '用户名';
  6. 关闭两个窗口
  7. 打开任务管理器,手动结束mysqld.exe进程
  8. 启动mysql服务 ---> net start mysql
  9. 使用新密码登录即可

转载于:https://www.cnblogs.com/lz2017/p/10731754.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/483642.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

牛客 16499 解方程 (数学、Python)

同个人网站 https://www.serendipper-x.cn/&#xff0c;欢迎访问 &#xff01; 链接&#xff1a;https://ac.nowcoder.com/acm/problem/16499 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 131072K&#xff0c;其他语…

美军认知技术发展态势

来源&#xff1a;人机与认知实验室摘要&#xff1a;美军正在大力发展人工智能中的认知技术&#xff0c;认知技术的进步将极大的促进人机融合智能的发展。首先&#xff0c;综述了美军认知技术的发展历史&#xff0c;从自然语言处理、环境感知、机器人自主控制、自主编组协调、人…

数据结构——单链表的C++实现

数据结构——单链表的C实现\qquad单链表的创建、求长度、查找、插入和删除的C实现。 #include<iostream> using namespace std;//1.定义 typedef struct Node* List; struct Node {int num;Node* next; }; void input(int* a) {cin >> *a; }//2.创建链表 void Cre…

正则表达式写验证器

package com.office.utility;import java.util.regex.Pattern;/*** 校验器&#xff1a;利用正则表达式校验用户名、密码、邮箱、手机号等* author liujiduo*/ public class Validator {/*** 正则表达式&#xff1a;验证用户名*/public static final String REGEX_USERNAME &qu…

【操作系统复习】中断和异常

同个人网站 https://www.serendipper-x.cn/&#xff0c;欢迎访问 &#xff01; 中断和异常一、中断机制的诞生二、中断的概念和作用三、中断的分类四、外中断的处理过程一、中断机制的诞生 &#x1f481; 早期的计算机&#xff1a;各程序只能串行执行&#xff0c;系统资源利用…

东南亚的招聘骗局,程序员请注意!

阅读本文大概需要 5.2 分钟。 总有些我认为是常识的事情&#xff0c;在别人看来都是第一次接触。很多骗局都是如此&#xff0c;圈内人不上当&#xff0c;圈外人不警惕。毕竟骗子吃的就是信息不对称的生意。关于东南亚的招聘骗局&#xff0c;便是如此。 他们当前主力针对的是程序…

2021年深度学习哪些方向比较有研究潜力?

来源&#xff1a;知乎问答作者&#xff1a;陀飞轮、Zhifeng、谢凌曦转自&#xff1a;极市平台深度学习成为近些年来较为热门的领域&#xff0c;算法工程师这一岗位也变得越发的抢手&#xff0c;尽管已经踏入了这一领域但对整体的大环境其实是还不能够准确的把握。从研究方向去看…

数据结构——堆栈的C++实现

数据结构——堆栈的C实现\qquad堆栈的创建、判断是否为空&#xff0c;入栈&#xff0c;出栈操作的C实现。 #include<iostream> using namespace std;//1.定义 typedef struct Node* Link; struct Node {int num;Link next; };//2.创建堆栈头结点 Link CreateStack() {Li…

视觉感知与认知

2. 视觉感知与认知 2. 视觉感知与认知2.1 感知与认知2.1.1 视觉感知处理过程2.1.2 格式塔理论2.1.2.1 贴近法则 (proximity)2.1.2.2 相似法则 (similarity)2.1.2.3 连续原则 (continuity)2.1.2.4 闭合原则 (closure)2.1.2.5 共势原则 (common fate)2.1.2.6 好图原则 (good figu…

高文:拥抱人工智能

转自&#xff1a;《中国信息化周报》2020年40期本文根据中国工程院院士高文公开演讲整理而成&#xff0c;未经本人确认高文&#xff0c;中国工程院院士什么叫人工智能呢&#xff1f;人工智能是人类智能的一个计算机的实现&#xff0c;从对决的角度&#xff0c;它永远不可能超过…

数据结构——队列的C++实现

数据结构——队列的C实现\qquad队列的创建、判断是否为空或者满、入队和出队操作的C实现。 #include<iostream> using namespace std;//1.定义 template<class T,int size> class Queue {public:Queue() { first last -1; }void AddQueue(T num);T DeleteQueue(…

3.6数对 (Python)

链接&#xff1a;https://ac.nowcoder.com/acm/contest/12478/C 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 2秒&#xff0c;其他语言4秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld 题目描述 在3月6日&#xff0c;作为队内数…

Poetry

1. Absence to love is what wind is to fire. It extinguishes the small; It inflames the great. 2. It is a truth universally acknowledged that a single man in possession of a single man in possession of a good fortune must be in want of a wife. 转载于:https:…

互联网大脑的发育与元宇宙的兴起

2021年10月2日&#xff0c;《互联网大脑的发育与元宇宙的兴起》是远望智库数字大脑研究院院长刘锋博士受奇点O论坛的邀请所做的一个发言&#xff0c;从互联网大脑模型的发育角度&#xff0c;探讨了元宇宙兴起的原因和规律&#xff0c;同时对元宇宙面临的问题和对产业的影响进行…

linux的常用操作——用户的添加、删除和查看

linux的常用操作——用户的添加、删除和查看#1.添加用户&#xff08;用户名无大写字母&#xff09; sudo adduser mumu passwd mumu #添加密码#2.添加用户&#xff08;用户名中含有大写字母&#xff09; #首先创建用户所属组 sudo groupadd MuMu #创建用户&#xff08;s:shell,…

小凡做蛋糕(Python)

链接&#xff1a;https://ac.nowcoder.com/acm/contest/12478/G 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 65536K&#xff0c;其他语言131072K 64bit IO Format: %lld 一开始把整个二维数组填好了&#xff0c;然后…

对于使用progisp软件进行ISP编程时进入不了编程模式的解决方法

目录 对于使用progisp软件进行ISP编程时无法进入编程模式的解决方法前提说明Win10 解决方法Win10 "禁用强制驱动程序签名"Win10 手动安装驱动。Win7解决方法Win7 "禁用强制驱动程序签名"Win7 手动安装驱动说明标题: 对于使用progisp软件进行ISP编程时无法进…

陈杰院士:多无人系统协同中的人工智能安全探索

来源&#xff1a;中国工程院院刊作者&#xff1a;施文、王楷文、俞成浦、孙健、陈杰&#xff0c;控制理论与控制工程专家、中国工程院院士。多无人系统协同作为一项人工智能的颠覆性技术&#xff0c;将在空间上分布的无人系统有机连接起来&#xff0c;在给社会创造价值的过程中…

linux的常用操作——查看和修改文件权限

linux的常用操作——查看和修改文件权限#1.查看当前用户 whoami#2.查看文件权限(r:read;w:write,x:execute) ls -l#3.修改文件\目录权限 chmod [who][][-][][mode] [文件名] #[who] u:文件所有者;g:文件所属组;o:其他人;a:所有人 #[]:增加权限;[-]:减少权限;[]:覆盖原来权限 su…

圆的交点 (Python)

链接&#xff1a;https://ac.nowcoder.com/acm/contest/12478/D 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld 2&#xff0c;1的样例 一层一层找规律…