自学内容网 自学内容网

达梦数据库基本概念和常见sql

/*创建表空间
CREATE TABLESPACE DJL DATAFILE 'DJL.DBF'
SIZE 256 AUTOEXTEND ON NEXT 5 MAXSIZE 1024;
/*删除表空间*/
/*DROP TABLESPACE DJL;*/
/*查询表空间,用于从数据库中获取所有表空间(tablespace)的相关信息
select * from dba_tablespaces;*/

1.表空间

表空间是存放数据库文件的“仓库”或“硬盘分区”。
它就像一个文件夹,里面用来存储数据库的各种数据(比如表的数据、索引、日志等)。数据库里的表和索引都是按表空间来分配存储位置的。

如果数据库是一栋房子,表空间就是房间,你可以把数据放在不同的房间里。

创建表空间:

CREATE TABLESPACE DJL DATAFILE 'DJL.DBF'
SIZE 256 AUTOEXTEND ON NEXT 5 MAXSIZE 1024;
# CREATE TABLESPACE DJL 表示创建表空间DJL
# DATAFILE 'DJL.DBF' 指定表空间的数据⽂件,可以有多个
# SIZE 256 指定数据⽂件的⼤⼩,这⾥是256M
# AUTOEXTEND ON 指定是否开启数据⽂件⾃动扩展,ON表示开启,OFF表示关闭
# NEXT 5 指定数据⽂件扩展⼀次的容量是多⼤,这⾥是每次扩展5M
# MAXSIZE 1024 指定数据⽂件最多只能扩展到1024M,不能超过1024M

删除表空间:

DROP TABLESPACE DJL;

查询所有表空间:

select * from dba_tablespaces;

2.模式

模式和用户是绑定的,一个用户对应一个模式,模式的名字与用户的名字相同。

模式就是用户名下的“私人工作区”。
一个用户(User)创建的所有表、视图、存储过程等,都属于这个用户的模式。每个用户都有一个独立的模式,它是用户存放自己数据和对象的“文件夹”。

打个比方

  • 假如用户是个人账户,模式就是属于你的文件夹。
  • 比如:
    用户 张三 登录达梦数据库后,张三创建的表、视图都在他的“张三模式”里,别人不能随便访问,除非张三授权。
    如果李四想访问张三的表,需要用 张三.表名 的方式来访问。

创建模式:

CREATE SCHEMA APP;
# APP 模式名

删除模式:

DROP SCHEMA APP;

切换模式:

SET SCHEMA APP; # 切换到APP模式

查看当前模式:

select sys_context('USERENV','CURRENT_SCHEMA');

3.角色

角色就像一个职位,比如“经理”、“普通员工”。

经理有管理权限,员工只能操作自己的数据。你只需要告诉数据库“张三是经理”,就自动给张三赋予了经理的权限。

常见角色:

  • CONNECT:让用户能登录数据库。
  • RESOURCE:让用户能创建表、视图等对象。
  • DBA:管理员,拥有所有权限。

创建⻆⾊:

CREATE ROLE DJLDBA;

删除⻆⾊:

DROP ROLE DJLDBA;

查看⻆⾊:

#查看所有⻆⾊
SELECT * FROM DBA_ROLES;
#查看指定⽤户的⻆⾊
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'USERNAME';

4.用户

用户就是数据库的登录账号,类似你登录某个系统的用户名。
一个用户可以创建自己的数据(比如表、视图等),也可以通过分配的权限访问别人创建的数据。

系统⾃动创建的三个系统⽤户:

SYSDBA(系统管理员):拥有管理数据库的最⾼权限。他负责管理各种数据库对

象,如⽤户、⻆⾊、表、视图、存储过程等的创建、修改和删除。

SYSAUDITOR(审计管理员):拥有审计相关的默认权限。他负责开启和关闭审计功

能,对指定的主体或客体启⽤/禁⽤指定类型的审计,查询和管理审计结果,以及管理审

计相关权限。

SYSSSO(安全管理员):主要负责与安全性相关的操作。他拥有创建加密机、对主

体或客体定义/应⽤/删除安全策略、制定⿊⽩名单规则以及管理安全相关权限等职责。

创建用户:

CREATE USER username IDENTIFIED BY 'password';
#创建⽤户并指定模式
CREATE USER username IDENTIFIED BY 'password' DEFAULT SCHEMA schema_
name;

删除用户:

DROP USER username;
#若⽤户存在数据对象,则不能删除。

修改用户:

ALTER USER username IDENTIFIED BY 'new_password';

查看用户:

#查询所有⽤户
select * from dba_users;
#查看当前⽤户
SELECT user FROM DUAL;

5.表:

创建表:

CREATE TABLE 模式名.表名 (
 id INT PRIMARY KEY,
 name VARCHAR(100),
 sex VARCHAR(10)
);

删除表:

DROP TABLE 模式名.表名;

插⼊数据:

INSERT INTO 模式名.表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);

删除数据:

DELETE FROM 模式名.表名 [WHERE 条件];

清空数据:

TRUNCATE TABLE 模式名.表名;

查询数据:

SELECT column1, column2, ...
FROM 模式名.表名
[WHERE 条件]
[GROUP BY 列名]
[ORDER BY 列名 [ASC|DESC]]
[HAVING 条件];

6.视图

创建视图:

CREATE VIEW 模式名.视图名 AS
SELECT id, name, department FROM 模式.表名;

删除视图:

DROP VIEW 模式名.视图名;

查询视图:

SELECT * FROM USER_VIEWS;

7.创建索引:

创建索引

# 单列索引
CREATE INDEX 索引名 ON 表名(列名);
# 复合索引
CREATE INDEX 索引名 ON 表名(列名1, 列名2, ...);
# 唯⼀索引
CREATE UNIQUE INDEX 索引名 ON 表名(列名);

删除索引

DROP INDEX 索引名;

8.DM常⻅的查询语句:

# 查看当前的数据库
select name from V$database;
# 查看当前的实例名
select instance_name from v$instance;
# 查看当前数据库的状态
select status$ from v$instance;
# 查看数据库所有的数据⽂件
select path from v$datafile;

9.赋予和收回权限:

GRANT 权限 TO ⽤户或⻆⾊;
REVOKE 权限 FROM ⽤户或⻆⾊;

原文地址:https://blog.csdn.net/qq_62859013/article/details/144114786

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!