Oracle数据库安装及基本语法

数据库简介

基本概念

数据库 : 按照数据结构来组织,存储和管理数据的仓库.这三个部分就对应了数据库发展所经理的几个阶段:

存储:

  • 使用打孔卡片,以二进制的形式存储数据
  • 1951雷明顿兰德 公司.推出磁带驱动器
  • 1956IBM推出磁盘驱动器和随机存储技术.

组织:

  • 文件系统
  • 网状模型
  • 层次模型
  • 关系模型(目前的主流)
  • 面向对象

管理:

IBM于1974年推出结构化查询语句(Structured Query Language)SQL,这个语句包含了对数据生命周期的所有操作.在不久后被ANSI(-American National Standards Institute )美国国家标准协会录入数据库语言标准.并不断完成SQL92标准版.

一、数据库分类

  • 小型数据库:access、foxbase
  • 中型数据库:informix、sql server、mysql
  • 大型数据库:sybase、db2、oracle

二、项目中如何合理地使用数据库,可以依据如下三个方面入手

  • 项目的规模
  • 负载量有多大,即用户数有多大
  • 成本
  • 安全性

三、大、中、小型数据库比较

小型数据库

  • 负载量小,用户大概100人之内
  • 比如:留言板、信息管理系统
  • 成本在千元之内
  • 对安全性要求不高

中型数据库

  • 比如负载量 日访问量5000~10000
  • 成本在万元内
  • 比如商务网站

大型数据库

  • 海量负载,可以处理海量数据(sybase

四、SQL可以分为以下几种类型

1.DML

Data Manipulation Language 是数据操纵语言:它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言。
特点:需要提交commit才能生效,quit退出数据库时可以自动提交

2.DDL

Data Definition Language 是数据定义语言:DDL比DML要多,主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用。DDL跟多是针对数据库对象本身做操作.数据对象有(表,视图,序列,索引,存储过程和函数,触发器)

3.DCL

DataControlLanguage 是数据库控制语言:是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。

4.TCL - Transaction Control Language

事务控制语句.专指做事务处理的代码.

5.还有一种说法是把查询语句从DML中分离,独立称为一种语句.就是查询.

五、目前主流的数据库

1.Oracle

2.MySQL (MySQL有很多分支,语法都查不多)

2.1 MariaDB (使用挺高)

2.2 阿里的MySQL(阿里系专用的)

3.DB2 : 大数据(海量数据) 不等同于 大数据 :(IBM)

4.Sybase

5.SQL Server (微软)

安装oracle数据库


安装版本:oracle11g简化版,Oracle Database 11g Express Edition

官方下载地址:http://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html

百度网盘地址:https://pan.baidu.com/s/1nwsI4aP

oracle是多用户式的

客户端:

sqlplus–自带的,

sql developer

developer官方下载地址http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html

安装注意事项:

  1. 禁止使用中文路径,空格
  2. 腾讯管家等关掉
  3. 安装时需要设定管理员口令,是管理员口令(密码),尽量简单

数据库安装–解压–纯英文路径不能有空格

1.在D盘根目录下创建一个Oracle文件夹(当然也可以在其他地方创建)方便自己找到

2.解压下载好的安装包(随便解压到哪里),运行setup.exe

3.确认安装目录(选择刚才在D盘创建的Oracle文件夹)

4.输入数据库管理员口令,密码千万不要忘记

5.监听端口1521,http端口8080,安装完成点击完成

6.能看到下面两个服务说明安装成功

7.运行开始菜单的’运行SQL命令’或者直接在cmd命令行中输入sqlplus—system—口令(sqlplus / as sysdba)连接数据库

$sqlplus---system---口令(安装时第4步设置的口令)

安装后自带的有sqlplus客户端,命令行方式

若输入sqlplus提示不是内部或外部命令,则设置系统环境变量

D:\oraclexe\app\oracle\product\11.2.0\server\bin

将bin文件夹路径添加到path环境变量中

sqlplus基本操作使用

oracle数据库有sys,system:两个管理员,sys:超级管理员 system:普通管理员

普通用户或syatem管理员连接:

入口1:打开dos,输入

$sqlplus
用户名
密码

入口2:运行sql命令

conn 用户名/密码

sys超级管理员连接(权限超大,不要轻易使用):在dos命令行下

如果和数据库在同电脑同用户下:免密码连接

$sqlplus / as sysdba

Oracle常用命令

-切换到其他用户:

conn 用户名;

-退出:

exit;

或者

quit;

-清空屏幕

clear screen;

-创建用户,需要管理员权限

create user 用户名 indentified by 密码;

-注意:

  • 语句以分号结束
  • 命令后面不需要分号,加了也不报错
  • 创建后没有任何权限

-授权:需要管理员权限

grant connect,resouce to 用户名;

-显示当前用户名

show user:

-查看当前用户下的所有表

SELECT TABLE_NAME FROM USER_TABLES;

-查询系统时间

SELECT SYSDATE FROM DUAL;
SELECT SYSTIMESTAMP FORM DUAL;
SELECT 5*4 FROM DUAL;

-查看指定时间

SELECT TO_CHAR (sysdate,'yyyy/mm/dd hh24:mi:ss') from dual;

-临时更改会话为英文

alter session set nls_date_language=english;

-删除用户drop(只有系统管理员才能删除)

drop user oaec;

-修改密码:当前用户或者管理员

alter user 用户名 cascade

-查询当前用户已创建的表

select table_name from user_tables;

-查询系统数据库中所有已创建的表

select table_name from all_tables;

-查询系统数据库中所有已创建的用户

select username from all_users;

-描述一个表结构

DESC 表明;

涉及到的服务:

  • OracleServiceXE:数据库服务
  • OracleXETNSListener:数据库监听服务
  • 默认都是自动启动,在开机时启动,很有可能开机启动失败
  • 卸载Oracle,可以先把服务关掉,再卸载

oracle中的常用数据类型

-例如:男

CHAR(10) --定长
VARCHAR(10) --所有SQL的通用类型(定长)
VARCHAR2(10) --oracle专用(变长:最大值不变,实际长度随内容决定)

-oracle创表语句(create)

CREATE TABLE 表名{

列名1 类型()【默认值】 约束条件,

列名2 类型()【默认值】 约束条件,

列名3 类型()【默认值】 约束条件,

列名4 类型()【默认值】 约束条件

}

-创建学生表(id,name,sex,birthday)

CREATE TABLE student(
    id NUMBER(6), --学号
    name VARCHAR(30), --性别
    sex CHAR(3), --性别
    birthday DATE --生日      
);

-错误分析:ORA-00907;缺失右括号(检查语法是否正确:英文符号,关键字)

-错误分析:ORA-00955:名称已由现有对象使用(对象已经被创建了)

-查看表结构

DESC student;

-删除表drop

DROP TABLE student;

-向学生表中插入数据insert into 表(列1,列2…) values(值1,值2)

INSERT INTO student(id,name,,sex,birthday) VALUES(1,'张良','男','1-2月-18');

-插入当前时间

INSERT INTO student(id,name,sex,birthday) VALUES(1,'张良','男',sysdate);

-查询表中的记录select

col id format 9999;
col name format a15; --调整列的宽度(字符用a,数字类型用999)

SELECT id,name,sex,birthday FROM student;

-数据库字段的约束

  • 非空约束 NOT NULL(nn)
  • 唯一约束 UNIQUE(uk)
  • 主键约束 PRIMARY(pk)
  • 外键约束 FOREIGN KEY(fk)
  • 检查约束 CHECK(列名,约束条件)

-练习:创建员工表emp(id,name,sex,age),为每列添加约束条件

CREATE TABLE emp(
    id NUMBER(6) PRIMARY KEY, --主键(非空且唯一)
    name VARCHAR2(30) UNIQUE NOT NULL, --唯一,非空
    sex CHAR(3) CHECK(sex in ('男','女')), --check(列名 in(中任意一个))
    age NUMBER(3) CHECK (age>0 AND age<120) --取1-120的数
);

在emp表中插入一条数据

INSERT INTO emp(id,name,sex,age) VALUES(1,'张飞','男',190);

–ORA-02290:违反检查约束条件(OAEC.SYS_C006998)

-创建表的时候就指定约束名(constraints)

-练习2:创建员工边emp(id,name,sex,age),为每列添加约束名及约束条件

create table emp2(
    id number(6) 
    constraint emp2_id_pk primary key,
    name varchar2(30) 
    constraint emp2_name_uk unique
    constraint emp2_name_nn not null,
    sex char(3)
    constraint emp2_sex_ck check(sex in('男','女')),
    age number(3)
    constraint emp2_age_ck check(age between 0 and 120)
);

-查看当前用户下的所有表的约束条件

col constraint_name format a15;
col table_name format a10;
select constraint_name, table_name from user_constraints;

-表级别约束

create table emp3(
    id number(6), --逗号代表是一列
    name varchar(30),
    constraint emp3_id_pk primary key(id), --表级别约束需要关联列约束(列名)
    constraint emp3_name_uk unique(name)
);

-思考一:为什么需要约束列?

-目的:保证数据存储的正确性

-思考2:为什么需要给约束条件取名?

-目的:违反约束条件时方便程序员查错

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值