DB和DBMS DB:数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。 DBMS:数据库管理系统(DataBase Management System),管理数据库的软件。
关系数据库简介: 关系:描述两个元素的关联或对应关系。 使用关系模型把数据组织到二维数据表中(Table)。 产品化:Oracle,MySQL,DB2
表的概念: 一个关系数据库有多个数据表组成,数据表是关系数据库的基本存储结构。 表是二维的,由行和列组成。 表与表之间存在关联关系。
SQL概述: sql:结构化查询语言。 sql是在关系数据库上执行数据操作,检索及维护所使用的标准语言,可以用来查询数据,操纵数据,定义数据,控制数据。 sql可分为: —数据定义语言:DDL; —数据操纵语言:DML; —数据控制语言:TCL; —数据查询语言:DQL; —数据控制语言:DCL;
数据定义语言:DDL 用于建立、修改、删除数据库对象。 包括: —CREATE:创建表或其他对象的结构。 —ALTER:修改表或其他对象的结构。 —DROP:删除表或其他对象的结构。 —TRUNCATE:删除表数据,保留表结构。
数据操纵语言:DML 用于改变数据表中的数据 和事物相关,执行完后需要经过事物控制语句提交后才真正改变应用到数据库中。 包括: —INSERT:将数据插入到数据表中; —UPDATE:更新数据表中已经存在的数据; —DELETE:删除数据表中的数据。
事物控制语言:TCL 用来维护数据一致性的语句。 包括: —COMMIT:提交,确认已经进行的数据改变; —ROLLBACK:回滚,取消已经进行的数据改变; —SAVEPOINT:保存点,使当前的事物可以回退到指定的保存点,便于取消部分改变。
数据查询语言:DQL 用来查询所需要的数据 SELECT语句。
数据控制语言:DCL 用于执行权限的授予和收回操作 包括: —GRANT:授予,用于给用户或角色授予权限 —REVOKE:用于收回用户或角色的权限 —CREATE USER:创建用户
NUMBER:表示数字类型 经常被定义成NUMBER(P,S) 形式,其中: –p表示数字的总位数 –s表示小数点后面的位数 如:sal NUMBER(6,2)
CHAR:固定长度的字符类型 经常被定义成 CHAR(N)的形式,N表示占用的字节数。 如: ename CHAR(20),表示ename列中最多可以存储20个字节的字符串,并且这个长度是固定的。
VARCHAR2:变长的字符类型 定义格式为 VARCHAR2(N),N表示最多可占用的字节数。 如: ename VARCHAR2(20),表示ename列中最多可以存储20个字节的字符串,并且这个长度是可变的,即字符串实际长度为多少就用多少。
DATE:定义日期时间的数据 默认格式是:DD-MON-RR 如:11-APR-71
CREATE语句:创建表
CREATE TABLE emp( empno NUMBER(4,0), enname VARCHAR2(10), job VARCHAR2(9), mgr NUMBER(4,0), hiredate DATE, sal NUMBER(7,2), comm NUMBER(7,2), depton NUMBER(2,0)DESC语句:查看表结构 DESC emp
DEFAULT语句:给列指定默认值
CREATE TABLE emp( id NUMBER(4,0), ename VARCHAR2(10), sal NUMBER(7,2), gender CHAR(1) DEFAULT 'M' )NOT NULL语句: 非空约束,确保该字段值部位空; 默认情况下,任何猎都可以为空; 当某个字段被设置为NOT NULL,该字段必须保存有效值; 当执行插入语句时,必须为该列提供数据,否则会报错; 当执行更新操作时,不能给这个列设置NULL。
CREATE TABLE emp( id NUMBER(4,0), ename VARCHAR2(10), sal NUMBER(7,2), NOT NULL gender CHAR(1) DEFAULT 'M' )修改表名 使用RENAME语句实现修改表名
RENAME old_name TO new_name增加列 给表增加列可以通过使用 ALTER TABLE 的ADD子句实现 如:给emp增加hiredate列,默认为sysdate
ALTER TABLE emp ADD (hiredate DATE DEFAULT sysdate)删除列 使用ALTER TABLE 的DROP 语句删除不需要的列。 如:删除日期那一列
ALTER TABLE emp DROP(hiredate)修改列 建表之后可以改变表中列的数据类型,长度和默认值 修改表仅仅对插入以后的数据有效 如果把长度改小有可能不成功 如:修改表中job,并增加默认值
ALTER TABLE emp MODIFY (job VARCHAR2(40) DEFAULT 'CKERK')INSERT语句: 给数据表增加记录 如:给emp表插入数据,注意,可以不同时把所有的字段的数据都插进去,但是NOT NULL 的必须要有。
insert into emp(empno,enname,job,mgr,hiredate,sal,depton) values (7902,'ford','analyst',7566,TO_DATE('1981_12_03','YYYY-MM-DD'),3000,20)执行DML语句后,需要在执行commit语句,才算真正确认了此操作。
UPDATE语句 更新表中记录 语法格式: UPDATE table_name SET column=value[column=value]… [WHERE condition] 如果没有WHERE 语句,则表示该表中所有的数据都会更新。 如:更新职员ROSE的薪水为7000
UPDATE emp SET salary=7000 WHERE name='ROSE'DELETE 语句: 删除表中记录
DELETE FROM emp WHERE job is null如果没有WHERE 语句,则删除全表。