oracle数据库操作sql收集笔记

一,数据定义语言DDL相关1,创建表

create table tablename(id number primary key not null,column1 varchar2(),column2 varchar2(),column3 varchar2());

2,修改字段类型

alter table tablename modify [字段名称] [数据类型];

3,修改字段名称

alter table tablename rename column [修改字段名称] to [修改后字段名称];

4,添加字段

alter table tablename add [字段名称] [字段类型]

5,删除字段

alter table tablename drop column [字段名称]

二,数据操作语言DML相关

1,查询数据库

select * from tablename

2,插入数据

insert into tablename(字段1,字段2,字段3) values(数据1,数据2,数据3);

3,更新数据

update tablename set 字段1 = 数据1 where 条件语句

4,删除数据

delete from tablename where 条件语句

5,TOP查询

select * from tablename where rownum <= 10; //展示10天数据

6,模糊查询like

select * from tablename where column1 like ‘%xxx%’; 查询字段column1 中包含xxx字符串的数据

7,,通配符 %(替代一个或多个字符) _(仅替代一个字符) 模糊查询条件使用8,操作符IN 操作符允许我们在 WHERE 子句中规定多个值。9,操作符 BETWEEN … AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。

select * from tablename where column1 between [数据1] and [数据2];

10,JOIN关联表关联查询

INNER JOIN 关键字在表中存在至少一个匹配时返回行,

LEFT JOIN 关键字会从左表 (Persons) 那里返回所有的行,即使在右表 (Orders) 中没有匹配的行。

RIGHT JOIN 关键字会从右表 (Orders) 那里返回所有的行,即使在左表 (Persons) 中没有匹配的行。

FULL JOIN 关键字会从左表 (Persons) 和右表 (Orders) 那里返回所有的行。如果 "Persons" 中的行在表 "Orders" 中没有匹配,或者如果 "Orders" 中的行在表 "Persons" 中没有匹配,这些行同样会列出。

11,UNION 操作符,UNION操作符用于合并两个或多个 SELECT 语句的结果集。UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。SELECT E_Name FROM Employees_ChinaUNIONSELECT E_Name FROM Employees_USA UNION去重,Employees_china与Employees_USA中相同数据只会列出一条记录

UNION ALL不去重,Employees_china与Employees_USA中相同数据会列出两条记录

12,INSERT INTO SELECT操作符

INSERT INTO SELECT 语句从一个表中选取数据,然后把数据插入另一个表中。

INSERT INTO SELECT语句常用于创建表的备份复件或者用于对记录进行存档。

insert into Employees_China select * from Employees_USA;13,CHECK操作符,CHECK 约束用于限制列中的值的范围。CREATE TABLE Persons(Id_P int NOT NULL CHECK (Id_P>0),LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255))或ALTER TABLE PersonsADD CHECK (Id_P>0)14,DEFAULT设置默认值,DEFAULT 约束用于向列中插入默认值。CREATE TABLE Persons(Id_P int NOT NULL,LastName varchar(255) NOT NULL,FirstName varchar(255),Address varchar(255),City varchar(255) DEFAULT ‘Sandnes’)撤销DEFAULT方法ALTER TABLE PersonsMODIFY City DEFAULT NULL15,CREATE INDEX创建索引,优化查询搜索速度CREATE INDEX PersonIndexON Person (LastName) 删除indexDROP INDEX index_name16,VIEW基于 SQL 语句的结果集的可视化的表,视图包含行和列,就像一个真实的表。视图中的字段就是来自一个或多个数据库中的真实的表中的字段。我们可以向视图添加 SQL 函数、WHERE 以及 JOIN 语句,我们也可以提交数据,就像这些来自于某个单一的表。CREATE VIEW view_name ASSELECT column_name(s)FROM table_nameWHERE condition17,日期插入,系统日期sysdate

insert into tablename(id,createdate) values(1,sysdate); //插入系统时间

insert into tablename(id,createdate) values(1,to_date(‘2015-03-11 16:03:10′,’yyyy-MM-dd HH24:mi:ss’));//插入相应格式数据的日期

select to_char(createdate,’yyyy-MM-dd HH24:mi:ss’) from tablename; //日期输出展示

三,oracle相关函数

1、字符函数

字符函数是oracle中最常用的函数,我们来看看有哪些字符函数:lower(char):将字符串转化为小写的格式。upper(char):将字符串转化为大写的格式。length(char):返回字符串的长度。substr(char, m, n):截取字符串的子串,n代表取n个字符的意思,不是代表取到第n个replace(char1, search_string, replace_string)instr(C1,C2,I,J) –>判断某字符或字符串是否存在,存在返回出现的位置的索引,否则返回小于1;在一个字符串中搜索指定的字符,返回发现指定的字符的位置;C1 被搜索的字符串C2 希望搜索的字符串I 搜索的开始位置,默认为1J 出现的位置,默认为1

问题:将所有员工的名字按小写的方式显示SQL> select lower(ename) from emp;问题:将所有员工的名字按大写的方式显示。SQL> select upper(ename) from emp;问题:显示正好为5个字符的员工的姓名。SQL> select * from emp where length(ename)=5;问题:显示所有员工姓名的前三个字符。SQL> select substr(ename, 1, 3) from emp;问题:以首字母大写,后面小写的方式显示所有员工的姓名。SQL> select upper(substr(ename,1,1)) || lower(substr(ename,2,length(ename)-1)) from emp;问题:以首字母小写,后面大写的方式显示所有员工的姓名。SQL> select lower(substr(ename,1,1)) || upper(substr(ename,2,length(ename)-1)) from emp;问题:显示所有员工的姓名,用“我是老虎”替换所有“A”SQL> select replace(ename,’A’, ‘我是老虎’) from emp;问题:instr(char1,char2,[,n[,m]])用法SQL> select instr(‘azhangsanbcd’, ‘zhangsan’) from dual; –返回2SQL> select instr(‘oracle traning’, ‘ra’, 1, 1) instring from dual; –返回2SQL> select instr(‘oracle traning’, ‘ra’, 1, 2) instring from dual; –返回9SQL> select instr(‘oracle traning’, ‘ra’, 1, 3) instring from dual; –返回0,根据条件,由于ra只出现二次,第四个参数3,就是说第3次出现ra的位置,显然第3次是没有再出现了,所以结果返回0。注意空格也算一个字符SQL> select instr(‘abc’,’d’) from dual; –返回0

其实你已经错过了旅行的意义。

oracle数据库操作sql收集笔记

相关文章:

你感兴趣的文章:

标签云: