Oracle安装后第一步_如何从零创建数据库和表_图文详解
为啥安装完Oracle还要创建数据库?这不多此一举吗?
哎呀朋友,这个问题我当初也纳闷过!其实Oracle和其他数据库不一样,安装软件只是搭好了舞台,真正存数据的库得咱们自己建。就像买了新手机要创建用户账号一样,不建数据库,你的数据根本没地方住啊。
一、创建数据库的两种姿势
方法①:图形化操作(手 *** 党福音)
打开开始菜单找到【Oracle-OraDB19Home1】里的Database Configuration Assistant(简称DBCA),这就是 *** 送的保姆级工具。跟着提示点点点,5分钟搞定新库创建:
- 选"创建数据库" → 填全局数据库名(建议用公司名+业务,比如
HR_2025
) - 设置管理员密码(千万要记牢!)
- 字符集选GBK 16位简体中文(处理中文不乱码的关键)
- 取消勾选【创建为容器数据库】(新手别碰这个高级功能)
- 最后点完成,喝杯咖啡等进度条跑完
方法②:命令行硬核操作(极客专属)
适合喜欢敲代码的 *** ,在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要三思(建议存文件路径更高效)
五、过来人的血泪经验
新手常见翻车现场
- 字符集没统一:建库用GBK,建表用UTF8,中文全变乱码(别问我怎么知道的)
- 忘记提交事务:执行完DML语句没commit,数据根本没存进去
- 乱删系统表:看到不认识的表就想删,结果把整个库搞崩
- 密码复杂度不够:用123456当sys密码,分分钟被黑
个人私藏技巧:
- 建表前先画ER图(推荐用PowerDesigner)
- 字段注释要写全(方便三个月后的自己看懂)
- 重要操作前备份(冷备份+RMAN双保险)
- 多用可视化工具(比如Navicat for Oracle)
看着电脑屏幕上跳出的"Table created"提示,是不是特有成就感?其实Oracle就像乐高积木,掌握基本套路后就能玩出各种花样。下次咱们可以聊聊怎么给表插数据,保准让你从建表小白变身SQL大神!对了,建库时遇到报错别慌,八成是文件权限或者路径问题,检查下目录是否存在,权限是不是给足了, *** ~