0


Oracle数据库 | SQL语句解析

在这里插入图片描述

个人主页:💗wei_shuo的个人主页

🏀 Hello World !🏀

文章目录

一.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 约束类型

约束说明主键确定那些列唯一的标识了各个记录。主键不能是空值(null),并且其值必须是唯一的外键在一种一对多的关系中,将约束添加到多个表。约束确保了如果在一个表的指定列输入一个值,那么该值必须已经存在于另一个表中的相关列中,或者输入的是一个空值(null)唯一确保储存在一个指定列中的所有数据都是唯一的,它与主键约束不同之处是它允许空值(null)检查确保在表中添加数值前满足一个指定的条件为空确保一个指定的列不能包含一个空值(null),只能使用创建表的列一级方法来创建非空约束(not null)
在这里插入图片描述

标签: 数据库 oracle sql

本文转载自: https://blog.csdn.net/weixin_62765017/article/details/127244883
版权归原作者 wei_shuo 所有, 如有侵权,请联系我们删除。

“Oracle数据库 | SQL语句解析”的评论:

还没有评论