Oracle与MySql知识汇总 oracle与mysql的sql语句区别
bigegpt 2024-10-12 05:40 15 浏览
- sqlplus 连接数据库的方式
- 1> cmd 中输入:sqlplus 用户名/密码@数据库实例
- 如:sqlplus system/lxr316@oracle,
- sqlplus sys/admin as sysdba
- 2> 打开sqlplus 直接输入用户名和密码
- 3> 使用命令:connect sys/admin as sysdba,
- connect system/lxr316
- 4> 超级管理员登录:sys as sysdba
- 断开数据库:disconn(ect);
- MySql连接
- cmd中输入:mysql [–h服务器地址] –u用户名 –p[密码](需要配置mysql数据库的bin到环境变量中)
- 如:mysql -hlocalhost –uroot –proot
- mysql –uroot -p
- 用户操作
- Oracle:
- 1> 创建用户
- create user 名称 identified by 密码;
- 2> 修改用户密码
- alter user 用户名 identified by 新密码;
- 3> 账户上锁、解锁
- alter user 用户名 account lock|unlock;
- 4> 用户首次登录时直接修改密码–密码失效
- alter user 用户名 password expire;
- MySql:
- MySql:
- 1> 创建用户:
- CREATE USER ‘username’@’host’ IDENTIFIED BY ‘password’;
- username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器。
- 例如:
- CREATE USER ‘dog’@’localhost’ IDENTIFIED BY ‘123456’;
- CREATE USER ‘pig’@’192.168.1.101_’ IDENDIFIED BY ‘123456’;
- CREATE USER ‘pig’@’%’ IDENTIFIED BY ‘123456’;
- CREATE USER ‘pig’@’%’ IDENTIFIED BY ”;
- CREATE USER ‘pig’@’%’;
- 2> 设置与更改用户密码
- SET PASSWORD FOR ‘username’@’host’=PASSWORD(‘newpassword’);
- 如果是当前登陆用户用:SET PASSWORD = PASSWORD(“newpassword”);
- 例子: SET PASSWORD FOR ‘pig’@’%’ = PASSWORD(“123456”);
- 3> 删除用户
- DROP USER ‘username’@’host’;
- 权限管理
- Oracle:
- 1> 授权
- grant 权限 to 用户名;
- grant all on 表名 to 用户/角色
- 2> 收回权限
- revoke 权限 from 用户名;
- 对象权限可以级联收回,但是系统权限不可以级联收回。
- (1) 系统权限: A赋予一个系统权限给B,B再授予C.然后A将该权限从B回收. 此后,C仍然有该权限.
- (2) 对象权限: A赋予一个对象权限给B,B再授予C.然后A将该权限从B回收. 此后,C也失去了该权限
- 3> 常用系统权限
- create session –用户登录
- create table –创建表
- unlimited tablespace –无限表空间
- 4> 对象权限
- select on 表名
- update on 表名
- delete on 表名
- insert on 表名
- 5> 权限的级联授予
- 系统权限 with admin option
- 对象权限 with grant option
- grant 权限 to 用户名 with admin option|with grant option;
- MySql:
- 1> 授权:
- GRANT privileges ON databasename.tablename TO ‘username’@’host’
- privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等.如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用表示, 如.*。
- 例子:
- GRANT SELECT, INSERT ON test.user TO ‘pig’@’%’;
- GRANT ALL ON . TO ‘pig’@’%’;
- 注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
- GRANT privileges ON databasename.tablename TO ‘username’@’host’ WITH GRANT OPTION;
- 2> 撤销用户权限
- REVOKE privilege ON databasename.tablename FROM ‘username’@’host’;
- 说明: privilege, databasename, tablename - 同授权部分.
- 例子: REVOKE SELECT ON . FROM ‘pig’@’%’;
- 注意: 假如你在给用户’pig’@’%’授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO ‘pig’@’%’, 则在使用REVOKE SELECT ON . FROM ‘pig’@’%’;命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON . TO ‘pig’@’%’;则REVOKE SELECT ON test.user FROM ‘pig’@’%’;命令也不能撤销该用户对test数据库中user表的Select 权限。
- 具体信息可以用命令SHOW GRANTS FOR ‘pig’@’%’; 查看。
- Oracle角色role
- 角色:权限的集合
- 查看当前用户中的角色 user_role_privs
- 查看角色中的系统权限 role_sys_privs
- 查看角色中的对象权限 role_tab_privs
- 1> 建一个角色
- create role role1;
- 2> 授权给角色
- grant create any table,create procedure to role1;
- 3> 授予/回收用户角色
- grant role1 to user1;
- revoke role1 from user1;
- 4> 创建带有口令以角色(在生效带有口令的角色时必须提供口令)
- create role role1 identified by password1;
- 5> 修改角色:是否需要口令
- alter role role1 not identified;
- alter role role1 identified by password1;
- 6> 设置当前用户要生效的角色
- set role role1;//使role1生效
- set role role1,role2;//使role1,role2生效
- //使用带有口令的role1生效
- set role role1 identified by password1;
- set role all;//使用该用户的所有角色生效
- set role none;//设置所有角色失效
- //除role1外的该用户的所有其它角色生效。
- set role all except role1;
- select * from SESSION_ROLES;//查看当前用户的生效的角色。
- 7> 修改指定用户,设置其默认角色
- alter user user1 default role role1;
- alter user user1 default role all except role1;
- 8> 删除角色
- drop role role1;
- 角色删除后,原来拥用该角色的用户就不再拥有该角色了,相应的权限也就没有了。
- 9> 系统角色
- DBA: 拥有全部特权,是系统最高权限角色;
- RESOURCE:拥有Resource角色权限的用户只可以创建实体;
- CONNECT:拥有Connect角色权限的用户只可以登录Oracle;
- 对于普通用户:授予connect, resource角色权限。
- 对于DBA管理用户:授予connect,resource, dba角色权限。
- 查看表结构信息命令
- Oracle:
- desc(ribe) 表名 如:desc lxr
- MySql:
- desc(ribe) 表名;
- 显示当前登录用户:
- Oracle:show user
- MySql:select user();
- MySql查看用户下的数据库:show databases;
- 查看数据库:show databases;
- 查看表:show tables;
- Oracle用户锁定与解锁
- ALTER USER username ACCOUNT LOCK;–锁定用户
- ALTER USER username ACCOUNT UNLOCK;–解锁用户
- Sqlplus清屏命令
- clear screen 简写:cl scr (dos清屏命令: cls)
- Oracle更改当前用户日期格式命令
- alter session set nls_date_format=’yyyy-mm-dd’;
- Oracle中的基本数据类型
- 数值 number(5,2), int: 999.99
- 字符 char,varchar2(4000)
- 日期 date
- 图片 BLOB (binaryLargeObject) 4G
- 文本 CLOB (Character LargeObject) 4G
- Oracle表结构操作
- 1> 表重命名
- alter table 表名 rename to 新表名;
- 2> 给表增加注释
- comment on table表名 is ’注释内容’;
- 3> 添加约束方式
- a) alter table 表名 add constraint 约束名 约束类型(约束的字段名);
- constraint约束类型:
- primary key 主键
- unique 唯一
- check 限制
- not null 不能为null
- b) alter table 表名 add constraint 约束名 foreign key(字段名) references 表名(字段名);
- foreign key 外键
- 参照主键中存在的值,可以插入重复的记录、可以插入重复的空值
- 4> 删除约束方式
- alter table 表名 drop constraint 约束名;
- 5> 删除表结构
- drop table 表名;(此操作属DDL,会自动提交且不可回滚)
- 6> 表中增加字段
- alter table 表名 add 字段名 类型;
- 7> 删除字段
- alter table 表名 drop(字段名);
- (通常在系统不忙的时候删除不使用的字段,可以先设置字段为unused:
- alter table test3 set unused column address;
- 再执行删除:
- alter table test3 unused column;)
- 8> 字段重命名
- alter table 表名 rename column 字段名 to 新字段名;
- 9> 修改字段
- alter table 表名 modify 字段名 新类型;
- –添加not null
- alter table 表名 modify 字段名 not null
- –删除not null
- alter table 表名 modify 字段名 null;
- Oracle备份表
- 1> 在当前的数据库之内进行备份
- create table 表名(字段) as select 查询语句
- 数据的移动
- insert into 表名(字段列表) select 字段列表 from 表名
- 2> 数据库服务器之间拷贝表
- 知识点:客户端连接服务器
- copy from system/hhl@hhl create hhl_table using select * from scott.emp;
- a) 从A服务器拷贝到自己的数据库中
- copy from 用户名/密码@主机字符串 create 表名 using 查询语句;
- b) 从自己的数据库中拷贝到A服务器
- copy to 用户用/密码@主机字符串 create 表名 using 查询语句;
- c) 从A服务器拷贝表到B服务器
- copy from 用户用/密码@主机字符串 to 用户用/密码@主机字符串 create 表名 using 查询语句;
- Oracle DBLINK 数据库连接
- 在当前的数据库内直接操作其他服务器中的表做增删改查,格式如下:
- create database link 名 connect to 用户名 identified by 密码 using ‘主机字符串’;
- MySql查看数据库字符集:
- show variables like ‘character%’;
- show variables like ‘%collation%’;
- truncate与delete
- 1> 使用格式
- truncate table 表名;–删除表中全部记录s
- delete from 表名;
- 2> truncate 与delete 的区别
- truncate 删除速度比delete删除速度快
- truncate 不可以回滚,delete 可以回滚。
相关推荐
- 当Frida来“敲”门(frida是什么)
-
0x1渗透测试瓶颈目前,碰到越来越多的大客户都会将核心资产业务集中在统一的APP上,或者对自己比较重要的APP,如自己的主业务,办公APP进行加壳,流量加密,投入了很多精力在移动端的防护上。而现在挖...
- 服务端性能测试实战3-性能测试脚本开发
-
前言在前面的两篇文章中,我们分别介绍了性能测试的理论知识以及性能测试计划制定,本篇文章将重点介绍性能测试脚本开发。脚本开发将分为两个阶段:阶段一:了解各个接口的入参、出参,使用Python代码模拟前端...
- Springboot整合Apache Ftpserver拓展功能及业务讲解(三)
-
今日分享每天分享技术实战干货,技术在于积累和收藏,希望可以帮助到您,同时也希望获得您的支持和关注。架构开源地址:https://gitee.com/msxyspringboot整合Ftpserver参...
- Linux和Windows下:Python Crypto模块安装方式区别
-
一、Linux环境下:fromCrypto.SignatureimportPKCS1_v1_5如果导包报错:ImportError:Nomodulenamed'Crypt...
- Python 3 加密简介(python des加密解密)
-
Python3的标准库中是没多少用来解决加密的,不过却有用于处理哈希的库。在这里我们会对其进行一个简单的介绍,但重点会放在两个第三方的软件包:PyCrypto和cryptography上,我...
- 怎样从零开始编译一个魔兽世界开源服务端Windows
-
第二章:编译和安装我是艾西,上期我们讲述到编译一个魔兽世界开源服务端环境准备,那么今天跟大家聊聊怎么编译和安装我们直接进入正题(上一章没有看到的小伙伴可以点我主页查看)编译服务端:在D盘新建一个文件夹...
- 附1-Conda部署安装及基本使用(conda安装教程)
-
Windows环境安装安装介质下载下载地址:https://www.anaconda.com/products/individual安装Anaconda安装时,选择自定义安装,选择自定义安装路径:配置...
- 如何配置全世界最小的 MySQL 服务器
-
配置全世界最小的MySQL服务器——如何在一块IntelEdison为控制板上安装一个MySQL服务器。介绍在我最近的一篇博文中,物联网,消息以及MySQL,我展示了如果Partic...
- 如何使用Github Action来自动化编译PolarDB-PG数据库
-
随着PolarDB在国产数据库领域荣膺桂冠并持续获得广泛认可,越来越多的学生和技术爱好者开始关注并涉足这款由阿里巴巴集团倾力打造且性能卓越的关系型云原生数据库。有很多同学想要上手尝试,却卡在了编译数据...
- 面向NDK开发者的Android 7.0变更(ndk android.mk)
-
订阅Google官方微信公众号:谷歌开发者。与谷歌一起创造未来!受Android平台其他改进的影响,为了方便加载本机代码,AndroidM和N中的动态链接器对编写整洁且跨平台兼容的本机...
- 信创改造--人大金仓(Kingbase)数据库安装、备份恢复的问题纪要
-
问题一:在安装KingbaseES时,安装用户对于安装路径需有“读”、“写”、“执行”的权限。在Linux系统中,需要以非root用户执行安装程序,且该用户要有标准的home目录,您可...
- OpenSSH 安全漏洞,修补操作一手掌握
-
1.漏洞概述近日,国家信息安全漏洞库(CNNVD)收到关于OpenSSH安全漏洞(CNNVD-202407-017、CVE-2024-6387)情况的报送。攻击者可以利用该漏洞在无需认证的情况下,通...
- Linux:lsof命令详解(linux lsof命令详解)
-
介绍欢迎来到这篇博客。在这篇博客中,我们将学习Unix/Linux系统上的lsof命令行工具。命令行工具是您使用CLI(命令行界面)而不是GUI(图形用户界面)运行的程序或工具。lsoflsof代表&...
- 幻隐说固态第一期:固态硬盘接口类别
-
前排声明所有信息来源于网络收集,如有错误请评论区指出更正。废话不多说,目前固态硬盘接口按速度由慢到快分有这几类:SATA、mSATA、SATAExpress、PCI-E、m.2、u.2。下面我们来...
- 新品轰炸 影驰SSD多款产品登Computex
-
分享泡泡网SSD固态硬盘频道6月6日台北电脑展作为全球第二、亚洲最大的3C/IT产业链专业展,吸引了众多IT厂商和全球各地媒体的热烈关注,全球存储新势力—影驰,也积极参与其中,为广大玩家朋友带来了...
- 一周热门
- 最近发表
-
- 当Frida来“敲”门(frida是什么)
- 服务端性能测试实战3-性能测试脚本开发
- Springboot整合Apache Ftpserver拓展功能及业务讲解(三)
- Linux和Windows下:Python Crypto模块安装方式区别
- Python 3 加密简介(python des加密解密)
- 怎样从零开始编译一个魔兽世界开源服务端Windows
- 附1-Conda部署安装及基本使用(conda安装教程)
- 如何配置全世界最小的 MySQL 服务器
- 如何使用Github Action来自动化编译PolarDB-PG数据库
- 面向NDK开发者的Android 7.0变更(ndk android.mk)
- 标签列表
-
- mybatiscollection (79)
- mqtt服务器 (88)
- keyerror (78)
- c#map (65)
- resize函数 (64)
- xftp6 (83)
- bt搜索 (75)
- c#var (76)
- mybatis大于等于 (64)
- xcode-select (66)
- mysql授权 (74)
- 下载测试 (70)
- linuxlink (65)
- pythonwget (67)
- androidinclude (65)
- libcrypto.so (74)
- logstashinput (65)
- hadoop端口 (65)
- vue阻止冒泡 (67)
- jquery跨域 (68)
- php写入文件 (73)
- kafkatools (66)
- mysql导出数据库 (66)
- jquery鼠标移入移出 (71)
- 取小数点后两位的函数 (73)