基础
创建表:
语法
create table [模式名.]基本表名 (
列名1 类型1,
列名2 类型2,
…
完整性约束…
)[tablespace"表空间名"];
例:
create table student(
id varchar2(20) primary key,
name varchar2(50) not null,
sex char(1) not null
);
修改表:
1 修改表名ALTER TABLE student RENAME to student1;
2 增加字段
ALTER TABLE student1 ADD info varchar(100);
3 修改字段
-- 修改字段的类型
ALTER TABLE student1 MODIFY info integer;
--与 Mysql 不同,oracle 中没有该语法(同时修改属性名称):ALTER TABLE table_name CHANGE 旧属性名 新属性名 数据类型
-- 修改字段的名称和类型
ALTER TABLE student1 rename column info to stu_info;
ALTER TABLE student1 MODIFY stu_info varchar(200);
删除表:
DROp TABLE student1;
插入数据:
--语法
--INSERT INTO table_name(field1,field2,...) VALUES(val1,val2,...);
-- 指定字段插入
INSERT INTO student1(name,sex) VALUES('张三','男');
-- 不指定字段插入,需要按顺序写(不推荐使用)
INSERT INTO student1 VALUES('001','张三','男');
删除数据
--语法
-- DELETE FROM table_name WHERe CONDITION
--实例
delete from student1 where name='张三';
更新数据记录
-- UPDATe table_name SET field1=val1,field2=val2,... WHERe condition
update student1 set id = '002' where name = '张三';
单表数据查询
简单的数据查询
-- SELECT field1,field2,... FROM table_name WHERe CONDITION
select sex from student where name='李四';
--使用通配符*查询所有数据
select * from student where name='李四';
条件数据记录查询
在条件内部定义:
1) 带关系运算符和逻辑运算符的表达式
Oracle 中的关系运算符:>、 >=、 <、 <=、 !=(<>) 、 =
Oracle 中的逻辑运算符:&&(AND)、||(OR)、!(NOT) 在逻辑表达式中,我们一般使用英文表示,如 AND/OR/NOT。
SELECt stuname,salary,salary*12 FROM STUINFO WHERe salary=1000;
SELECt stuname,salary,salary*12 FROM STUINFO WHERe salary!=1000;
SELECt stuname,salary,salary*12 FROM STUINFO WHERe salary<>1000;
SELECt stuname,salary FROM STUINFO WHERe NOT(salary>1000 AND salary<2000);
2) 带 between…and 关键字的条件数据查询
SELECt stuname,salary FROM STUINFO WHERe salary BETWEEN 1500 AND 2000;
SELECt stuname,salary FROM STUINFO WHERe NOT(salary BETWEEN 1500 AND 2000);
3) 使用 is null 关键字的条件数据查询
其中空字符串和 null 是两个不同的值,在使用的时候,需要注意,查询空字符串,使用”xxx=’’”,而判断是否是 null 值,要使用 is null。
SELECt * FROM student WHERe code IS NULL;
SELECt * FROM student WHERe code IS NOT NULL;
注意: 由于 ‘’ (空串)默认被转换成了 NULL,不能使用 = ‘’ 作为查询条件。也不能用 is ‘’。虽然不会有语法错误,但是不会有结果集返回。 只能用 is null 。
不等于就是 is not null 。
4) 使用 in 关键字的条件数据查询
在已知的指定范围内,进行数据的查询。
SELECt * FROM student WHERe id in(2,4);
SELECt * FROM student WHERe id NOT in(2,4);
5) 带 like(模糊查询)关键字的条件数据查询
like 表示一种模糊查询的搜索模式。
-- 准备数据
INSERT INTO student(id,name,code) VALUES(5,'孙悟空','001');
INSERT INTO student(id,name,code) VALUES(6,'小白龙','002');
INSERT INTO student(id,name,code) VALUES(7,'唐僧','003');
INSERT INTO student(id,name,code) VALUES(8,'沙僧','004');
-- 模糊查询 -- 只要带有“悟”,会匹配出来
SELECt * FROM student WHERe name LIKE '%悟%';
-- 以“唐”开头
SELECt * FROM student WHERe name LIKE '唐%';
-- 以“僧”结尾
SELECt * FROM student WHERe name LIKE '%僧';
-- 第一个字符不管,只要第二个字符是“白”,会匹配出来
SELECt * FROM student WHERe name LIKE '_白%';