java学习

NO.40 数据库原理和SQL(DDL、DML)

2017-08-10  本文已影响0人  smallnumber

保存数据的方式,经历了手工管理、文件管理等阶段,直至数据库管理阶段。

数据库(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

上一篇下一篇

猜你喜欢

热点阅读