数据库简介
文件存储
手工存储—》文件管理—》数据库
文件存储弊端:
缺乏对数据的整体管理,数据不便修改。
不利于数据分析和共享。
数据量急剧增长,大量数据不可能长期保存在文件中。
DB和DBMS
数据库(Database,简称DB)是按照数据结构来组织、存储和管理数据的仓库。
数据库管理系统(DataBase Manager System 简称DBMS):管理数据库的软件。
关系数据库简介
描述两个元素之间的关联关系或对应关系
使用关系模型把数据组织到二维数据表中
产品化: Oracle、 DB2、Sybase、SQL Server、MySQL
SQL概述
SQL:结构化查询语言
SQL实在关系数据库上执行数据操作。检索维护所使用的标准语言,可以用来查询数据、操作数据、定义数据、控制数据。
SQL可以分为:数据定义语言(DDL)、数据操作语言(DML)、事务控制语言(TCL)、数据查询语言(DQL)、数据控制语言(DCL)标准化SQL语句,
Oracle数据类型
NUM
CREATE TABLE emp1(
id NUMBER(4),
name VARCHAR2(20) NOT NULL,
gender CHAR(1) DEFAULT 'M',
birth DATE,
salary NUMBER(6,2),
deptno NUMBER(2)
)
char
char存放定长字符,即存不满补足空格
varchar2
varchar2存放变长字符,存多少占多少。如保存字符串’HELLOWORLD’,共10个英文字母;varchar2最大取值为4000字节
varchar与char类似
varchar(100):10个字母,补齐90个空格,实际占100;(浪费空间,节省时间)
varchar(100):10个字母,实际占用10个(浪费时间,节省空间)
char和varchar2的存储编码
Date
--创建表
CREATE TABLE emp(
id NUMBER(4),
name VARCHAR2(20),
gender CHAR(1),
birth DATE,
salary NUMBER(6,2),
job VARCHAR2(30),
deptno NUMBER(2)
)
DDL
创建表
CREATE语句:建表
DESC table_name:查勘表结构
DEFAULT:指定默认值
NOT NULL:确保字段不为空
--设置默认值,在数据库中,无论字段是什么类型,
--默认值都是null,但是可以在创建表的时候通过default
--关键字为指定的列单独设置默认值,在数据库中,字符串使用
--单引号表示字面量这一点与java不同
--notnull约束指定的字段可以确保不允许为null
--创建表
CREATE TABLE emp(
id NUMBER(4),
name VARCHAR2(20),
gender CHAR(1),
birth DATE,
salary NUMBER(6,2),
job VARCHAR2(30),
deptno NUMBER(2)
)
CREATE TABLE emp1(
id NUMBER(4),
name VARCHAR2(20) NOT NULL,
gender CHAR(1) DEFAULT 'M',
birth DATE,
salary NUMBER(6,2),
deptno NUMBER(2)
)
DESC EMP;
修改表
rename:修改表名
add: 增加列
drop(column): 删除列
modify: 修改列
--DDL修改表 1.修改表名
RENAME EMP1 TO emp2;
--2.修改表结构 2.1 添加新字段
--向表中添加新的字段,只能在当前表的末尾添加
--可以使用同时追加多个列,只需要使用逗号隔开即可
--与创建表声明列的时候的语法一样
ALTER TABLE emp2 ADD(
hiredate DATE DEFAULT SYSDATE
)
--2.2删除表中的现有字段
ALTER TABLE emp2 DROP (hiredate)
--2.3修改表中的现有字段
--可以修改字段的类型、长度、默认值、非空约束
ALTER TABLE emp2 MODIFY(
name VARCHAR2(40) DEFAULT 'zhangsan'
)
DML
Insert插入语句
Update更新语句
Delete删除语句
--DML语句,用于修改表中数据,分为增删改
--1.插入一条数据
INSERT INTO EMP(ID,NAME,jOB,SAlARY) VALUES(1,'luban','adc',500)
--查询
SELECT * FROM EMP;
--2.修改表中现有数据,将'luban'的工资修改为20
UPDATE EMP SET SALARY = 20
WHERE NAME='luban';
--修改表中的数据通常指定where过滤条件,这样只会将满足
--条件的记录修改,若不指定where条件则是全表数据修改
--3.删除表中现有数据
DELETE
EMP WHERE NAME='luban';
--删除表中数据,同样需要指定where条件,否则就是清空操作
select NVL(NULL,5) from dual;
--字符串拼接
SELECT '21'||'12' from dual;