1. DDL语句
SQL语句:结构化查询语句,使用SQL与数据库“沟通”,完成相应的数据库操作。
l DDL:数据定义语言,用来维护数据库对象
1.1 创建表
Ø CREATE:创建表
演示:创建员工表
|
Ø DESC:查看表的数据结构
演示:查看创建的员工表
|
Ø DEFAULT:设置默认值
可以通过DEFAULT子句给列指定默认值
演示:建表时给gender默认值为”M”
|
Ø NOT NULL:非空
默认情况下,任何列都允许有空值。非空(NOT NULL)是一种条件约束,用于确保字段值不为空,当某个字段被设置了非空约束条件,这个字段中必须存在有效值,即:当执行插入数据操作时,必须提供这个列的数据;当执行更新操作时,不能给这个列的值设置为NULL。
演示:创建员工表设置那么为非空字段
|
1.2 修改表
Ø RENAME:修改表名
演示:修改表名
RENAME emptest to testemp; |
Ø ALTER TABLE的ADD子句
增加列,列只能增加在最后,不能插入现有的列中。
演示:在testemp表下面增加hiredate列,并将默认值设置为当前时间
|
Ø ALTER TABLE的DROP子句
删除列,删除字段需要从每行中删掉该字段占据的长度和数据,并释放在数据块中占据的空间,如果表记录比较大,删除字段可能需要比较长的时间。
演示:删除testemp表下的hiredate
|
Ø DROP删除表
|
Ø ALTER TABLE的MODIFY子句
修改列,使用MODIFY可以改变表中列的数据类型、长度和默认值,注意这种修改仅对以后插入的数据有效。另外如果表中已经有数据的情况下,把长度由大改小,有可能不成功,比如原来类型是VARCHAR2(100),其中已经存放了100字节长度的数据,如果改为80字节,则不会修改成功。
演示:修改testemp表中name的长度为30
|
2. DML语句
l 用于增删改表中数据,DML是伴随TCL事务控制的。
Ø INSERT
INSERT语句用来给数据表增加记录,每次增加一条记录。所有的DML操作,需要再执行事务提交语句COMMIT才算真正确认了此操作。
演示:想testemp中插入一条记录
|
插入数据时忽略字段则是全列插入,顺序不能错误,如下:
|
Ø UPDATE
更新表中的记录,需要配合WHERE子句使用,否则全表的数据都会被更新。
演示:更新testemp表中张三的ID为2
|
同时修改两个类型:
|
Ø DELETE
删除表中的记录,和UPDATE一样,需要配合WHERE子句使用,不然会将全表数据删除。
演示:将testemp表中id为2的记录删除
|
清空表:
|
3、DCL:数据控制语言,用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等
是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL。
DCL(Data Control Language,数据控制语言):用于定义数据库用户的权限。
DCL包括:
ALTER PASSWORD
GRANT
REVOKE
CREATE SYNONYM
一:DCL(数据控制语言)
1、创建用户test2,密码也是test2(记得最有以分;号结束):
create user test2 identified by test2;
2、给test2授权:create session;(允许用户登陆Oracle):
grant create session to test2;
3、给test2分配创建表的权限;
grant create table to test2;
4、给test2分配表空间的使用权限;
grant unlimited tablespace to test2;