一、数据定义语言DDL
1.创建表空间:CREAT TABLESPACE lyy DATAFILE 'C:/app/lyy.dbf' SIZE 10M;(创建一个10M的表空间,存放在C盘app文件夹中)
删除表空间:DROP TABLESPACE lyy;
2.创建用户和赋权:CREAT USER lyy PROFILE DEFAULT IDENTIFIED BY 123456 DEFAULT TABLESPACE lyy TEMPORARY TABLESPACE temp ACCOUNT UNLOCK; (创建用户lyy,默认密码为123456,默认表空间为lyy,临时表空间为temp,账号开启状态)
GRANT CONNECT TO lyy;
GRANT RESOURCE TO lyy;(赋予用户lyy connect和resource权限)
3.创建表
语法格式:CREAT TABLE 表名(属性名1 数据类型(长度),属性名2 数据类型......属性名n 数据类型);
例:创建以下三个表:
--学生表 student:学号 sid、姓名 sname、性别 ssex、年龄 sage、电话 sphone
--课程表 course: 课程编号 cid、课程名称 cname、老师名称 tname、课时 chour
--成绩表 score: 成绩编号 scid、学号 sid、课程编号 cid、分数 grade
在Oracle中,表的全名是:方案名.表名;方案名就是用户名,方案名不写,表示方案名就是当前用户自己;
——创建学生表
CREAT TABLE student(
sid CHAR(10),
sname VARCHAR2(50) NOT NULL,
ssex CHAR(1),
sage NUMBER,
sphone INTEGER
);
——创建课程表
CREAT TABLE course(
cid CHAR(10),
cname VARCHAR2(50),
tname VARCHAR2(50),
chour NUMBER
);
——创建成绩表
CREAT TABLE score(
scid CHAR(10),
sid CHAR(10),
cid CHAR(10),
grade NUMBER
);
删除表: DROP TABLE student;
4.约束条件
约束是由用户添加,用来保证存储到数据库的数据的实体完整性和参照完整性;
约束种类一般有五种:
--主键约束:Primary key,要求被定义为主键的字段的值具有唯一性和非空性;
constraint p1_sid primary key(sid) --定义sid为主键。
--外键约束:Foreign key,要求被定义为外键的字段的值必须来源于所引用字段的值, 外键字段和所引用的字段,名称可以不一样,但是两者的数据类型和长度必须一致;
constraint f1_sid foreign key(sid) references student(sid) --定义sid为外键,值来源于student表的sid
--唯一约束:Unique ,要求具有唯一性;
unique(sid,cid) --定义sid和cid的组合有唯一性。
--非空约束:not null,要求必须有值;
sname varchar2(50) not null --定义sname字段非空
--检查约束:check,用户可以根据业务的需要,对字段的值进行自定义限制。
constraint c1_ssex check(ssex in ('M','F')) --定义检查约束,要求ssex字段的取值必须为M或者F
5.修改表ALTER
ALTER TABLE SCOTT.TEST RENAME TO TEST1--修改表名
ALTER TABLE SCOTT.TEST RENAME COLUMN NAME TO NAME1 --修改表列名
ALTER TABLE SCOTT.TEST MODIFY NAME1 NUMBER(20) --修改字段类型
ALTER TABLE SCOTT.TEST ADD ADDRESS VARCHAR2(40) --添加表列
ALTER TABLE SCOTT.TEST DROP NAME CASCADECONSTRAINTS --删除表列
二、数据操作语言DML
DML是数据操作语言,主要可以完成三个操作:insert插入、update更新、delete删除;DML语句是一种事务操作语句,需要做commit确认、rollback回滚操作才能最终完成的。如果不做确认或者回滚操作,则会锁定当前的表,导致针对该表的DDL等操作都会失败。
1.insert插入数据
语法格式1: insert into 表名 values(值1,值2......,值n);
注意事项:在SQL语句中,一般来说,除了值得部分(数据),其他部分都是不区分大小写的,数据部分,字符类型需要单引号,其他类型不需要单引号;该格式下,要保证值得数量、类型、长度、顺序都要和表的字段保持一致。
示例:SELECT * FROM student;
INSERT INTO student VALUES('S001','张三',‘M’,30,13089247856) ;
语法格式2: insert into 表明(字段名1,字段名2,......,字段名n) values(值1,值2,......,值n);
注意事项:注定值和字段的对应关系(按顺序对应),好处是可以根据自身的值和字段的对应关系,有选择性进行插入操作。
示例: INSERT INTO student(sname,ssex,sid,sage) VALUES('李四','F','s0002',20);
2.update更新数据
语法格式:update 表名 set 赋值表达式 [where 条件]