NO.40 数据库原理和SQL(DDL、DML)
保存数据的方式,经历了手工管理、文件管理等阶段,直至数据库管理阶段。
数据库(Database,简称DB)是按照数据结构来组织、存储和管理数据的仓库。
数据库管理系统(Database Management System,简称DBMS):管理数据库的软件。
主流数据库产品:
Oracle(Oracle)
DB2(IBM)
SQL Server(MS)
MySQL(Oracle)
SQL语句不区分大小写
SELECT SYSDATE FROM dual 获取当前系统时间
SQL语句分为:
DDL、DML、TCL、DQL、DCL
DDL:数据定义语言
DDL用于维护数据库对象使用
数据库对象:表,视图,索引,序列。
1)创建表
CREATE TABLE employee_xxx(
id NUMBER(4),
name VARCHAR2(20),
gender CHAR(1),
birth DATE,
salary NUMBER(6,2),
job VARCHAR2(30),
deptno NUMBER(2)
)
2)查看表结构
DESC employee_xxx
在数据库中,所有字段的默认值都是NULL,可以通过DEFAULT关键字指定一个默认值。
对于字符串而言,数据库中字面量是使用单引号括起来的,这一点需要与java区分记忆。并且,虽然SQL语句本身不区分大小写,但是字符串的值是区分大小写的。
CREATE TABLE employee(
id NUMBER(4),
name VARCHAR2(20),
gender CHAR(1) DEFAULT 'M',
birth DATE,
salary NUMBER(6,2) DEFAULT 3000,
job VARCHAR2(30),
deptno NUMBER(2)
)
DESC employee
NOT NULL约束:当一个字段被NOT NULL修饰后,该字段不允许为空。
CREATE TABLE employee(
id NUMBER(4),
name VARCHAR2(20) NOT NULL,
gender CHAR(1) DEFAULT 'M',
birth DATE,
salary NUMBER(6,2) DEFAULT 3000,
job VARCHAR2(30),
deptno NUMBER(2)
)
DESC employee
3)删除表:
DROP TABLE employee_xxx
4)修改表名:
RENAME old_name TO new_name
如:
RENAME employee TO myemp
5)修改表结构:
添加新的字段
ALTER TABLE myemp ADD (hiredate DATE)
DESC myemp
删除现有字段
ALTER TABLE myemp DROP(hiredate)
修改现有字段
可以修改字段的类型,长度,默认值,非空约束但是应当在表中没有数据的时候进行,否则尽量
不要修改类型,长度尽量只增不减。否则可能会修改失败。
将JOB字段的长度变为40:
ALTER TABLE myemp MODIFY(job VARCHAR2(40))
另外,TRUNCATE可以删除表数据,保留表结构。
DML语句:数据操作语言
DML是用来增,删,改表中数据。DML是伴随事务(TCL)控制的。
1)INSERT语句
INSERT语句用于向表中插入新数据
INSERT INTO myemp (id,name,job,deptno) VALUES (1,'jack','CLERK',10)
SELECT * FROM myemp
不指定字段则是全列插入,给定的值的类型与顺序要与表中字段一致。
INSERT INTO myemp VALUES (2,'rose','F',SYSDATE,5000,'CLERK',10)
插入日期类型数据时,可以使用数据库内置函数:
TO_DATE(char1,char2)
char1:一个具体日期的字符串
char2:指定的日期格式
INSERT INTO myemp (id,name,birth) VALUES (3,'bob',TO_DATE('1992-08-05','YYYY-MM-DD'))
SELECT * FROM myemp
2)UPDATE语句:修改表中数据
将id为2的员工性别改为"M",部门改为"20"
UPDATE myemp SET gender='M',deptno=20 WHERE id=2
3)DELETE语句:删除数据
DELETE FROM myemp WHERE salary<5000
UPDATE语句与DELETE语句都需要使用WHERE添加过滤条件,否则是对表中所有数据的操作。
SELECT * FROM myemp