oracle数据库语法总结

基础

创建表:

语法
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 '_白%';

你可能感兴趣的:(oracle数据库语法总结)