博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Oracle】day01_数据类型_DDL语句_DML语句
阅读量:4305 次
发布时间:2019-05-27

本文共 2616 字,大约阅读时间需要 8 分钟。

【Oracle】day01_数据类型_DDL语句_DML语句

1.数据类型:

->字符型

  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 数据  字符串类型
 

2.DDL语句

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;

3.DML语句

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/

你可能感兴趣的文章
OCO订单(委托)
查看>>
学习笔记_vnpy实战培训day05
查看>>
学习笔记_vnpy实战培训day06
查看>>
Python super钻石继承
查看>>
回测引擎代码分析流程图
查看>>
Excel 如何制作时间轴
查看>>
股票网格交易策略
查看>>
matplotlib绘图跳过时间段的处理方案
查看>>
vnpy学习_04回测评价指标的缺陷
查看>>
ubuntu终端一次多条命令方法和区别
查看>>
python之偏函数
查看>>
vnpy学习_06回测结果可视化改进
查看>>
读书笔记_量化交易如何建立自己的算法交易01
查看>>
设计模式03_工厂
查看>>
设计模式04_抽象工厂
查看>>
设计模式05_单例
查看>>
设计模式06_原型
查看>>
设计模式07_建造者
查看>>
设计模式08_适配器
查看>>
设计模式09_代理模式
查看>>