Unit01: 数据库原理 、 SQL(DDL、DML)

SQL语句是不区分大小写的,但是行业里习惯将关键字与分关键字用大小写岔开以提高可读性.
SELECT SYSDATE FROM dual

DDL语句
数据定义语言
用于操作数据库对象
数据库对象有:表,视图,索引,序列

创建表:
CREATE TABLE employee(
    id NUMBER(4),
    name VARCHAR2(20),
    gender CHAR(1),
    birth DATE,
  salary NUMBER(6,2),
  job VARCHAR2(30),
  deptno NUMBER(2)
)

查看表结构
DESC employee

删除表
DROP TABLE employee

为字段添加默认值选项或非空约束
默认值:数据库中无论字段是什么类型
默认值都是NULL,可以使用DEFAULT
关键字为字段单独指定默认值。
字符串的字面量是使用单引号括起来的,
并且字符串的字面量是区分大小写的。
NOT NULL约束可以要求某个字段不允许为空。

CREATE TABLE employee(
    id NUMBER(4),
    name VARCHAR2(20) NOT NULL,
    gender CHAR(1),
    birth DATE,
  salary NUMBER(6,2),
  job VARCHAR2(30) DEFAULT 'CLERK',
  deptno NUMBER(2)
)

修改表
1:修改表名
2:修改表结构

修改表名:
RENAME employee TO myemp

DESC myemp



修改表结构
2.1:添加新字段
ALTER TABLE myemp 
ADD(
  hiredate DATE DEFAULT SYSDATE
)

DESC myemp

2.2删除现有字段
ALTER TABLE myemp
DROP(hiredate)

2.3:修改现有字段
修改字段最好是在表中没有数据的情况下
进行。
可以修改类型,长度,默认值,非空。
表中有数据的话,尽量不该类型,长度尽可能
只增不减。

ALTER TABLE myemp
MODIFY(
  job VARCHAR2(40) DEFAULT 'CLERK'
)

DESC myemp


DML语句
数据操作语言
用于增删改表中的数据,伴随事务.

1:插入新数据 
INSERT INTO myemp
(id,name,salary,deptno)
VALUES
(1,'JACK',3000,10)

SELECT * FROM myemp

插入日期推荐使用TO_DATE函数
INSERT INTO myemp
(id,name,birth,salary,deptno)
VALUES
(2,'ROSE',
 TO_DATE('1992-08-02','YYYY-MM-DD'),
 5000,10)

SELECT * FROM myemp

2:修改表中数据
在修改时通常要添加WHERE子句来限定
要修改的记录的条件,这样只会将满足
WHERE要求的条件的记录进行修改,否则
全表所有数据都会被修改!
UPDATE myemp
SET salary=6000,deptno=20
WHERE name='JACK'

3:删除语句
删除通常也要添加WHERE子句,否则
是清空表操作!
DELETE FROM myemp
WHERE name='JACK'