一、数据库简介
1.数据库系统的发展

文件存储方式保存数据的弊端:
(1)缺乏对数据的整体管理,数据不便修改。
(2)不利于数据分析和共享。
(3)数据量急剧增长,大量数据不可能长期保存在文件中。
2. 数据库和数据库管理系统的概念
- 数据库(Database,简称DB):
本质上讲,数据库就是信息的集合,它可以存在很长时间,往往是很多年。一般来讲,数据库就是按照数据结构来组织、存储和管理数据的仓库。
- 数据库管理系统(Database Management System,简称DBMS):
简单来说,就是管理数据库的软件。
3.几个主流关系型数据库的概述
提到关系型数据库,就不得不先了解一下以下两个概念:
关系: 描述两个元素的关联或对应关系。使用关系模型把数据组织到二维数据表(Table)中。
表的概念: 一个关系数据库由多个数据表(Table)组成,数据表是关系数据库的基本存储结构。表是二维的,由行和列组成。表的行(Row)是横排数据,也被称作记录(Record)。表的列(Column)是纵列数据,也被称作字段(Field)。表和表之间存在关联关系。
(1)Oracle数据库概述
Oracle是著名的Oracle(甲骨文)公司的数据库产品。Oracle是世界上第一个商品化的关系型数据库管理系统。Oracle采用标准SQL(结构化查询语言),支持多种数据类型,提供面向对象的数据支持,具有第四代语言开发工具,支持UNIX、WINDOWS、OS/2等多种平台。Oracle公司的产品丰富,包括Oracle服务器、Oracle开发工具和Oracle应用软件。其中最著名的就是Oracle数据库,目前最新版本是Oracle 12C。
(2)DB2数据库概述
DB2是IBM公司的关系型数据库管理系统。DB2有很多不同的版本,可以允许在从掌上产品到大型机不同的终端机器上。DB2 Universal Database Personal Edition 和DB2 Universal Database Workgroup Edition分别是单用户和多用户系统,可以运行在OS/2和Windows上。DB2是Oracle的主要竞争对手。
(3)SQL Server数据库概述
Microsoft SQL Server是微软的产品,运行在Windows NT服务器上。Microsoft SQL Server的最初版本适用于中小型企业,但是应用范围不断扩展,已经触及到大型、跨国企业的数据库管理。
(4)MySQL数据库概述
MySQL是开放源码的小型关系型数据库管理系统,广泛应用于中小型网站中。总体拥有成本低、规模较Oracle和DB2小的优点。2008年1月16日,Sun收购了MySQL,2009年4月20日Sun被Oracle公司收购,所以MySQL现在属于Oracle公司。
(5)Sybase数据库概述
Sybase 是美国Sybase公司的关系型数据库系统。Sybase是较早采用C/S技术的数据库厂商。典型的UNIX或Windows NT平台上客户机/服务器环境下的大型数据库系统。Sybase通常与Sybase SQL Anywhere用于客户机/服务器环境,前者作为服务器数据库,后者为客户机数据库,采用该公司研发的PowerBuilder为开发工具,在国内大中型系统中具有广泛的应用。2010年被SAP收购。
二、SQL概述
SQL(Structured Query Language) :结构化查询语言。 SQL是在关系数据库上执行数据操作、检索及维护所使用的标准语言,可以用来查询数据、操纵数据、定义数据、控制数据。所有数据库都使用相同或者相似的语言。
❤️ 注意:
SQL语句本身不区分大小写,但是出于可读性的目的,我们通常会将SQL中的关键字全部大写,非关键字全部小写。
SQL的分类:

(1)数据定义语言(DDL ): Data Definition Language
(2) 数据操纵语言(DML): Data Manipulation Language
用于改变数据表中的数据。和事务相关,执行完后需要经过事务控制语句提交后才能真正的将改变应用到数据库中。
(3) 事务控制语言(TCL): Transaction Control Language
用来维护数据一致性的语句。
(4)数据查询语言(DQL): Data Query Language
用来查询所需要的数据。
SELECT语句
(5)数据控制语言(DCL): Data Control Language
用于执行权限的授予和收回操作。
三、 SQL(DDL、DML)
3.1 Oracle数据类型

❤️ 数据库中所有数据类型的默认值都是NULL
(1)NUMBER
NUMBER表示数字类型。经常被定义成NUMBER(P,S)形式,其中:
P:表示数字的总位数
S:表示小数点后面的位数
(2)CHAR
表示固定长度的字符类型。经常被定义成CHAR(N)形式,N表示占用的字节数。最大长度是2000字节。
(3)VARCHAR2(Oracle特有的数据类型)
表示变长的字符类型。定义格式是VARCHAR2(N),N表示最多可占用的字节数。
最大长度是4000字节。
(4)DATE
用于定义日期时间的数据。长度是7个字节,默认格式是:DD-MON-RR,例如:11-APR-17
3.2 DDL语句

3.2.1 创建表
(1)CREATE语句(创建表)
eg:
CREATE TABLE employee( id NUMBER(4), name VARCHAR2(20) NOT NULL, gender CHAR(1) DEFAULT 'M', birth DATE, salary NUMBER(30), job VARCHAR2(30), deptno NUMBER(2) );
(2)DESC语句(查看表)
eg:
DESC employee;

(3)DEFAULT语句
❤️ 注意:
1.数据库中的字符串字面量是使用单引号的。
2.虽然SQL语句本身不区分大小写,但是字符串的值是区分大小写的。
(4)NOT NULL 语句
❤️ 注意:
1.非空(NOT NULL)是一种约束条件,用于确保字段值不为空
2.默认情况下,任何列都允许有空值
3.当某个字段被设置了非空约束条件,这个字段中必须存在有效值
4.当执行插入数据的操作时,必须提供这个列的数据
5.当执行更新操作时,不能给这个列的值设置为NULL
3.2.1 修改表
3.2.1.1 修改表名
RENAME employee TO myemp
3.2.1.2 修改表结构
(1)添加新的字段
eg:
ALTER TABLE myemp ADD( hiredate DATE DEFAULT SYSDATE )
❤️ 注意:
列只能增加在最后,不能插入到现有的列中。
(2)修改现有字段
eg:
ALTER TABLE myemp MODIFY ( job varchar2(40) DEFAULT 'CLERK' )
❤️ 注意:
修改表结构都应当避免在表中有数据以后进行,若表中有数据,修改表中字段时尽量不要修改类型,若修改长度尽量增大避免缩小,否则可能导致失败。
(3)删除现有字段
eg:
ALTER TABLE myemp DROP( hiredate )
❤️ 注意:
删除字段需要从每行中删掉该字段占据的长度和数据,并释放在数据块中占据的空间,如果表记录比较大,删除字段可能需要比较长的时间。
3.3 DML语句

3.3.1 INSERT语句
INSERT INTO myemp (id,name,salary,deptno) VALUES(1,'jack',5000,10) SELECT * FROM myemp COMMIT
❤️ 注意:
执行DML操作后,需要再执行 COMMIT语句,才算真正确认了此操作。
如果插入的列有日期字段,需要考虑日期的格式
默认的日期格式:‘DD-MON-RR’
可以自定义日期格式,用TO_DATE函数转换为日期类型的数据
eg:
/* 使用自定义日期格式插入记录 */ INSERT INTO myemp (id,name,job,birth) VALUES( 1003,'donna','MANAGER', TO_DATE('2009-09-01','YYYY-MM-DD') )
3.3.2 UPDATE语句
UPDATE myemp SET salary=6000, name='rose',gender='F' WHERE id=1
3.3.3 DELETE语句
eg:
DELETE FROM myemp WHERE name='rose' DESC myemp
❤️ 注意:
- 如果没有WHERE子句,则全表的数据都会被删除。
- 在DDL语句中的TRUNCATE语句,同样有删除表数据的作用。
删除全部记录: DELETE FROM myemp; 或者 TRUNCATE TABLEmyemp;
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/208633.html原文链接:https://javaforall.net
