Oracle数据库 | SQL语句解析

简介: Oracle数据库 | SQL语句解析

一.Oracle启动及登录


1.1 服务手启动即关闭


服务名称:

OracleOraDB19Home1TNSListener

OracleServiceORACLE

手动启动服务方法:

net start 服务名称

手动关闭服务方法:

net stop 服务名称


1.2 SQL* PLUS命令


(1)登录:sqlplus/nolog
(2)连接数据库:conn 用户名/密码(as sysdba)
(3)修改用户密码(例:修改sys的密码为123):alter user sys identified by 123;
   管理员用户打开cmd:
        win + R -> cmdd
//查看表空间
select tablespace_name from dba_tablespaces;
//连接数据库
sqlplus system/root@mydb1
sqlplus system/密码@数据库名
//查看当前正在使用的数据库
select name from v$database;
//显示当前可用命令
help index
//查看命令的用法
help 具体命令
//创建用户(此时用户没有权限连接数据库)
 create user test identified by root;
//如果是容器数据库,用户名必须是c## ,即
 create user c##test identified by root;
//用system用户连接数据库,给test用户授权
 grant connect to test;
//显示当前用户
show user;
//查看所有系统变量值
show all
//设置变量值自动提交
set autocommit no
//清屏
clear screen
//创建sql文件
//edit  文件路径/文件名

二. 表的创建和维护


2.1 创建表


  • 用create table创建表以存储数据
create table acctmanager(
   amid number(4),
   amname varchar(20),
   amedate date dafault sysdate,
   amweight number (4,2),
   region char(2)
);
  • 使用desc查看表的结构
describe acctmanager;
注意:describe 是SQL*PLUS命令二而不是SQL命令,可简写为desc tableanme
  • 通过子查询创建表
 create table manager as (select amid, aname from acctmanager);

2.2 修改表


  • 使用alter table 添加一列
 alter table acctmanager add(tel number(11));
 //查看表结构
 desc acctmanager;
  名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 AMID                                               NUMBER(4)
 ANAME                                              VARCHAR2(20)
 AMEDATE                                            DATE
 AMWEIGHT                                           NUMBER(4,2)
 REGION                                             CHAR(2)
 TEL                                                NUMBER(11)
  • 使用alter table 修改一列
alter table acctmanager modify(tel number(10));
 //查看表结构
 desc acctmanager;
  名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 AMID                                               NUMBER(4)
 ANAME                                              VARCHAR2(20)
 AMEDATE                                            DATE
 AMWEIGHT                                           NUMBER(4,2)
 REGION                                             CHAR(2)
 TEL                                                NUMBER(10)
  • 使用alter table删除一列


可以通过alter table…drop column语句完成


(1)与带有add 或modify 的子句的alter table命令不同, drop column子句只能引用一个列


(2)如果从表中删除一列,那么删除将是永久的,如果不小心从表中错误的删除了列,那么不能“取消”这种损坏,唯一的选择是将这一列重新添加到表中,然后重新输入以前包含的所有数据


(3)不能删除表中剩余的最后一列,如果一个表只剩下最后一列并尝试删除这一列,那么这个命令将会失败,并返回一个错误信息


(4)该字句将删除列及其内容,所以使用是要格外去小心

alter table acctmanager drop column tel;
//查看表结构
 desc acctmanager;
  名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 AMID                                               NUMBER(4)
 ANAME                                              VARCHAR2(20)
 AMEDATE                                            DATE
 AMWEIGHT                                           NUMBER(4,2)
 REGION                                             CHAR(2)
  • 使用alter table…set unused /drop unused colunms命令
//将acctmanager表中区域经理ID(amid)字段设置为不可用列并使用功能select语句进行查看结果
alter table acctmanager set unused (amid);
select * from acctmanager;
ANAME                                    AMEDATE          AMWEIGHT REGI
---------------------------------------- -------------- ---------- ----
张三                                     15-9月 -22             50 ji
//将acctmanager表中的区域经理ID(amid)不可用列删除掉
alter table acctmanager drop unused columns;

2.3 重命名表


在一个组织工作中,不要更改其他用户访问的表的名称,除非事先通知某用户新的表的名称


//将acctmanager表改名为accma
rename acctmanager to accma;
//用select查询
select * from accma;
ANAME                                    AMEDATE          AMWEIGHT REGI
---------------------------------------- -------------- ---------- ----
张三                                     15-9月 -22             50 ji

2.4 截断表


如果只需要删除表内数据,而保留表结构,可以使用truncate table语句截断表


格式语法: truncate table table_name;

truncate table accma;
//查看表数据
select * from accma;
未选定行
//查看表结构
 desc accma;
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 ANAME                                              VARCHAR2(20)
 AMEDATE                                            DATE
 AMWEIGHT                                           NUMBER(4,2)
 REGION                                             CHAR(2)

2.5 删除表


当不需要表时,可以使用drop table 语句删除表,drop table 将表结构和表数据一起删除


语法格式: drop table table_name;

drop table accma;
表已删除。
//查看表结构
desc accma;
ERROR:
ORA-04043: 对象 accma 不存在

三. 数据完整性与约束


3.1 约束类型

微信截图_20221014071806.png

目录
相关文章
|
9天前
|
SQL 存储 Oracle
Oracle的PL/SQL定义变量和常量:数据的稳定与灵动
【4月更文挑战第19天】在Oracle PL/SQL中,变量和常量扮演着数据存储的关键角色。变量是可变的“魔术盒”,用于存储程序运行时的动态数据,通过`DECLARE`定义,可在循环和条件判断中体现其灵活性。常量则是不可变的“固定牌”,一旦设定值便保持不变,用`CONSTANT`声明,提供程序稳定性和易维护性。通过 `%TYPE`、`NOT NULL`等特性,可以更高效地管理和控制变量与常量,提升代码质量。善用两者,能优化PL/SQL程序的结构和性能。
|
5天前
|
SQL 分布式计算 资源调度
一文解析 ODPS SQL 任务优化方法原理
本文重点尝试从ODPS SQL的逻辑执行计划和Logview中的执行计划出发,分析日常数据研发过程中各种优化方法背后的原理,覆盖了部分调优方法的分析,从知道怎么优化,到为什么这样优化,以及还能怎样优化。
|
9天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL游标属性:数据的“导航仪”与“仪表盘”
【4月更文挑战第19天】Oracle PL/SQL游标属性如同车辆的导航仪和仪表盘,提供丰富信息和控制。 `%FOUND`和`%NOTFOUND`指示数据读取状态,`%ROWCOUNT`记录处理行数,`%ISOPEN`显示游标状态。还有`%BULK_ROWCOUNT`和`%BULK_EXCEPTIONS`增强处理灵活性。通过实例展示了如何在数据处理中利用这些属性监控和控制流程,提高效率和准确性。掌握游标属性是提升数据处理能力的关键。
|
9天前
|
SQL Oracle 安全
Oracle的PL/SQL循环语句:数据的“旋转木马”与“无限之旅”
【4月更文挑战第19天】Oracle PL/SQL中的循环语句(LOOP、EXIT WHEN、FOR、WHILE)是处理数据的关键工具,用于批量操作、报表生成和复杂业务逻辑。LOOP提供无限循环,可通过EXIT WHEN设定退出条件;FOR循环适用于固定次数迭代,WHILE循环基于条件判断执行。有效使用循环能提高效率,但需注意避免无限循环和优化大数据处理性能。掌握循环语句,将使数据处理更加高效和便捷。
|
9天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL条件控制:数据的“红绿灯”与“分岔路”
【4月更文挑战第19天】在Oracle PL/SQL中,IF语句与CASE语句扮演着数据流程控制的关键角色。IF语句如红绿灯,依据条件决定程序执行路径;ELSE和ELSIF提供多分支逻辑。CASE语句则是分岔路,按表达式值选择执行路径。这些条件控制语句在数据验证、错误处理和业务逻辑中不可或缺,通过巧妙运用能实现高效程序逻辑,保障数据正确流转,支持企业业务发展。理解并熟练掌握这些语句的使用是成为合格数据管理员的重要一环。
|
9天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL表达式:数据的魔法公式
【4月更文挑战第19天】探索Oracle PL/SQL表达式,体验数据的魔法公式。表达式结合常量、变量、运算符和函数,用于数据运算与转换。算术运算符处理数值计算,比较运算符执行数据比较,内置函数如TO_CHAR、ROUND和SUBSTR提供多样化操作。条件表达式如CASE和NULLIF实现灵活逻辑判断。广泛应用于SQL查询和PL/SQL程序,助你驾驭数据,揭示其背后的规律与秘密,成为数据魔法师。
|
1月前
|
SQL 关系型数据库 API
Star 4.7k!高效SQL Parser!纯Python开发!自称目前最快的纯Python SQL解析器!
Star 4.7k!高效SQL Parser!纯Python开发!自称目前最快的纯Python SQL解析器!
|
1月前
|
SQL Oracle 关系型数据库
Oracle系列十一:PL/SQL
Oracle系列十一:PL/SQL
|
5月前
|
SQL Oracle 关系型数据库
本机不安装Oracle客户端,使用PL/SQL Developer连接远程数据库
本机不安装Oracle客户端,使用PL/SQL Developer连接远程数据库
142 0
|
SQL 程序员 数据库
【python】连接sql server数据库,并实现简单的增删改查(1)
Python编程语言越来越受到大家的喜爱,本篇文章就从链接微软数据库进行增删改查操作的讲解
527 0

热门文章

最新文章

推荐镜像

更多