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








网友评论