数据库介绍1

1、认识数据库
1)数据库概念
通俗:存放数据的仓库
定义:数据库(简称:DB DataBase)是一个软件产品,数据库用于存放数据、管理数据的存储仓库
     是有效组织在一起的数据集合


2)数据库产品
大型数据库
Oracle:著名的甲骨文公司的数据库产品,它是世界上第一个商品化的数据库管理系统。目前最新的
       版本是Oracle 12c
DB2:IBM公司的关系型数据库管理系统,DB2有很多的版本,可以运行在从掌上产品到大型机不同终端机器上。
Sybase:美国Sybase公司的关系型数据库管理系统,较早采用C/S技术的数据库厂商,是一种典型的unix和Windows
      NT平台上的客户机/服务器环境下的大型数据库系统
中小型数据库
Sql Server:微软的产品,运姓在windows NT服务器上,支持C/S结构的数据库管理系统,采用标准的SQl语言
    mysql:一个小型关系型数据库管理系统,开发者为瑞典的Mysql AB公司的。
mysql特征 :体积小、速度快、总体拥有成本低
开放源码
许多中小型网站为了降低拥有成本而选择mysql作为网站的数据库。
小型数据库  
    access:微软发布的关系型数据库管理系统,把数据库引擎的图形用户界面和软件开发工具
      结合在一起的数据库管理软件。它是微软的OFFICE的成员之一。
  
3)数据库学习的意义
//数据存储的角度
 文件存储的弊端:
 a.缺乏对数据的整体管理、不便于数据修改
 b.不利于数据的分析和共享
 c.大量数据长期保存在文件当中,不安全


//实际开发应用角度


2、关系型数据库
  不同的数据库是按不同的数据结构来组织的
  关系型数据模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)
  在关系型数据库中,对数据的操作机会全部建立在一个或多个关系表格中,通过对这些关联的表格
  进行分类、合并、连接和选取等运算俩实现数据库的管理。
  
  关系型数据库:描述两个元素之间的关联或对应关系的使用关联或对应把数据组值到二维表格(Table)中。
  
  举例:学生信息管理系统
  学生表:学号、姓名、性别。。。
  课程表:课程号、课程名。。。
  成绩表:学号、课程号、成绩。。。

3.数据表
一个关系型数据库是由多个数据表组成的,数据表是关系型数据库的基本存储结构。


表是数据库存储的基本单元,对应于现实世界的一个实体对象,比如说部门表和员工表。
表是一个二维结构的,由行和列组成,横向的为行(Row),也叫记录 (Record),用来表示
实体数据,比如说员工的一个相关信息。纵向为列(Column),也叫字段(Filed),表示实体
的属性,比如说员工的薪水


java中实体使用对象来描述,数据表和对象之间存在一种对应的关系。数据表相当于类(class)
数据表的行是某个对象的实例,其中每个列都是对象的属性(JDBC部分用到,先简单理解一下)


4.SQL
1)SQL定义
全称:结构化查询语言(Structured Query Language)
是在关系型数据库上执行数据库操作、检索以及维护所使用的语言。可以用来查询数据、操纵数据、定义
数据、控制数据。(所有的数据库都是使用相同或相似的语言)


2)SQL分类(重要)
数据定义语言:DDL(Data Definition Language)
[主要针对表的结构而言]
负责数据结构的定义与数据库对象的定义的语言。主要有
create/alter/drop/truncate四种常用的语句
create:表示创建数据库对象(创建数据表)
alter:表示修改数据库对象(修改数据库)
drop:表示删除数据库对象(删除数据库)
truncate:表示清空表数据(将表数据清空,表结构保留)


数据操纵语言:DML(Data Manipulation Language)
[主要针对表的内容(数据)而言]
实现对数据表的操纵,即表的数据的增加、修改、删除
insert :表示插入数据
update:表示更新数据
delete:表示删除数据


数据查询语言:DQL(Data Query Language)
实现对数据的查询操作
select:表示查询操作


数据控制语言:DCL(Data Control Language)
实现权限的授予和回收操作
grant:表示授予权限
revoke:表示回收权限
create user:创建用户或角色
`
事务控制语言:TCL(Transaction Control Language)
用于对DML操作进行确认
commit:表示提交数据,确认
rollback:表示回滚数据,撤销(取消)
savepoint:保存点,用于回滚到指定保存点

5.基本数据类型
1)数值类型
语法:number(p,s)其中p表示数字的总位数(数字的有效位数),s表示小数位数
     要表示一个整数s为0或者s不写
 
2)字符类型
char(n):表示定长字符[方便查询]
最大的放入的n个字符,放入的数据如果不够那个字符长度则会补空格,无论如何都会占用n个字符




varchar(n):表示边长字符,Oracle不建议使用


varchar2(n):表示边长字符[节省空间]
最大的放入n个字符,放入的数据实际占用多少个字符长度就占多大空间。Oracle建议使用的类型
3)日期类型
date:用于定义日期时间的数据类型
注意:Oracle的默认的日期格式'DD-MON-YY',如:16-5月-18


6.SQLPlus
SQLPlus是Oracle提供的一个客户端工具。
1)打开 SQLPlus


2)登录
普通账号登录:scott/scott  用户名和密码
协议适配器问题:
下发资料->数据库使用不了
D:\app\Administrator\product\11.2.0\dbhome_1\BIN


报监听错误:
修改文件中localhost,再重启服务和监听
D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN
将listener和tnsnames文件中localhost改为计算机主机名(计算机右击选择"属性")
再重启服务和监听(计算机右击选择"管理")


3)sqlplus相关命令
注意:命令后面可加可不加(;)
//设置行的长度,缺省值为80
set linesize 200//表示显示200个字符后在换行
使用时只是当前会话有效


//设置列的宽度
列是字符,如column column_name format a6 //6表示的对应的字符长度
列是数字,如column column_name format 999 //显示3位数字,使用999作为占位符 


//查看表结构
desc tabel_name


//设置分页显示,缺省为14
set pagesize 10//每10行进行分页,包含标题行和空行,当值为0表示不分页


//查看当前用户
show user


//设置显示SQL语句执行时间
set timing on


//清屏命令
clear scr//screen


常用的SQL语句
所有的SQL语句一定是以分号结尾的
//查看(查询)当期系统时间
select sysdate from dual;//dual表示虚表,做测试用
16-5月 -18//选中->键盘上enter键复制
oracle默认的日期格式:'DD-MON-YY'


//修改当前会话的日期格式'(当前会话有效)2018-5-16'
alter session set nls_date_format='YYYY-mm-dd';


//查看当前用户有那些表
select table_name from user_tables;


7.表的结构操作DDL
1)创建表
语法结构:
create table table_name(
column_name datatype,
column_name datatype default value
);
注意:
a.create table关键字不能写错
b.表名是不能重复(对象已存在)
c.最后一个字段是没有逗号的
d.default表示给指定的字段添加默认值
e.小括号,逗号,分号都是英文状态下的


//动手创建表:部门表(dept_zcq)
create table dept_zcq(
deptno number(2),
dname varchar2(20),
location varchar2(15) 
);


2)修改表名
在建表后希望修改表的名称,可以使用rename语句实现
语法:
rename old_table_name to new_table_name;
//修改部门表
rename dept_zcq to dept_zcq1;


3)增加一个字段(表结构发生改变)
给表增加列可以使用alter table的add语句实现
alter table tabel_name add(column_name datatype);
//给部门增加一个'描述'字段
alter table dept_zcq add(des varchar2(30));


4)修改一个字段(表结构发生改变)
建表之后,可以改变表中的列的数据类型、长度、默认值,修改仅对增加的数据有效。
如果把列的长度由大到小修改有可能不成功。
语法:
alter table tabel_name modify(column_name datatype);


//修改部门表中的描述字段varchar2->char
alter table dept_zcq modify(des char(30));


5)删除一个字段(表结构会发生改变)
可以使用alter table的drop删除字段
alter table table_name drop(column_name);


//删除部门表中的描述字段
alter table dept_zcq drop(des);


删除表
drop table dept_zcq;//删除表的数据和表的结构
truncate table dept_zcq;//删除表的数据,保留表的结构

猜你喜欢

转载自blog.csdn.net/little_____white/article/details/81051638