前言:上一篇安装好oracle和pl/sql后,这篇主要讲如何创建数据库,因为接下来我的项目会连接数据库进行开发。
第一步、先用系统管理员登录pl/sql
我这里系统管理员用户名为system,密码为orcl
第二步、建立表空间
新建sql窗口,我们使用sql语句来创建表空间
create tablespace db_test --表空间名 datafile 'D:\oracle\product\11.2.0\dbhome_1\oradata\orcl\test.dbf' --物理文件 表空间数据文件存放路径 size 50m --大小初始值 autoextend on --自动扩展 next 50m maxsize 20480m --每次扩展50m,最大为20480m extent management local;
f8 运行sql,成功后电脑里会出现TEST.DBF文件。
第三步、创建用户
create user testdev --创建用户名 testdev identified by "test1234" --创建密码 test1234 default tablespace db_test --表空间 db_test temporary tablespace TEMP --临时表空间(默认的) profile DEFAULT --默认权限(下面给分配) quota unlimited on db_test; --该用户在 db_test 表空间里的配额不限
第四步、给用户分配权限
grant all privileges to testdev; -- 执行该语句给 testdev 用户授权,此时 该 用户就可以登录了
第五步、接下来使用test用户登录,就可以建表了。
![](https://i-blog.csdnimg.cn/blog_migrate/0334341f55690e6622f8a961b9fcb73d.png)
根据经验,建表时字段名尽量要避开使用oracle的关键字和保留字。
补充:
oracle查询库中所有表名字段名、字段名说明,查询表的数据条数、表名、中文表名等
--查询所有表名: select t.table_name from user_tables t; --查询所有字段名: select t.column_name from user_col_comments t; --查询指定表的所有字段名: select t.column_name from user_col_comments t where t.table_name = 'BIZ_DICT_XB'; --查询指定表的所有字段名和字段说明: select t.column_name, t.column_name from user_col_comments t where t.table_name = 'BIZ_DICT_XB'; --查询所有表的表名和表说明: select t.table_name,f.comments from user_tables t inner join user_tab_comments f on t.table_name = f.table_name; --查询模糊表名的表名和表说明: select t.table_name from user_tables t where t.table_name like 'BIZ_DICT%'; select t.table_name,f.comments from user_tables t inner join user_tab_comments f on t.table_name = f.table_name where t.table_name like 'BIZ_DICT%'; --查询表的数据条数、表名、中文表名 select a.num_rows, a.TABLE_NAME, b.COMMENTS from user_tables a, user_tab_comments b WHERE a.TABLE_NAME = b.TABLE_NAME order by TABLE_NAME;
oracle 查询表空间的大小及使用情况等sql
--1、查看表空间的名称及大小 SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size FROM dba_tablespaces t, dba_data_files d WHERE t.tablespace_name = d.tablespace_name GROUP BY t.tablespace_name; --2、查看表空间物理文件的名称及大小 SELECT tablespace_name, file_id, file_name, round(bytes / (1024 * 1024), 0) total_space FROM dba_data_files ORDER BY tablespace_name; --3、查看回滚段名称及大小 SELECT segment_name, tablespace_name, r.status, (initial_extent / 1024) initialextent, (next_extent / 1024) nextextent, max_extents, v.curext curextent FROM dba_rollback_segs r, v$rollstat v WHERE r.segment_id = v.usn(+) ORDER BY segment_name; --4、查看控制文件 SELECT NAME FROM v$controlfile; --5、查看日志文件 SELECT MEMBER FROM v$logfile; --6、查看表空间的使用情况 SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name FROM dba_free_space GROUP BY tablespace_name; SELECT a.tablespace_name, a.bytes total, b.bytes used, c.bytes free, (b.bytes * 100) / a.bytes "% USED ", (c.bytes * 100) / a.bytes "% FREE " FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c WHERE a.tablespace_name = b.tablespace_name AND a.tablespace_name = c.tablespace_name; --7、查看数据库库对象 SELECT owner, object_type, status, COUNT(*) count# FROM all_objects GROUP BY owner, object_type, status; --8、查看数据库的版本 SELECT version FROM product_component_version WHERE substr(product, 1, 6) = 'Oracle'; --9、查看数据库的创建日期和归档方式 SELECT created, log_mode, log_mode FROM v$database; --1G=1024MB --1M=1024KB --1K=1024Bytes --1M=11048576Bytes --1G=1024*11048576Bytes=11313741824Bytes SELECT a.tablespace_name "表空间名", total "表空间大小", free "表空间剩余大小", (total - free) "表空间使用大小", total / (1024 * 1024 * 1024) "表空间大小(G)", free / (1024 * 1024 * 1024) "表空间剩余大小(G)", (total - free) / (1024 * 1024 * 1024) "表空间使用大小(G)", round((total - free) / total, 4) * 100 "使用率 %" FROM (SELECT tablespace_name, SUM(bytes) free FROM dba_free_space GROUP BY tablespace_name) a, (SELECT tablespace_name, SUM(bytes) total FROM dba_data_files GROUP BY tablespace_name) b WHERE a.tablespace_name = b.tablespace_name