Oracle11

作者: WJ_a4e6 | 来源:发表于2018-12-17 13:39 被阅读0次

1.数据库的简介

1.1 数据库的由来

  学生信息管理系统 - 主要实现学生信息的增删改查操作。

      - 使用集合实现,都是将数据存放在内存中,读写速度比较快,不能永久保存。

      - 使用文件进行存取,文件是存放在硬盘上的,读写速度慢,能永久保存,效率低

        对查询等针对性的操作没有很好的支持。

      - 使用数据库进行存取,效率相对比较好,对查询等针对性操作有很好的支持。

        数据库的本质依然是存放在磁盘上的文件。

        目前主流的开发都是采用数据库,是一种质的提升。

1.2 基本概念

  数据库就是指 存放数据的 仓库,叫做DataBase,简称为DB。

  DBA - DataBase Administrator,就是 数据库管理员。

      - 大数据时代,银行、金融。

  RDB - Relational DataBase,就是关系型数据库.

        目前主流的数据库都是关系型数据库。 

        关系型数据库就是指以关系模型为依据的数据库。

        关系模型就是以二维表体现的模型,也就是具有行和列信息的二维表。

1.3 主要代表

  目前主流的数据库主要有:Oracle(甲骨文)、DB2、SQL Server、mysql、nosql、mogodb等等。

  其中oracle数据库 占据市场50%左右,在java领域占据市场60%左右。 - oracle公司

  其中DB2数据库 占据市场20%左右。 - 国际商业化机器(IBM)公司

  其中SQL Server数据库 占据市场15%左右。  - 微软公司

  其中mysql数据库 是一个小型数据库,受程序员的爱戴。 - Oracle-sun公司

  ... ...

  oracle公司的主要产品:oracle数据库和oracle数据库的服务器,主要的oracle版本有:8i 9g 10g 11g ... ...

1.4 SQL语言

  为了使得不同的数据库操作保持统一,提出了一门名字为 SQL(Structured Query Language 结构化查询语言)的语言,主要分为以下五大类:

  (1)select查询语句,主要用于进行数据的查询操作。

  (2)DML数据操作语句(Data Manipulation Language)

        - 主要用于进行数据的增删改操作,使用insert/delete/update关键字。

  (3)DDL数据定义语句(Data Definition Language)

        - 主要用于进行表的增删改操作,使用create/drop/alter关键字。

  (4)TCL事务控制语句(Transaction Control Language)

        - 主要用于进行数据的提交/回滚/保存操作,使用commit/rollback/savepoint

  (5)DCL数据控制语句(Data Control Language)

        - 主要用于进行账户的授权和解除,使用grant/revoke关键字。

2.环境的搭建

2.1 远程数据库的使用

(1)登录远程服务器

  使用命令: telnet 服务器的IP地址  - 表示登录远程服务器

  如:

      telnet 192.168.35.20

      ping 192.168.35.20 

  输入服务器的用户名和密码才能登录成功。

(2)登录服务器的数据库

  a.使用命令/工具:sqlplus 用户名/密码 - 表示登录数据库

  b.使用图形化工具登录,操作简单,但容易破坏数据。

  其中sqlplus是oracle自带的工具,采用命令行的方法进行操作。

  一般情况下,先使用sqlplus命令回车,再根据提示输入用户名和密码。

  使用exit命令可以断开数据库的连接。

2.2 本地数据库的使用

(1)安装注意事项 

  输入口令:admin  路径中不要有中文路径

(2)数据库的使用

  开始 => 运行 => 输入cmd => 回车 => 输入sqlplus,回车 => 用户名的信息输入 :system,密码的信息输入:admin => 连接数据库成功。

(3)环境的准备

  a.启动oracle自带的用户:scott/tiger,以后的sql都在该用户下执行。

  b.在oracle的安装目录中搜索文件 scott.sql,将该文件复制到外层目录中,

    如:oraclexe目录中

  c.通过dos窗口使用system/admin登录数据库,执行以下指令:

      @scott.sql文件的路径信息

      @D:\oraclexe\scott.sql  - 执行该文件中的sql语句

  d.alter user scott identified by tiger;  - 修改密码为小写 tiger

  e.show user - 表示查看当前用户信息,显示scott就恭喜你成功了!

  f.以后连接oracle数据库都采用 sqlplus scott/tiger 用户信息,使用exit可以退出

2.3 查看用户的表结构

  desc 表名 - 可以查看指定表名的表结构。

  后期的学习主要使用两张表:emp员工表、dept部门表。

SQL> desc emp

名称                                      是否为空? 类型

----------------------------------------- -------- -------------

EMPNO    员工编号                        NOT NULL NUMBER(4)

ENAME    员工姓名                                VARCHAR2(10)

JOB      职位                                    VARCHAR2(9)

MGR      领导编号                                NUMBER(4)

HIREDATE  入职日期                                DATE

SAL      薪水                                    NUMBER(7,2)

COMM      提成                                    NUMBER(7,2)

DEPTNO    部门编号                                NUMBER(2)

SQL> desc dept;

名称                                      是否为空? 类型

----------------------------------------- -------- ----------------

DEPTNO  部门编号                        NOT NULL NUMBER(2)

DNAME    部门名称                                  VARCHAR2(14)

LOC      办公地点                                  VARCHAR2(13) 

2.4 常用的数据类型

  数值型:

        number(n) - 表示具有n位数字组成的整数

        number(n,m) - 表示具有n位数字组成的小数,小数点后面有m位数字

  文本型:

        char(n) - 表示定长字符串,要求n个字符组成,不够用空格填充

        varchar2(n) - 表示变长字符串,可以由n个字符组成,不够写多少算多少

  日期型:

        date - 表示世纪/年/月/日/时/分/秒

注意:

  sql语句中不区分大小写,但""和''中的字符除外。

3.select语句

3.1 如何查询单个字段的信息?

  select 字段名 from 表名;

如:

  --查询员工信息:员工姓名

  select ename from emp;

  --查询员工信息:员工薪水

  select sal from emp;

注意:

  其中分号并不是sql语句中的内容,而是为了表达该语句结束的含义。

  使用 / 表示执行上一条sql语句。

3.2 如何查询多个字段的信息?

  select 字段名1,字段名2,... from 表名;

如:

  --查询员工信息:员工编号、员工姓名、员工薪水

  select empno,ename,sal from emp;

  --查询员工信息:员工编号、员工姓名、入职日期、员工提成

  select empno,ename,hiredate,comm from emp;

3.3 如何查询所有字段的信息?

  可以将所有字段名列举出来进行查询,也可以使用*来查询

如:

  --查询员工的所有信息

  select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp;

  --查询员工的所有信息

  select * from emp;  -- 解析*需要消耗时间

3.4 字段的算数运算

  +  -  *  /  ()

如:

  --查询员工的信息:要求给每个员工的薪水 加 200元奖金

  select empno,ename,sal,sal+200 from emp;

  --查询员工的信息:要求给每个员工的薪水 减 100元

  select empno,ename,sal,sal-100 from emp;

  --查询员工的信息:要求显示每个员工的年薪,一年16薪

  select empno,ename,sal,sal*16 from emp;

  --查询员工的信息:要求显示每个员工的日薪

  select empno,ename,sal,sal/22 from emp;

  --查询员工的信息:要求显示每个员工的年薪,一年16薪,3000元的过节费

  select empno,ename,sal,sal*16+3000 from emp;

  --查询员工的信息:要求给每个员工的月薪涨500,显示年薪,16薪

  select empno,ename,sal,(sal+500)*16 from emp;

3.5 给字段和表达式起别名

  在select查询语句中,可以给指定的字段或者表达式起别名,具体方式如下:

  select 字段名1 [as] 别名1,字段名2,... from 表名;

如:

  --查询员工的信息:要求显示每个员工的年薪,一年16薪,起别名为yearsalary

  select empno,ename,sal,sal*16 from emp;

  select empno,ename,sal,sal*16 as yearsalary from emp;

  select empno,ename,sal,sal*16 yearsalary from emp; 

  select empno,ename,sal,sal*16 year salary from emp; -- error year为别名

  select empno,ename,sal,sal*16 "year salary" from emp; -- 双引号表示整体 

  select empno,ename,sal,sal*16 "Income" from emp;  -- 区分大小写

  select empno,ename,sal,sal*16 年收入 from emp; -- 支持汉字

  select empno,ename,sal,sal*16 "年收入" from emp; -- 与上面结果一样

  select empno,ename,sal,sal*16 365 from emp; -- error 数字做别名

  select empno,ename,sal,sal*16 "365" from emp;

  select empno,ename,sal,sal*16 from from emp; -- error 关键字做别名

  select empno,ename,sal,sal*16 "from" from emp;

注意:

  当别名中出现特殊字符如空格、别名使用数字、别名使用关键字、区分大小写的情况下,使用双引号将别名括起来。

  给表名也可以起别名,在多表查询时使用。

相关文章

网友评论

      本文标题:Oracle11

      本文链接:https://www.haomeiwen.com/subject/pxgqkqtx.html