Oracle数据库笔记(一)

2020-10-05  本文已影响0人  你家门口的两朵云

1.1 字符串类型

数据库中所有数据类型的默认值都是NULL

2.DDL修改语句

2.1创建表

创建表代码如下:

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

2.2 DESC语句修改表

DESC emplyee;

效果如下[查看表的cmd命令行图片占位符号]

2.3 DEFAULT 子句

在创建表的时候可以使用DEFAULT为某个字段单独指定一个默认值。
例如,给gender列赋默认值‘M’,如果没有指定性别的员工,默认是男性

1.数据库中的字符串字面量是使用单引号的。
2.虽然SQL语句本身不区分大小写,但是字符串的值是区分大小写的。

2.4 NOT NULL子句

1.非空(NOT NULL)是一种约束条件,用于确保字段值不为空
2.默认情况下,任何列都允许有空值
3.当某个字段被设置了非空约束条件,这个字段中必须存在有效值
4.当执行插入数据的操作时,必须提供这个列的数据
5.当执行更新操作时,不能给这个列的值设置为NULL

3.修改表

3.1修改表名

在建表后如果希望修改表名,可以使用 RENAME语句实现
语法如下:

RENAME employee TO myemp;

3.2修改表结构

1.添加新的字段

给表增加列可以使用ALTER TABLE 的ADD子句实现。
语法:

ALTER TABLE myemp
 ADD(
 hiredate DATE DEFAULT SYSDATE
 )

列只能增加在最后,不能插入到现有的列中。

2.修改现有字段

建表之后,可以改变表中列的数据类型、长度、默认值和是否为空。
语法如下:

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

修改表结构都应当避免在表中有数据以后进行,若表中有数据,修改表中字段时尽量不要修改类型,若修改长度尽量增大避免缩小,否则可能导致失败。

3.删除现有字段

使用ALTER TABLE 的子句DROP子句删除不需要的列。
语法如下:

ALTER TABLE myemp
 DROP(
 hiredate
 )

删除字段需要从每行中删掉该字段占据的长度和数据,并释放在数据块中占据的空间,如果表记录比较大,删除字段可能需要比较长的时间。

3.DML语句

1.INSERT语句

给数据表里增加记录。
语法如下:

INSERT INTO  myemp
(id,name,salary,deptno)
VALUES(1,'jack',5000,10)
SELECT * FROM myemp
COMMIT

执行DML操作后,需要再执行 COMMIT语句,才算真正确认了此操作。


如果插入的列有日期字段,需要考虑日期的格式
默认的日期格式:‘DD-MON-RR’
可以自定义日期格式,用TO_DATE函数转换为日期类型的数据
例如:

/*
 使用自定义日期格式插入记录
 */
 INSERT INTO myemp
 (id,name,job,birth)
 VALUES(
 1003,'donna','MANAGER',
 TO_DATE('2009-09-01','YYYY-MM-DD')
 )
2.DELETE语句

删除表中数据,删除数据通常也要添加WHERE语句来限定要删除数据的条件
否则就是清空表操作。

DELETE FROM myemp
WHERE name='rose'
DESC myemp

注意:
如果没有WHERE子句,则全表的数据都会被删除。

在DDL语句中的TRUNCATE语句,同样有删除表数据的作用。

3.UPDATE语句

修改表中数据
修改表中数据要添加WHERE过滤条件,这样才会只将满足条件的记录进行修改,否则是全表所有的数据都修改。一次也可修改多个字段。
TRUNCATE和DELETE语句的区别:
(1)DELETE可以有条件删除,TRUNCATE将表数据全部删除。
(2)DELETE是DML语句,可以回退,TRUNCATE是DDL语句,立即生效,无法回退。
(3)如果是删除全部表记录,且数据量较大,DELETE语句效率比TRUNCATE语句低。
删除全部记录:

删除全部记录:

DELETE FROM myemp;
或者
TRUNCATE  TABLEmyemp;

UPDATE myemp
 SET salary=6000, name='rose',gender='F'
 WHERE id=1
上一篇 下一篇

猜你喜欢

热点阅读