Oracle安装后第一步_如何从零创建数据库和表_图文详解


​为啥安装完Oracle还要创建数据库?这不多此一举吗?​
哎呀朋友,这个问题我当初也纳闷过!其实Oracle和其他数据库不一样,安装软件只是搭好了舞台,真正存数据的库得咱们自己建。就像买了新手机要创建用户账号一样,不建数据库,你的数据根本没地方住啊。


一、创建数据库的两种姿势

​方法①:图形化操作(手 *** 党福音)​
打开开始菜单找到【Oracle-OraDB19Home1】里的​​Database Configuration Assistant​​(简称DBCA),这就是 *** 送的保姆级工具。跟着提示点点点,5分钟搞定新库创建:

  1. 选"创建数据库" → 填全局数据库名(建议用公司名+业务,比如HR_2025
  2. 设置管理员密码(千万要记牢!)
  3. 字符集选​​GBK 16位简体中文​​(处理中文不乱码的关键)
  4. 取消勾选【创建为容器数据库】(新手别碰这个高级功能)
  5. 最后点完成,喝杯咖啡等进度条跑完

​方法②:命令行硬核操作(极客专属)​
适合喜欢敲代码的 *** ,在SQL*Plus里输入:

sql复制
CREATE DATABASE salesdbUSER SYS IDENTIFIED BY SysPassword123USER SYSTEM IDENTIFIED BY SystemPassword456LOGFILE GROUP 1 ('/u01/oradata/salesdb/redo01.log') SIZE 100M,GROUP 2 ('/u01/oradata/salesdb/redo02.log') SIZE 100MDATAFILE '/u01/oradata/salesdb/system01.dbf' SIZE 500MCHARACTER SET AL32UTF8;

注意!这种玩法得提前建好文件目录,字符集选错了直接原地翻车。


二、建表就像搭积木

​基础语法三要素​
建表说白了就是定义​​表名+列名+数据类型​​。举个栗子,咱们要建个员工信息表:

sql复制
CREATE TABLE employees (emp_id NUMBER(6) PRIMARY KEY,  -- 员工ID做主键name VARCHAR2(20) NOT NULL,     -- 姓名不能为空salary NUMBER(8,2),             -- 工资带小数点hire_date DATE DEFAULT SYSDATE  -- 入职日期默认今天);

​这里有几个坑要避开​​:

  • 表名别用中文(虽然Oracle支持但容易出乱码)
  • 字段长度宁可设大别设小(比如姓名用VARCHAR2(20)比10稳妥)
  • 日期类型用DATE最省事(不用考虑时分秒的话)

三、主键外键怎么玩

​主键就像身份证​
每个表最好有个主键,保证数据不重复。两种设置方法任选:

sql复制
-- 方法1:直接在字段后面写CREATE TABLE student1 (id NUMBER(11) PRIMARY KEY,...);-- 方法2:最后统一声明CREATE TABLE student2 (id NUMBER(11),...PRIMARY KEY(id));

要是忘记设主键?别慌!用​​ALTER TABLE​​补救:

sql复制
ALTER TABLE student4 ADD CONSTRAINT pk_id PRIMARY KEY(id);  -- 给已有表加主键

​外键玩连连看​
当两个表有关联时(比如部门和员工),外键就派上用场了:

sql复制
CREATE TABLE departments (dept_id NUMBER(4) PRIMARY KEY,dept_name VARCHAR2(30));CREATE TABLE employees (emp_id NUMBER(6),dept_id NUMBER(4),FOREIGN KEY (dept_id) REFERENCES departments(dept_id));

这样设置后,要是部门表里没有的dept_id,员工表就插不进去,数据一致性妥妥的。


四、数据类型选择困难症

​常用类型对比表​

类型存储内容长度限制使用场景
VARCHAR2可变长度文本4000字节姓名、地址
CHAR定长文本2000字节性别(男/女)
NUMBER数字38位精度工资、年龄
DATE日期时间精确到秒入职日期
CLOB大文本4GB产品描述
BLOB二进制文件4GB员工照片

​选型小窍门​​:

  • 能用VARCHAR2就别用CHAR(省空间)
  • 金额用NUMBER(10,2)比整数类型靠谱
  • 存照片用BLOB要三思(建议存文件路径更高效)

五、过来人的血泪经验

​新手常见翻车现场​

  1. ​字符集没统一​​:建库用GBK,建表用UTF8,中文全变乱码(别问我怎么知道的)
  2. ​忘记提交事务​​:执行完DML语句没commit,数据根本没存进去
  3. ​乱删系统表​​:看到不认识的表就想删,结果把整个库搞崩
  4. ​密码复杂度不够​​:用123456当sys密码,分分钟被黑

​个人私藏技巧​​:

  • 建表前先画ER图(推荐用PowerDesigner)
  • 字段注释要写全(方便三个月后的自己看懂)
  • 重要操作前备份(冷备份+RMAN双保险)
  • 多用可视化工具(比如Navicat for Oracle)

看着电脑屏幕上跳出的"Table created"提示,是不是特有成就感?其实Oracle就像乐高积木,掌握基本套路后就能玩出各种花样。下次咱们可以聊聊怎么给表插数据,保准让你从建表小白变身SQL大神!对了,建库时遇到报错别慌,八成是文件权限或者路径问题,检查下目录是否存在,权限是不是给足了, *** ~