一、oracle创建数据库
(一)第一种方法:DBCA方法
使用Oracle的Database Configuration Assistant(数据库配置助手:简称DBCA),进行配置即可。
(二)第二种方法:创建表空间
1、创建表空间
(1)语法:create tablespace 表空间名字 datafile 'E:\app\owner\oradata\orcl\monitor.dbf' size 1024M;
注意:datafile:数据文件 存储位置路径:为绝对路径\表空间名字.dbf(后缀:.dbf) size:表示表空间的大小
2、创建用户,并建立和表空间的映射关系 (1)语法:create user 用户名 identified by 密码 default tablespace 表空间名字; //用于指定用户与表空间的映射关系。
注意:default tablespace 表空间的名字 用于指定用户与表空间的映射关系。
3、给用户授予权限
(1)语法:grant dba to 用户名;
注意:dba:拥有全部特权,只有dba才可以创建数据库结构;Resource:只可以创建实体;Connect:只能登陆Oracle 。
(三)oracle使用sqlplus软件导入脚本
1、导入脚本格式:@+文件的绝对路径;(在sqlplus上)
例如:sql>@D:/test.sql
二、mysql创建数据的三种方法
mysql参考文档:https://www.cnblogs.com/jiangxiaobo/p/7089345.html
(一)第一种方法:使用create命令
1、登录mysql数据库:mysql -u 用户名 -p;输入密码进入终端。
2、使用create命令创建数据库。
(1)语法:create database 数据库名;
(二)第二种方法:使用mysqladmin命令
1、mysqladmin语法:mysqladmin -u 用户名 -p create 数据库名;
(三)第三种方法:使用脚本创建数据库
1、新建.txt文件,输入相关SQL语句,如下:
drop database if exists DBName;
create database DBName;
use DBName;
create table t_User
(
userId int unsigned primary key not nullauto_increment,
name varchar(20) not null,
pass varchar(20) not null,
type varchar(10) not null,
address varchar(100) not null,
postCode varchar(6) not null,
phoneNumber varchar(11) not null,
email varchar(30) not null
);
2、保存并修改后缀为:文件名.sql;
3、登录数据库,使用source命令执行脚本;
(1)source语法:source 文件路径.sql;
三、oracle常用命令语法
(一)复制表
1、第一种方法:create table 新表 as select * from 旧表;
注意:一定不要落下as。
2、第二种方法:先创建旧表的表结构,在导入数据。
(1)create table 新表 as select * from 旧表 where 1=0;
(2)insert into 新表 select * from 旧表;
注意:其中使用insert into select需要建立一个新表来接受;
3、select into的用法:
而select into from 要求目标表不存在,在插入数据时,会自动创建目标表。
select into from在sqlplus中会报错,提示缺失关键字,原因:不能单独作为一条sql语句执行,一般在PL/SQL程序块(block)中使用。可使用前两个语句。
使用select 数据库字段 into 变量名; 语句给变量赋值,即用该语句给定义的变量赋数据库表中字段的值。
例如:select ename into test from emp where empno=7839;
注意:使用select into语句赋值,查询结果应该是只有一个,因为变量只能接受一个结果。
(二)分页查询
select num,empno,ename from (select rownum num,empno,ename from emp_zyx where rownum <10) where num>5;
(三)查询数据库名
1、select name from v$database;
2、show parameter db;
(四)查找数据库中全部表名;
1、select table_name from user_tables;
(五)删除用户和数据库(删除数据库,通过删除表空间即可实现)
1、删除User
drop user username cascade;(cascade:表示该用户创建了表或者索引)
2、删除表空间(tablespace)(要删除数据文件,只能删除其所属的表空间)
drop tablespace tablespacename including contents and datafiles;
3、删除空的表空间,但是不包含物理文件
drop tablespace tablespace_name;
4、删除非空表空间,但是不包含物理文件
drop tablespace tablespace_name including contents;
5、删除空表空间,包含物理文件
drop tablespace tablespace_name including datafiles;
6、删除非空表空间,包含物理文件
drop tablespace tablespace_name including contents and datafiles;
7、如果其他表空间中的表有外键等约束关联到了本表空间中的表的字段,就要加上CASCADE CONSTRAINTS
drop tablespace tablespace_name including contents and datafiles CASCADE CONSTRAINTS;
四、数据库和表空间
表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象(就是用户的表)都存放在指定的表空间中。但主要存放的是表, 所以称作表空间。
(一)表空间
1、用户的表都存放在表空间中,一个数据库可以包含多个表空间(不同于其他数据库的概念),创建数据库就是创建表空间。
2、查看所有的表空间: select tablespace_name from dba_tablespaces;
3、查看所有的表空间: select tablespace_name from dba_tablespaces;
4、未使用的表空间大小 (单位是M) select tablespace_name,sum(bytes)/1024/1024 from dba_free_space group by tablespace_name;
5、查看所有表空间大小(单位是M)
select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;
(二)数据库
数据库是数据的集合,包括数据文件(ora,dbf),控制文件,重做日志文件即一些物理 上的文件。 数据库的用户数据存放在数据文件中,数据文件存放在表空间中,一个表空间可以包含多个数据文件,但是一个数据文件只能属于一个表空间。
(三)数据库字典
1、 数据字典是oracle存放有关数据库信息的地方,几乎所有的系统信息和对象信息都可在数据字典中进行查询。数据字典是oracle数据库系统的信息核心,它是一组提供有关数据库信息的表和视图的集合,这些表和视图是只读的。
2、 数据字典的结构是基表和视图,记录了数据库的系统信息, 其所有者为SYS。它由内部RDBMS(X$)表,数据字典表($),动态性能视图(v$)和数据字典视图(all_,user_,dba_)组成。
3、Oracle中的数据字典有静态和动态之分。静态数据字典主要是在用户访问数据字典时不会发生改变的,但动态数据字典是依赖数据库运行的性能的,反映数据库运行的一些内在信息,所以在访问这类数据字典时往往不是一成不变的。
4、数据字典中的表时不能直接被访问的,但是可以访问数据字典中的视图。他们分为三类:三个前缀够成:user_*、 all_*、 dba_*。分别如下:
(1)user_对象视图:描述了当前用户schema下的对象;
(2)all_对象视图:描述了 当前用户有权限访问到的所有对象的信息;
(3)dba_对象视图:描述了包含所有数据库对象的信息;
注意:在创建数据库时会运行两个脚本。先运行catalog.sql,该脚本用来创建数据库的内部字典表。然后再运行catrpoc.sql,该脚本用来创建数据库内建的存储过程、包等pl\sql对象。如果我们是使用dbca来创建数据库,则dbca会自动调用这两个脚本。否则在执行create database命令来创建时,则需要手工运行这两个脚本。
5、数据字典视图非常多,我们无法一一记住,但是有个视图,我们必须知道,那就是dictionary视图,该视图里记录了所有的数据字典视图的名称。所以当我们需要查找某个数据字典而又不知道这个信息在哪个视图里的时候,就可以在dictionary视图里找。该视图还有个同名词dict。
6、动态性能视图,就是指将内存里的数据或控制文件里的数据以表的形式展现出来。为了能够让我们更好的管理数据库的性能,所以将内存里的活动情况以表的形式展现出来。只要数据库还在运行,就会不断更新动态性能视图。一旦数据库关闭或崩溃,动态性能视图里的数据就会全部丢失,下次重启时则会重新计算。就像所有的数据字典的名词都存在dictionary里一样,v$fixed_table里存放了所有的动态性能视图的名称。所有的动态性能的属主都是sys,且都以v$开头,创建同名词时则都以v$开头。


被折叠的 条评论
为什么被折叠?



