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

【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;






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值