本文共 2616 字,大约阅读时间需要 8 分钟。
【Oracle】day01_数据类型_DDL语句_DML语句
->字符型 CHAR(n),NCHAR(n) --固定长度 VARCHAR2(n1),NVARCHAR2(n2) --可变长度 n1<=4000 n2<=2000 ->数值型 NUMBER(p,s) p--总位数 s--小数点后的位数 FLOAT(n) --主要用于存储二进制数 ->日期型 DATE 范围:公元前4712年1.1-9999.12.31 TIMESTAMP --时间戳 能精确到秒 ->其他类型 BLOB 4G 数据 二进制类型 CLOB 4G 数据 字符串类型
1)创建表
CREATE TABLE table_name( column_name datatype,... );
eg: CREATE TABLE employee_fancq( id NUMBER(4), name VARCHAR2(20), gender CHAR(1), birth DATE, salary NUMBER(6,2), job VARCHAR2(30), deptno NUMBER(2) );
2)查看表结构
DESC employee_fancq 数据库中无论字段是什么类型,默认值都是NULL,也就是说当我们向表中插入一条数据时,若对应的字段没有给定值,那么默认就将NULL做为值插入到该字段上。可以使用DEFAULT为某个字段指定默认值,这样就会用指定的值插入当前字段。 SQL语句本身不区分大小写,但是行业中通常都会将关键字全部大写,其他内容全部小写形成差异来增加可读性。但是需要注意,字符串在数据库中使用单引号括起来,并且内容是区分大小写的! 3)删除表:
DROP TABLE employee_fancq
把表及其数据一块删除. TRUNCATE TABLE table_name
删除表的全部数据,表的结构仍存在,比较快速. 4)NOT NULL 约束
该约束可以使某个字段必须给值,任何情况下该字段的值不能为NULL。
CREATE TABLE employee_fancq( id NUMBER(4), name VARCHAR2(20) NOT NULL, gender CHAR(1) DEFAULT 'M', birth DATE, salary NUMBER(6,2), comm NUMBER(6,2), job VARCHAR2(30), manager NUMBER(4), deptno NUMBER(2));5)修改表名:
RENAME old_name TO new_name
eg: RENAME employee_fancq TO myemp_fancq 6)修改表结构:
6.1)添加新的字段,字段只能追加到表的最后而不是在现有字段中插入一个新字段。
ALTER TABLE table_name ADD column_name datatype;
eg: ALTER TABLE myemp_fancq ADD( hiredate DATE DEFAULT SYSDATE ) 6.2)删除现有字段
ALTER TABLE table_name DROP [COLUMN] column_name;
eg: ALTER TABLE myemp_fancq DROP(hiredate); DESC myemp_fancq; 6.3)修改现有字段
修改可以修改字段的长度,类型,默认值。
ALTER TABLE table_name MODIFY column_name datatype;
eg: ALTER TABLE myemp_fancq MODIFY( job VARCHAR2(40) DEFAULT 'CLERK' ) 6.4)修改字段名
只是改变字段的名字,不改变字段的类型
ALTER TABLE table_name
RENAME [COLUMN] column_name TO new_column_name;
DML可以对表中的数据进行"增,删,改"
DML语句是伴随事务控制的。 1)插入语句:
INSERT INTO table_name (column1,column2,...) VALUES(value1,value2);
eg: INSERT INTO myemp_fancq (id, name, job, salary) VALUES (1001, 'rose', 'PROGRAMMER', 5500); SELECT * FROM myemp_fancq; INSERT语句中可以不指定针对那些字段插入数据,若不指定,则是全列插入,这时候VALUES中给定的值的顺序,类型,个数必须与表中字段一致才可以。 插入日期类型数据建议使用TO_DATE函数:
INSERT INTO myemp_fancq (id, name, job,birth) VALUES (1003, 'donna', 'MANAGER', TO_DATE('2009-09-01', 'YYYY-MM-DD') ); SELECT * FROM myemp_fancq; 2)修改表中数据,需要注意,不加WHERE条件,整张表中所有记录都会被修改!
UPDATE table_name SET column1=value,... [WHERE conditions];
eg: UPDATE myemp_fancq SET gender='F',salary=7000 WHERE name='rose'; 3)删除表中数据
DELETE FROM table_name;
eg: DELETE FROM myemp_fancq WHERE name='rose'; 4)复制表数据
4.1)在建表时复制
CREATE TABLE table_new AS SELECT column1,...|* FROM table_old; 4.2)在添加时复制
INSERT INTO table_new [(column1,...)] SELECT column1,...|* FROM table_old;
转载地址:http://dgews.baihongyu.com/