怎么更改sql的实例版本_学会复杂一点的SQL语句:Oracle DDL和DML
create:创建表创建用户创建视图
创建表
create table student(id int,score int) ;
student后面与括号之间可以有空格可以没有
创建用户
create user liuyifei identified by 4852396;
drop:删除整个表、删除指定的用户、删除指定的存储空间
drop table table_name;drop user user_name;--删除空的表空间,但是不包含物理文件drop tablespace tablespace_name;--删除非空表空间,但是不包含物理文件drop tablespace tablespace_name including contents;--删除空表空间,包含物理文件drop tablespace tablespace_name including datafiles;--删除非空表空间,包含物理文件drop tablespace tablespace_name including contents and datafiles;--如果其他表空间中的表有外键等约束关联到了本表空间中的表的字段,就要加上CASCADE CONSTRAINTSdrop tablespace tablespace_name including contents and datafiles CASCADE CONSTRAINTS;
truncate
删除表中的所有数据,但是表还是存在的。和drop的先后参见如下:
SQL> create table st1(id int);表已创建。SQL> truncate table st1;表被截断。SQL> drop table st1;表已删除。SQL> create table st1(id int);表已创建。SQL> drop table st1;表已删除。SQL> truncate table st1;truncate table st1 *第 1 行出现错误:ORA-00942: 表或视图不存在
alter:增加删除修改字段
SQL> create table s1(id int,a int,score int);表已创建。SQL> alter table s1 add name varchar2(10);表已更改。SQL>SQL> desc s1; 名称 是否为空? 类型 ----------------------------------------- -------- ---------------------------- ID NUMBER(38) A NUMBER(38) SCORE NUMBER(38) NAME VARCHAR2(10)SQL> alter table s1 drop a;alter table s1 drop a *第 1 行出现错误:ORA-00905: 缺失关键字SQL> alter table s1 drop column a;表已更改。SQL> alter table s1 rename to s2;表已更改。SQL> desc s2; 名称 是否为空? 类型 ----------------------------------------- -------- ---------------------------- ID NUMBER(38) SCORE NUMBER(38) NAME VARCHAR2(10)SQL> desc s1;ERROR:ORA-04043: 对象 s1 不存在SQL> alter table s2 rename column name to sname;表已更改。SQL> desc s2; 名称 是否为空? 类型 ----------------------------------------- -------- ---------------------------- ID NUMBER(38) SCORE NUMBER(38) SNAME VARCHAR2(10)
DML:只对表的数据改变,没有改变表的属性
DML操作之后要进行commit操作才会更改数据库。
select:查询
SQL> select score,sname from s2 where id='2'; SCORE SNAME---------- ---------- 99 ayun
insert:插入记录
SQL> insert into s2 values(1,100,'aming');已创建 1 行。SQL> insert into s2 values(2,99,'ayun');已创建 1 行。SQL> insert into s2 values(3,79,'ahe');已创建 1 行。
delete:删除记录,不改变表的属性。
SQL> delete from s2 where score='100';已删除 1 行。SQL> select * from s2; ID SCORE SNAME---------- ---------- ---------- 2 99 ayun 3 79 aheSQL> delete from s2;已删除2行。SQL> select * from s2;未选定行SQL> desc s2; 名称 是否为空? 类型 ----------------------------------------- -------- ---------------------------- ID NUMBER(38) SCORE NUMBER(38) SNAME VARCHAR2(10)
update:更新记录
SQL> update s2 set score=100 where sname='ahe';已更新 1 行。SQL> select * from s2; ID SCORE SNAME---------- ---------- ---------- 1 100 aming 2 99 ayun 3 100 ahe
DCL:只改变属性
grant:授权
revoke:收回权限
grant语法:GRANT privilege[, ...] ON object[, ...] TO { PUBLIC | GROUP group| username}权限privilege: select:查询 insert:插入 update:更新 delete:删除 rule: all:所有grant select,insert,update on tablename to public;给所有用户授予查询、插入、更新tablename表的权限revoke select,insert,update on tablename from public;//收回所有用户查询、插入、更新tablename表的权限object: table:表 view:视图 sequence:序列 index:索引grant select,insert,update on tablename,viewname,sequencename,indexname to public;public:对所有用户开放权限GROUP groupname:对该组所有用户开放权限username:对指定用户开放权限
给用户授权,connect权限和resource权限。
不给新建用户授予connect权限,新建用户无法通过SID或SERVICE_NAME连接数据库实例。
不给新建用户授予resource权限,新建用户无法创建表。
SQL>SQL> create user liuyifei identified by a4852396;用户已创建。SQL> conn liuyifei/a4852396;ERROR:ORA-01045: user LIUYIFEI lacks CREATE SESSION privilege; logon denied警告: 您不再连接到 ORACLE。SQL> show user;USER 为 ""SQL> conn / as sysdba;已连接。SQL> show user;USER 为 "SYS"SQL> grant connect to liuyifei;授权成功。SQL> conn liuyifei/a4852396;已连接。SQL> show user;USER 为 "LIUYIFEI"SQL> create table stu(id int);create table stu(id int)*第 1 行出现错误:ORA-01031: 权限不足SQL> conn / as sysdba;已连接。SQL> show user;USER 为 "SYS"SQL> grant resource to liuyifei;授权成功。SQL> conn liuyifei/a4852396;已连接。SQL> create table stu(id int);表已创建。
查看指定用户有哪些系统权限
这项操作只可以是dba查看,普通用户是不能查看的,即使是查看自己的。下面的代码已经验证了这个问题。
SQL> select * from dba_tab_privs where grantee=uper('liuyifei');select * from dba_tab_privs where grantee=uper('liuyifei') *第 1 行出现错误:ORA-00942: 表或视图不存在SQL> select * from dba_roles_privs where grantee=uper('liuyifei');select * from dba_roles_privs where grantee=uper('liuyifei') *第 1 行出现错误:ORA-00942: 表或视图不存在SQL> show user;USER 为 "LIUYIFEI"SQL> conn / as sysdba;已连接。SQL> select * from dba_tab_privs where grantee=upper('liuyifei');未选定行SQL> select * from dba_role_privs where grantee=upper('liuyifei');GRANTEE GRANTED_ROLE ADM DEF------------------------------ ------------------------------ --- ---LIUYIFEI CONNECT NO YESLIUYIFEI RESOURCE NO YES
附录1:
truncate和delete的区别
truncate会收回表空间,delete不会收回表空间
附录2:
sys用户和system用户的区别:
SYS用户,缺省始终创建,且未被锁定,拥有数据字典及其关联的所有对象
SYSTEM用户,缺省始终创建,且未被锁定,可以访问数据库内的所有对象
最后,咱给小编:
1. 点赞+关注
2. 点头像关注后多多评论,转发给有需要的朋友。
谢谢!!
怎么更改sql的实例版本_学会复杂一点的SQL语句:Oracle DDL和DML相关推荐
- db2 sql 判断select是否为空_学会复杂一点的SQL语句:Oracle DDL和DML
create:创建表创建用户创建视图 创建表 create table student(id int,score int) ; student后面与括号之间可以有空格可以没有 创建用户 create ...
- PLSQL_案例优化系列_学会应用工具进行SQL整体优化(案例11)
2014-10-11 Creatd By BaoXinjian 一.摘要 从案例中学会应用工具进行SQL整体优化 1. 性能工具 2. 整体性工具要点 3. 案例的分享 4. 思考与总结 二.性能工具 ...
- sql server java类型_使用基本 JDBC 数据类型 - SQL Server | Microsoft Docs
使用基本数据类型Using basic data types 01/29/2021 本文内容 Microsoft JDBC Driver for SQL ServerMicrosoft JDBC Dr ...
- sql not exists用法_牛客网数据库SQL实战详细剖析(5160)(更新完结)
文章来源:大数据肌肉猿 作者:无精疯 这是一个系列文章,总共61题,分6期,有答案以及解题思路,并附上解题的一个思考过程. 具体题目可参考牛客网的SQL实战模块: https://www.nowcod ...
- mysql sql注入漏洞修复_从Java角度修复SQL注入漏洞
很多情况因为过滤不严导致很多网站存在sql注入,这里以用户登陆为例,简单举例 首先创建一个测试的数据库 比较基础,不写创建过程了 java代码如下: packagecn.basic.jdbc;impo ...
- 聊聊SQL语句中 DDL 、DML 、DQL 、DCL 分别是什么
数据库的核心语言就是SQL语言,那 DDL.DML.DQL.DCL 分别是什么?下面谈谈这四者的概念. 一. DDL 语句 二. DML 语句 三. DQL 语句 四. DCL 语句 一. DDL 语 ...
- sql 闩锁 原因_如何识别和解决SQL Server中的热闩锁
sql 闩锁 原因 描述 (Description) In SQL Server, internal latch architecture protects memory during SQL ope ...
- SQL 登录注入脚本_深圳嘉华学校之SQL 注入
SQL Server 2005 联机丛书 SQL Injection 是一种攻击方法,它可以将恶意代码插入到以后将传递给 SQL Server 供分析和执行的字符串中.任何构成 SQL 语句的过程都应 ...
- SQL 登录注入脚本_常见web安全问题,SQL注入、XSS、CSRF,基本原理以及如何防御...
1.SQL注入 原理: 1).SQL命令可查询.插入.更新.删除等,命令的串接.而以分号字元为不同命 令的区别.(原本的作用是用于SubQuery或作为查询.插入.更新.删除--等 的条件式) 2). ...
最新文章
- 指令和伪指令和宏指令区别
- 统一配置数据库连接符的方法
- 重复次数最多的 子串_每日算法系列【LeetCode 424】替换后的最长重复字符
- python合并路径和文件名_Python实例 分割路径和文件名
- 10月21日下午PHP常用函数
- 《淘宝网》质量属性简析
- Python机器学习:多项式回归与模型泛化007偏差方差平衡
- Educoder Matplotlib和Seaborn 三维图 第一关绘制三维图
- 开发工具-Hijson
- 眼镜寿命不仅跟镜架材质有关,还跟习惯有关系!
- 日期类超详解(c++入门)
- Android Studio制作.9图片,看这一篇就够了
- python判断用户名密码是否正确_python实现用户名密码校验
- 【论文阅读】Fully Convolutional Networks for Semantic Segmentation【CVPR,PAMI】
- Jenkins + Gitlab+ Docker + SpringBoot 构建流水线
- veket linux安装到硬盘,安装veket到移动硬盘NTFS分区
- mapi java_Powershell从注册表中查询默认MAPI客户端的例子
- go语言基于time.After通道超时设计和通道关闭close
- 三维场景渲染之天空体生成
- linux服务器安装gmt,linux GMT简易安装
热门文章
- python去重复元素_Python实现去除列表中重复元素的方法总结【7种方法】
- python中装饰器的参数与返回值
- Python基础(六)--类与对象
- 加快读博失败的10种方法
- 刚参加完阿里Java P6面试归来,6点面试经验总结!(含必考题答案)
- 阿里P8架构师谈:高并发网站的监控系统选型、比较、核心监控指标
- 会议交流 | 如何提升推荐系统的可解释性?——DataFunSummit2022知识图谱在线峰会...
- 胡伟 | 面向多实体人机协作消解的对比表生成自动化方法
- (C语言)链表的实现集合的相关操作
- NAACL 2019 | 怎样生成语言才能更自然,斯坦福提出超越Perplexity的评估新方法