您的位置:首页 > 数据库 > Oracle

Oracle笔记(一)

2015-11-18 12:46 393 查看

创建表

CREATE TABLE tablename

查看表结构

DESC tablename

DEFAULT

定义默认值

CREATE TABLE tablename (ID NUMBER(4),NAME VARCHAR(10) DEFAULT '老王');

NOT NULL 非空约束 用法同DEFAULT

数据库记录世纪的

************************************

* sys * * *

* * 0-49 * 50-99 *

user * * * *

************************************

* * *

* * *

0-49 * 本世纪 * 下世纪 *

* * *

************************************

* * *

* * *

50-99 * 上世纪 * 本世纪 *

* * *

************************************

SQL语句本身不去分大小写的,但是为了增加可读性通常会将关键字与非关键字使用大小写区分开。通常关键字使用全大写,非关键字使用全小写。

但是需要注意,字符串的值是区分大小写的。

数据库中,字符串的字面量使用单引号扩起来。

CREATE TABLE employee_tzm(

ID NUMBER(4),

NAME VARCHAR2(20),

GENDER CHAR(1) DEFAULT 'M',

BIRTH DATE,

SALARY NUMBER(6,2),

JOB VARCHAR2(30),

DEPTNO NUMBER(2)

);

数据库中,字段无论什么类型,默认值都是null

,在插入数据时,只要该字段没有给定值,就会将null字段插入该字段。

可以单独使用default关键字为字段指定默认值,这样不给值时则使用指定默认值而不再是null。

CREATE TABLE employee_tzm(

id number(4),

name varchar2(20),

gender CHAR(1) DEFAULT 'M',

birth DATE,

salary NUMBER(6,2),

job VARCHAR2(30),

deptno NUMBER(2)

);

非空约束 NOT NULL

非空约束要求指定的字段在任何时候值都不允许为null

CREATE TABLE employee_tzm(

id number(4),

name varchar2(20) NOT NULL,

gender CHAR(1) DEFAULT 'M',

birth DATE,

salary NUMBER(6,2),

job VARCHAR2(30),

deptno NUMBER(2)

);

1:修改表名

RENAME old_name TO new_name

RENAME employee_tzm TO myemp_tzm

2:修改表结构

2,1向表中添加新字段

需要注意,添加的字段只会被追加到表的末尾,而不能在现有的字段中间“插入”一个字段

向myemp 表中添加一个字段

ALTER TABLE myemp_tzm ADD(

hiredate DATE DEFAULT SYSDATE

);

删除表

DROP TABLE EMP;

删除表中现有字段,最好是表中没有数据的时候进行,若表中存在数据,会将每一条记录对应的该字段的值都要删除,数据量大的时候会比较慢。

删除myemp表中的字段hiredate

ALTER TABLE DROP (hiredate);

修改表中字段:

可以修改字段的类型,长度添加默认值

设置是否为空。

同样不建议在表中已经存在的数据后再修改,

游客能修改不成功;

长度尽量不要减少,否则不满足现有数据要求的话是修改不成功。

尽量不修改类型。

ALTER TABLE myemp_tzm MODIFY(job VARCHAR(40) DEFAULT 'CLERK');

DML语句

用于增删改表中数据,伴随事物。

插入数据:

insert into table_name

(col_name,col_name2,....)

VALUES(value,value,....)

事物的开启与关闭

事物的开启:

当执行第一条DML语句时,会自动开启一个事物,然后执行该语句,在此之后所有被执行的DML语句都在这一个事物控制范围内。

事物的关闭

无论是提交或是回退,事物都会关闭。

提交:将这次事物中的所有DML操作全部真实执行,对表进行操作。提交后无法再进行回滚。

回滚:回滚到事物开启前的状态,这次事物中所有的DML操作均被撤销。

插入日期类型的值

可以直接使用字符串,但是格式有要求,必须是

'DD-MON-RR',由于语言有差异,月的写法不同,所以不建议使用。可以使用TO-DATE函数,自行将字符串按照指定的日期格式转换为DATE值。

INSERT INTO myemp_tzm (id,name,salary,birth) VALUES (3,'CLARK',4000,TO_DATE('1990-5-21','YY-MM-DD'));

INSERT 语句可以不指定字段,若不指定则是全列插入,那么VALUES后面必须将所有值按照表中字段顺序全部指定,否则会报错。

INSERT INTO meemp_tzm VALUES (3,'CLARK',4000,TO_DATE(1990-5-21));

UPDATE 语句,用于修改表中数据

UPDATE table_name SET col_name1 = new_value1,col_name2 = new_value2,......[WHERE con = con_value];

UPDATE 语句修改表中数据时,通常要使用WHERE 子句添加条件来限制要修改的记录,这样才能将只满足WHERE条件的记录进行修改,若不添加则是全表每一条记录都修改

通常很少这样做!

UPDATE myemp SET gender = 'F' ,salary = 6000 WHERE name = 'jack'

删除表中数据

DELETE FROM table_name WHERE NAME = ‘TOM’
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: