实验三 ORACLE的基本SQL语句
oracle常用sql语句

oracle常用sql语句SQL(StructuredQueryLanguage)是关系型数据库的标准语言,用于在数据库中存储、操作和管理数据。
在数据库开发和管理中,SQL 是必不可少的工具。
本文将介绍一些轮cle常用的SQL语句,希望能对大家有所帮助。
一、查询语句1、SELECT语句SELECT语句是最常用的查询语句,用于从一个或多个表中检索数据。
其语法如下:SELECT column1, column2, ... FROM table_name WHERE condition;其中,column1、column2等表示要检索的列名,table_name表示要检索的表名,condition表示查询条件。
例如,要从一个名为“students”的表中检索所有学生的姓名和年龄,可以使用以下语句:SELECT name, age FROM students;2、WHERE语句WHERE语句用于筛选符合条件的数据。
其语法如下:SELECT column1, column2, ... FROM table_name WHERE condition;其中,condition可以是一个或多个条件组合而成的表达式。
例如,要从一个名为“students”的表中检索所有年龄大于18岁的学生的姓名和年龄,可以使用以下语句:SELECT name, age FROM students WHERE age > 18;3、ORDER BY语句ORDER BY语句用于按照指定的列对结果进行排序。
其语法如下: SELECT column1, column2, ... FROM table_name ORDER BY column_name [ASC|DESC];其中,column_name表示要排序的列名,ASC表示升序排列,DESC 表示降序排列。
例如,要从一个名为“students”的表中检索所有学生的姓名和年龄,并按照年龄从小到大进行排序,可以使用以下语句: SELECT name, age FROM students ORDER BY age ASC;二、插入语句INSERT语句用于向表中插入新的数据。
oracle版本的sql语句

【1】Oracle版本的SQL语句【2】Oracle是一个流行的关系型数据库管理系统,其SQL语句是与标准SQL兼容的,但也包含了一些特有的功能和语法。
【3】以下是一些常见的Oracle版本的SQL语句,供大家参考和学习。
【4】查询语句【5】1. 查询所有的列SELECT * FROM table_name;【6】2. 查询指定的列SELECT column1, column2, ... FROM table_name;【7】3. 按条件查询SELECT * FROM table_name WHERE condition;【8】4. 模糊查询SELECT * FROM table_name WHERE column_name LIKE 'value';【9】5. 范围查询SELECT * FROM table_name WHERE column_name BETWEENvalue1 AND value2;【10】6. 排序查询SELECT * FROM table_name ORDER BY column_name;【11】7. 分组查询SELECT column1, COUNT(column2) FROM table_name GROUP BY column1;【12】更新语句【13】1. 更新单个列UPDATE table_name SET column_name = value WHERE condition;【14】2. 更新多个列UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;【15】删除语句【16】1. 删除指定行DELETE FROM table_name WHERE condition;【17】2. 删除所有行DELETE FROM table_name;【18】插入语句【19】1. 插入单行数据INSERT INTO table_name VALUES (value1, value2, ...);【20】2. 插入多行数据INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...), (value1, value2, ...);【21】子查询【22】1. 单行子查询SELECT column_name FROM table_name WHERE column_name = (SELECT column_name FROM table_name);【23】2. 多行子查询SELECT column_name FROM table_name WHERE column_name IN (SELECT column_name FROM table_name);【24】联合查询【25】1. 内连接SELECT * FROM table1 INNER JOIN table2 ONtable1.column_name = table2.column_name;【26】2. 外连接SELECT * FROM table1 LEFT JOIN table2 ONtable1.column_name = table2.column_name;【27】函数【28】1. 聚合函数SELECT AVG(column_name) FROM table_name;【29】2. 字符函数SELECT UPPER(column_name) FROM table_name;【30】3. 数值函数SELECT ROUND(column_name, n) FROM table_name;【31】4. 日期函数SELECT MONTHS_BETWEEN(date1, date2) FROM table_name;【32】视图【33】1. 创建视图CREATE VIEW view_name AS SELECT column1, column2 FROM table_name WHERE condition;【34】2. 删除视图DROP VIEW view_name;【35】存储过程【36】1. 创建存储过程CREATE PROCEDURE procedure_nameASBEGINsql_statements;END;【37】2. 调用存储过程EXEC procedure_name;【38】以上就是一些常见的Oracle版本的SQL语句,希望对大家有所帮助。
Oracle基础SQL语句大全

Oracle基础SQL语句大全创建数据表空间:Create tablespace yhnLoggingDatafile ‘E:\yhn.dbf’Size 50mAutoextend on next 50mMaxsize 20480mExtent management local;增加数据文件:Alter tablespace yhnAddDatafile ‘E:\yhn1.dbf’Size 50m;修改数据文件的大小:Alter databaseDatafile ‘E:\yhn1.dbf’Resize 1024m;创建新用户:Create user yhn identified by 123456;密码修改:Alter user yhn identified by 654321;用户锁定:Alter user yhn account lock;用户解锁:Alter user yhn account unlock;删除用户:Drop user yhn cascade;用户及角色管理:--创建用户guoqy,密码guoqyCREATE USER guoqy IDENTIFIED BY guoqy;--为用户guoqy授登录权GRANT CREATE SESSION TO guoqy;--为用户guoqy授权创建表GRANT CREATE TABLE TO guoqy;--为用户guoqy授权,允许查看scott下面的emp表中的数据GRANT SELECT ON scott.emp TO guoqy;--为用户guoqy授权,允许用户对scott的emp表所有权限(包括查询、修改、添加、删除等操作)GRANT ALL ON scott.emp TO guoqy;--通过角色进行授权--1.创建一个角色student CREATE ROLE student;--2.为角色授权,允许对scott的emp表进行操作GRANT ALL ON scott.emp TO student;--3允许student角色进行登录、资源访问GRANT RESOURCE,CONNECT TO student;--创建zhangsan账号CREATE USER zhangsan IDENTIFIED BY zhangsan;--将student角色赋予zhangsan,此时zhangsan具有student角色的所有的权限GRANT student TO zhangsan;--从zhangsan处收回student角色权限REVOKE student FROM zhangsan;示范账户:Scott tigerSELECT SYSDATE FROM dual;SELECT systimestamp FROM dual;SELECT ROWID,ROWNUM,empno,ename FROM emp;CREATE TABLE department( --建立表departmentdeptno NUMBER(2) NOT NULL, --列名deptno 类型为number 约束条件为not nulldeptname VARCHAR2(20) NOT NULL, --列名depname 类型为varchar 约束条件为not nullLOCATION VARCHAR2(40) default'呼和浩特' --列名location 类型为varchar 约束条件为默认值=呼和浩特);SELECT * FROM department; --查询表department--DESC department; -- sqlplus显示表的结构ALTER TABLE department ADD(info Varchar2(400)); --增添字段infoALTER TABLE department modify(info Varchar2(800)); --修改字段infoAlter Table department Rename Column info To d_info; --重命名字段info改为d_infoAlter Table department Drop(info); --删除字段infoTruncate Table department; --截断表departmentRename department To depart; --重命名表改department为departComment On Table depart Is '部门信息表'; --为表添加注释Comment On Column depart.location Is '部门的具体位置'; --为字段添加注释Select * From User_Tab_Columns Where table_name='DEPART'; --查看表中字段的基本信息Select * From User_Tab_Comments Where table_name='DEPART'; --查看表中注释的信息Select * From User_Col_Comments Where table_name='DEPART'; --查看字段中注释的信息Create Table yhn(Name,salary,hiredate) --子查询创建表AsSelect ename,sal,hiredate From emp;Create Table employee(eno Number(5) Not Null,ename Varchar2(10) Not Null,age Number(2) Not Null,salary Number(7,2) Not Null,phone varchar2(16),deptno Number(2),Constraint pk_employee_eno Primary Key(eno),--1.参照其他表得主键--2.建立本表得外键约束----FOREIGN KEY (deptno)里面的deptno是本表中的一列----REFERENCES department(deptno)表示关联到department表中的主键deptnoConstraint fk_employee_dept_deptno Foreign Key(deptno)References department (deptno),Constraint ck_employee_age Check (age Between 18 And 70));Alter Table employeeDisable Constraint ck_employee_age;--对约束的禁用Alter Table employeeEnable Constraint ck_employee_age;--对约束的激活Alter Table employeeRename Constraint ck_employee_age To sk_employee_age;--修改约束名Alter Table employeeDrop Constraint sk_employee_age;--删除约束Insert Into department Values (2,'市场部','呼和浩特');Insert Into employee Values (10002,'test',20,3000,'180110111',1);Insert Into employee(eno,ename,deptno) Values (10003,'张三',1);Insert Into employee(ename,deptno,eno) Values ('lisi',1,1003);Insert Into employee(eno,ename,age,deptno) Values (10004,'王五',15,1);--检查约束Insert Into emp Values (1002,'test','teacher',1002,'1-10月-2015',3000,800,10);Insert Into emp Values (1003,'test','teacher',1003,To_date('2015-10-1','yyyy-MM-dd'),3000,800,10);Insert Into emp Values (1004,'jerry','student',1004,Sysdate,1000,300,20);--插入日期Insert Into department Select * From dept Where deptno=10;Insert Into department(deptno,deptname,location) Select deptno,dname,loc From dept Where deptno=20;--插入查询数据Update department Set deptname='研发部',location='北京' Where deptno=20;--更新数据Delete From department Where deptno=10;--清除有条件的数据Truncate Table department;--清除全部数据 --删除数据Delete From department Where deptno=10;Savepoint sp1;Delete From department Where deptno=20;Savepoint sp2;Rollback To sp1;Commit;Select * From department;--事务提交与回滚Select * From department;Select * From employee;Select * From emp;查询Select * From emp;Select empno,ename From emp;Select Distinct deptno From emp;--distinct删除重复Select ename,sal+comm As salary From emp;Select ename,sal+comm salary From emp;--sal+comm运算改为salarySelect ename,sal 月薪,sal*12-10000 年薪 From emp Where deptno=30;Select ename,sal 月薪,sal*12-10000 年薪From emp Where deptno=30 And sal>=1600;--条件查询Select ename,sal 月薪,sal*12-10000 年薪From emp Where deptno=30 Order By 年薪 Asc;--排序查询 asc升序 desc 降序Select * From emp Where ename Like '_A%N';Select * From emp Where ename Like '%A%';--模糊排序Select ename From emp Where ename Like '%A%'UnionSelect dname From dept;--联合查询--查询工资超过1500 的员工信息,包括员工的姓名,薪水,部门名称--并按照员工的工资降序排序--(显示内连接)Select e.ename,e.sal,d.dname From emp e Inner Join dept d On e.deptno=d.deptno Where e.sal>1500 Order By sal Desc;-- ( 隐式内连接 )Select e.ename,e.sal,d.dname From emp e ,dept d Where e.deptno=d.deptno And e.sal>1500 Order By sal Desc;--1.取消了 emp 表中的外键约束--2.插入数据Insert Into emp Values(1008,'test','teacher',1002,'1-10月-2015',3000,800,80);--左联接Select * From emp e Left Join dept d On e.deptno=d.deptno;--右联接Select * From emp e Right Join dept d On e.deptno=d.deptno;--全联接Select * From emp e Cross Join dept d On e.deptno=d.deptno;--自联接--SELECT DISTINCT mgr FROM emp WHERE mgr IS NOT NULL;Select Distinct e1.empno,e1.ename From emp e1,emp e2 Where e1.empno=e2.mgr;Select Avg(sal) 平均工资, sum(sal) 工资总和 From emp;--统计查询Select Count (empno) From emp;Select Count (1) From emp;--查询总人数Select deptno From emp;Select deptno,Max(sal),Min(sal) From emp Group By deptno;--分组时候,查找的内容要么是聚合函数统计结果,要么是分组的条件Select deptno,Count (empno) From empWhere sal>1000 --统计各个部门中,基本工资超过1000 的员工的人数Group By deptnoHaving Count (empno)>3 --(仅显示部门人数3 人以上的部门)Order By Count (empno) Asc, deptno Asc;Select deptno, job,Count(1) From emp Group By deptno , job--Having Count (1)>=2Order By deptno Asc;--查看一下每个部门的各个岗位上的人员数量Select ename,sal From emp Where sal>(Select sal From emp Whereename='ALLEN');Select ename, job,sal,deptno From emp Where job In(Select Distinct job From emp Where deptno=20);--子查询Select * From empWhere Not Exists --Where Not Exists 就是子查询里面有数据不执行父查询,子查询没有数据执行父查询 where exists 反之(Select * From empWhere deptno=20 And job='CLERK')--查询的结果作为另一个查询的临时表Select * From(Select * From emp Where job='CLERK')Where deptno>20;--分页查询,每页显示5 条,查询第二页信息Select * From(Select Rownum As num , empno,ename, job From emp)Where num>=11 And num<=15;select * from emp where hiredate>'01-10月-1981';select '员工号:'|| empno,'员工姓名:'|| ename,'时间:'|| hiredate from emp;select job from emp where deptno=10--Minus 减去--intersect 交--union all 并select job from emp where deptno=20;Select ascii('a'),ascii('A') From dual;--ascii a A 的位置Select chr(97) From dual;--位置为97的字符为aSelect '同学'||'迟到了' From dual;--链接语句Select concat('同学','迟到了') From dual;--同上Select instr('abcdef','c') From dual;--从下标为1开始查询Select instr('abcdefadd','a',5) From dual;--下标为5 开始查询Select instr('abcdefadad','a',5,2) From dual;--下标为5 查询第二个aSelect lower('The student is Lucy') From dual;--小写Select upper('The student is Lucy') From dual;--大写Select ltrim(' student is Lucy ') From dual;--向左对齐Select rtrim(' student is Lucy ')||'**' From dual;--向右对齐Select ltrim('*!*!student is Lucy*!*!','*!') From dual;--把指定的字符向左去除Select substr('The student is Lucy',4,8) From dual;--字符串的截断从第四个字符开始查找并输出8 个字符Select Replace('The student is Lucy','e','a') From dual;--把字符e 换成 aSelect length('The student Is Lucy') From dual;--整句话的字符长度(包括空格)Select * From emp;Select empno,ename, job,decode(deptno,10,'研发部',20,'市场部',30,'技术部','其他部门') From emp;Select lpad(ename,10,'*'),rpad(ename,10,'*')From emp;--数值函数Select abs(-5) From dual;Select ceil(5.8),ceil(-5.8) From dual;Select floor(5.8),floor(-5.8) From dual;Select round(5.8),round(5.3) From dual;Select trunc(9.357),trunc(9.357,2) From dual;Select empno,ename,trunc(sal /21,2) From emp;--日期函数Select Sysdate,add_months(Sysdate,3) From dual;Select round(Sysdate) From dual;Select trunc(Sysdate) From dual;Select next_day(Sysdate,'星期一') From dual;Select extract(Year From Sysdate) From dual;Select empno,ename,extract(Year From hiredate) 入职年份From emp Where extract (Year From hiredate)=1981;--转换函数Select ename,to_char(sal,'$999,999.99') From emp;游标------------------隐式游标 SQL% -----------------Declarev_no emp.empno%Type;v_name emp.ename%Type;Beginv_no:=&职员编号;Select ename Into v_nameFrom emp Where empno=v_no;If Sql%Rowcount>0 Thendbms_output.put_line('职员的姓名是'||v_name);End If;ExceptionWhen no_data_found Thendbms_output.put_line('职员未找到');End;------------------显式游标 cursor% ---------------DeclareCursor emp_cursor IsSelect ename,empno From emp;--声明游标v_ename emp.ename%Type;v_empno emp.empno%Type;BeginOpen emp_cursor;--打开游标Loop--代表循环的意思Fetch emp_cursor Into v_ename,v_empno;--从游标中取值,并进行处理Exit When emp_cursor%Notfound;dbms_output.put_line('员工号:'||v_empno||' 员工姓名:'||v_ename);--上面三行是取一个值End Loop;--循环结束Close emp_cursor;--关闭游标End;DeclareCursor emp_cursor IsSelect empno,ename,sal From emp Order By sal;--声明游标row_emp emp_cursor%Rowtype; --游标行BeginOpen emp_cursor;--打开游标Loop--开始循环Fetch emp_cursor Into row_emp;--从游标中取值,并进行处理Exit When emp_cursor%Notfound;dbms_output.put_line(row_emp.ename||' '||row_emp.empno||' '||row_emp.sal);End Loop;Close emp_cursor;End;----------------带参数的游标-------------------Declarev_deptno emp.deptno%Type;--定义变量v_deptno,使之字段与deptno相同 Cursor emp_cursor(dno number) IsSelect empno,ename,sal From emp Where deptno=dno;--声明游标row_emp emp_cursor%Rowtype;--游标行Beginv_deptno:='&部门编号';--输入参数值Open emp_cursor(v_deptno);--传递参数LoopFetch emp_cursor Into row_emp;Exit When emp_cursor%Notfound;dbms_output.put_line(row_emp.empno||' '||row_emp.ename||' '||row_emp.sal); End Loop;Close emp_cursor;End;---------------循环游标----------------DeclareCursor emp_Cursor IsSelect empno,ename,sal From emp Order By sal;BeginFor row_emp In emp_cursorLoopdbms_output.put_line(row_emp.empno||' '||row_emp.ename||' '||row_emp.sal);End Loop;End;--------------使用显式游标更新数据-------------Declarecursor emp_cursor IsSelect empno,ename,sal From emp Order By sal DescFor Update;v_increase number:=0;v_new_sal Number;BeginFor row_emp In emp_cursor Loopv_new_sal:=row_emp.sal+v_increase;Update emp Set sal=v_new_salWhere Current Of emp_cursor;dbms_output.put_line(row_emp.empno||' '||row_emp.ename||' '||' Old salary ='||row_emp.sal||' new salary='||v_new_sal);End Loop;End;。
oracle数据库sql的基本使用

oracle数据库sql的基本使⽤整理了下关于oracle数据库中SQL的基本使⽤语句,整理如下,⽅便记忆。
oracle的基本术语数据字典,数据库元数据信息的数据字典表和⽤户可以读取的数据字典视图组成。
存放oracle数据库所⽤的有关信息。
通过数据字典可以查看数据表和⽤户的⼀些信息。
数据⽂件,⼀个oracle数据可以拥有⼀个或多个物理的数据⽂件,⼀个数据⽂件只对于⼀个数据库表空间,存储的逻辑结构,是组织数据和进⾏空间分配的逻辑结构。
简单点,表空间就是⼀个或者多个数据⽂件的集合,所有的数据⽂件都被逻辑的存放在指定的表空间中。
通常有system 、sysaux、 temp三个默认表空间。
系统⽤户:sys,system,sysman,scott默认密码tigger,系统⽤户登⼊SQLplus:[system/123456][@server/ip][as sysdba/sysoper]管理员权限,@server/ip,数据库不在本机,需要输⼊IP。
登⼊⽤户命令:connect sys/123456 as sysdba;connect system/123456查看当前登⼊⽤户:show user使⽤数据字典来查看信息:含有的字典有dba_users、user_users、dba_tablespaces,user_tablespaces(普通⽤户表空间)可以使⽤desc来查看数据字典都有些什么字段, desc dba_users,之后可以使⽤select语句查看具体的记录。
可以查看某个⽤户默认的表空间。
启⽤⽤户的语句:alter user username account unlock。
⽐如启动scoot⽤户alter user scott account unlock;这样就可以使⽤scott⽤户登⼊系统。
表空间这是数据库的逻辑存储空间,在数据库中开辟的⼀个空间来存储数据,oracle的很多优化都是通过表空间来实现的。
oracle常用的sql语句

一、简介Oracle是一种常见的数据库管理系统,广泛应用于各类企业和组织中。
在Oracle数据库中,SQL语句是对数据库进行操作的重要工具。
本文将介绍Oracle常用的SQL语句,包括查询、插入、更新、删除等操作,以帮助读者更好地理解和应用这些语句。
二、查询数据1. SELECT语句SELECT语句用于从数据库中检索数据,语法如下:```sqlSELECT column1, column2, ...FROM table_nameWHERE condition;```其中,column1, column2是要检索的列名,可以使用*代表所有列;table_name是要检索的表名;condition是筛选条件,可选。
2. DISTINCT关键字DISTINCT关键字用于返回唯一不同的值,语法如下:```sqlSELECT DISTINCT column1, column2, ...FROM table_name;```3. WHERE子句WHERE子句用于筛选满足条件的数据,可使用运算符(=、>、<等)和逻辑运算符(AND、OR、NOT等),语法如下:```sqlSELECT column1, column2, ...FROM table_nameWHERE condition1 AND condition2;```4. ORDER BY子句ORDER BY子句用于对结果集进行排序,语法如下:```sqlSELECT column1, column2, ...FROM table_nameORDER BY column1 DESC;```其中,DESC代表降序,ASC代表升序,默认为升序。
5. GROUP BY子句GROUP BY子句用于对结果集进行分组统计,常与聚合函数一起使用,语法如下:```sqlSELECT column1, SUM(column2)FROM table_nameGROUP BY column1;```三、插入、更新和删除数据1. INSERT INTO语句INSERT INTO语句用于向数据库中插入新记录,语法如下:```sqlINSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);```2. UPDATE语句UPDATE语句用于更新数据库中的记录,语法如下:```sqlUPDATE table_nameSET column1 = value1, column2 = value2, ... WHERE condition;```3. DELETE语句DELETE语句用于删除数据库中的记录,语法如下:```sqlDELETE FROM table_nameWHERE condition;```四、连接表和子查询1. JOIN子句JOIN子句用于连接多个表的数据,常用的有INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN。
Oracle数据库常用Sql语句大全

Oracle数据库常用Sql语句大全最简单的就是查询:select语句数据库操作语言DML:update、insert、delete等数据库定义语言DDL:create、drop、alter等等oracle取前几条数据语句sqlserver中可以用top n 的方法,oracle中用rownum,但如果只用rownum会随机取数据,如果想按一定顺序取前几条数据则可这样写:select * from (select列 from 表 where 条件 order by列 desc) where rownum<>select * from (select rownum r ,* from test) ttwhere tt.r 50 and tt.r <= 100;=””>这样子写是会全表扫描的的,小的表不觉得会有多慢,数据量大了你就知道有多不好了,改成这样就不会了oracle怎幺写”IF”语句?如果是 SQL 语句里面使用。
使用 DECODE 或者 CASE WHENDECODE 的用法就是DECODE(abc, 50, 'A’, 'B’)CASE WHEN 的用法就是CASE WHEN abc=50 THEN 'A’ ELSE 'B’ END如果是在存储过程里面的话,就是简单的 IF/ELSE 了SQL 语句的话,就是SELECTabc, DECODE(abc, 50, 'A’, 'B’)FROM表什幺是oracle实例,写出在oracle如何查找实例名的sql语句oracle数据库实例(instance_name)是用于和操作系统进行联系的标识,也就是说数据库和操作系统之间的交互使用的是数据库实例。
数据库名和实例名可以相同也可以不同。
在一般情况下,数据库名和实例名是一对一的关系,但如果在oracle并行服务器架构(即oracle实时应用集群)中,数据库名和实例名是一对多的关系。
oracle基础sql语句
oracle基础sql语句二、SQLStructur query language结构化查询语言,是操作关系型数据库中的对象。
DDL(Data definition language 数据定义语言),用于建表或删表操作,以及对表约束进行修改create table , alter table , drop table 对表结构的增删操作。
DML(Data manipulation language 数据操作语言),向表中插入纪录,修改纪录insert , update , delete , mergetransaction ,事务控制语言,由DML语句组成的,commit; ,rollback;select 查询语句dcl 授权语句 grant三、OracleDBMS 数据库管理系统有Oracle提供,还提供AS,应用服务器DBA 数据库管理员四、相关操作1、sqlplus 访问数据库命令(本地访问/远程访问),和数据库建立连接的命令,是数据库操作的环境sqlplus 用户名/密码2、show user 显示当前用户的用户名改变身份可以直接connect 用户名/密码 --- 这个是sqlplus命令在sqlplus中可以使用 ! 可以在shell和sqlplus间切换,!shell命令可以在sqlplus中使用shell命令。
实际上是sqlplus开了子进程来执行shell命令。
3、Oracle数据库中的表分两类:用户表(用户使用操作的表),系统表(数据库系统维护的表,也叫数据字典)对用户表的DDL操作出发了对系统表的DML操作!五、基本语法1、select查询语句select table_name from user_tables;(查询系统表)以上的查询语句就是查询本用户下所拥有的所有表的表名。
投影操作,只查看选择的字段的信息。
选择操作,查看字段中的特定某些信息。
联接操作,多表查询,通过表间连接,查寻出多表中的信息(1)select table_name from user_tables;(查询系统表)以上的查询语句就是查询本用户下所拥有的所有表的表名。
ORACLE基本的sql语句
ORACLE基本的sql语句⼀、SQL 基础知识1、DDL(数据定义语⾔)1)创建数据表--创建数据表create table Test(Id int not null, Age char(20));--创建数据表create table T_Person1(Id int not null,Name nvarchar(50),Age int null);--创建表,添加外键Create table T_Students(StudentNo char(4),CourseNo char(4),Score int,Primary key(StudentNo),Foreign key(CourseNo) References T_Course(CourseNo));2)修改表结构--修改表结构,添加字段Alter table T_Person add NickName nvarchar(50) null;--修改表结构,删除字段Alter table T_Person Drop NickName;3)删除数据表--删除数据表Drop table T_Person;--删除数据表drop table test4)创建索引Create [Unique] Index <索引名> on <基本表名>(<列明序列>);2、DML(数据操纵语⾔)1)插⼊语句insert into T_Person1(Id,Name,Age) values(1,'Vicky',20)--插⼊⼀条据数,字段和值必须前后对应insert into T_Preson1(Id,Name,Age) values(2,'Tom',19)insert into T_Person1(Id,Name,Age) values(4,'Jim',19)insert into T_Person1(Id,Name,Age) values(5,'Green',20)insert into T_Person1(Id,Name,Age) values(6,'Hanmeimei',21)insert into T_Person1(Id,Name,Age) values(7,'Lilei',22)insert into T_Person1(Id,Name,Age) values(8,'Sky',23)insert into T_Person1(Id,Name,Age) values(newid(),'Tom',19)2)更新语句--修改列,把所有的age字段改为30update T_Person1 set age=30--把所有的Age字段和Name字段设置为...update T_Person1 set Age=50,Name='Lucy'update T_Person1 set Name='Frankie' where Age=30update T_Person1 set Name=N'中⽂字符' where Age=20--中⽂字符前⾯最好加上N,以防出现乱码update T_Person1 set Name=N'成年⼈' where Age=30 or Age=503)删除语句delete from T_Person1--删除表中全部数据delete from T_Person1 where Name='Tom'--根据条件删除数据4)查询语句查询语句⾮常强⼤,⼏乎可以查任意东西!--------------------- 数据检索 ------------------------查询不与任何表关联的数据.SELECT 1+1; --简单运算select 1+2 as 结果SELECT newid();--查询⼀个GUID字符创select GETDATE() as ⽇期 --查询⽇期--可以查询SQLServer版本select @@VERSION as SQLServer版本--⼀次查询多个select 1+1 结果, GETDATE() as ⽇期, @@VERSION as 版本, NEWID() as 编号--简单的数据查询.HelloWorld级别SELECT * FROM T_Employee;--只查询需要的列.SELECT FNumber FROM T_Employee;--给列取别名.As关键字SELECT FNumber AS 编号, FName AS 姓名 FROM T_Employee;--使⽤ WHERE 查询符合条件的记录.SELECT FName FROM T_Employee WHERE FSalary<5000;--对表记录进⾏排序,默认排序规则是ASCSELECT * FROM T_Employee ORDER BY FAge ASC,FSalary DESC;--ORDER BY ⼦句要放在 WHERE ⼦句之后.SELECT * FROM T_Employee WHERE FAge>23 ORDER BY FAge DESC,FSalary DESC; --WHERE 中可以使⽤的逻辑运算符:or、and、not、<、>、=、>=、<=、!=、<>等.--模糊匹配,⾸字母未知.SELECT * FROM T_Employee WHERE FName LIKE '_arry';--模糊匹配,前后多个字符未知.SELECT * FROM T_Employee WHERE FName LIKE '%n%';--NULL 表⽰"不知道",有 NULL 参与的运算结果⼀般都为 NULL.--查询数据是否为 NULL,不能⽤ = 、!= 或 <>,要⽤IS关键字SELECT * FROM T_Employee WHERE FName IS NULL;SELECT * FROM T_Employee WHERE FName IS NOT NULL;--查询在某个范围内的数据,IN 表⽰包含于,IN后⾯是⼀个集合SELECT * FROM T_Employee WHERE FAge IN (23, 25, 28);--下⾯两条查询语句等价。
Oracle-SQL基本语句
Running Head: SQL-基本语句SQL-基本语句Jiale WuHawaii Pacific UniversityFall 2013目录一)系统运用: (3)文件操作命令 (3)交互式命令 (3)显示,设置环境变量 (3)二)账户管理: (3)创建用户:(需要DBA账户) (3)删除账户:(需要DBA账户,同时自己不能删除自己) 3权限设置: (3)profile管理用户口令: (4)三)表管理: (4)数据类型 (4)创建表: (4)删除表: (4)表的修改: (4)插入内容: (5)更新表: (5)删除表内容: (5)四)表查询: (5)LIKE操作符: (5)in操作符: (6)数值运算符 (6)group by分组选项: (6)having子句 (6)多表查询 (7)Between子查询 (7)合并查询: (8)运用子查询更新数据 (8)五)Oracle事务处理: (8)六)Oracle函数: (9)字符函数: (9)数学函数: (9)实例:分页查询: (10)一)系统运用:Conn; 连接Disc ; 断开连接show user; 显示用户passw; 修改密码文件操作命令start和@ 可以运行sql脚本edit 编辑一个脚本spool 将其后运行的结果输入到某脚本命令语法:命令+盘符\文件交互式命令& 用于表示替代变量,例如SQL> select * from where name='&name'那么在键入回车后会弹出对话框,让你填写name对应的值。
(基本废功能)。
显示,设置环境变量linesize 设置显示行宽度pagesize 设置每页显示个数显示,设置环境变量命令使用:SQL> set linesize 50;SQL> set pagesize 5;二)账户管理:创建用户:(需要DBA账户)SQL> create user xiaoming identified by m123;创建用户xiaoming,密码为m123.删除账户:(需要DBA账户,同时自己不能删除自己)SQL> drop user system; SQL> drop user system -cascade删除system账户删除system用户及其所创造的表权限设置:SQL> grant connect to xiaoming; 系统权限SQL> grant select on emp to xiaoming; 对象权限SQL> revoke select on emp from xiaoming; 收回对象权限SQL> select * from scott.emp;用小明查看scott下的emp表权限维护:权限传递,就加入:with grant optionSQL> grant select on emp to xiaoming with grant option;对象权限SQL> grant select on emp to xiaoming with admin option; 系统权限权限传递含株连政策……上一级取消授权政策,下一级同时取消被上级赋予的一切权利。
ORACLE基本SQL语句
ORACLE基本定义、操作语句一、表1.创建表CREATE TABLE TAB_NAME(COL_01 V ARCHAR2(10) NOT NULL,COL_02 NUMBER(8,2),COL_03 DATE);2.添加主键约束ALTER TABLE TAB_NAME ADD CONSTRAINT PK_COL_01 PRIMARY KEY(COL_01); 3.添加唯一性约束ALTER TABLE TAB_NAME ADD CONSTRAINT UK_COL_02 UNIQUE(COL_02);4.添加外键约束ALTER TABLE TAB_NAME ADD CONSTRAINT FK_COL0_03 FOREIGN KEY(COL_03) REFERENCES TAB_2(COL_03);5.添加check约束ALTER TABLE TAB_NAME ADD CONSTRAINT CHK_COL_03 CHECK(COL_01 <> ‘ABC’);6.创建索引――创建唯一索引CREATE UNIQUE INDEX IDX_NAME ON TAB_NAME(COL_01);――创建非唯一索引CREATE INDEX IDX_NAME ON TAB_NAME(COL_01);7.给表添加一个新列ALTER TABLE TAB_NAME ADD COL_04 V ARCHAR2(10);8.修改列的数据类型ALTER TABLE TAB_NAME MODIFY COL_04 NUMBER(8);9.删除一列ALTER TABLE TAB_NAME DROP COLUMN COL_04;10.更改表的名称ALTER TABLE TAB_NAME RENAME TO TAB_NEW_NAME;11.更改表的列名ALTER TABLE TAB_NAME RENAME COLUMN COL_04 TO COL_05;12.给表和列添加注释说明--add comments to the tableCOMMENT ON TABLE TAB_NAME IS‘示例表’;--add comments to the columnCOMMENT ON COLUMN TAB_NAME.COL_01 IS‘列名’;13.删除表DROP TABLE TAB_NAME;14.MERGEmerge into tj_test1 tt1using tj_test tton (tt1.id=tt.id)when matched thenupdate set=,tt1.age=tt.agewhen not matched theninsert values(tt.id,,tt.age)alter table Tab_Name modify(字段varchar(20), 字段varchar(50));二、视图1.创建视图CREATE OR REPLACE VIEW VW_NAME ASSELECT A.COL_01,A.COL_02,A.COL_03,B.COL_04FROM TAB_ONE A,TAB_TWO BWHERE A.COL_01 = B.COL_01;三、序列1.创建序列CREATE SEQUENCE SQ_NAMEINCREMENT BY 10 --序列增量START WITH 20 --开始值MAXV ALUE 1000 --最大值MINV ALUE 20 --最小值NOCACHE /*如果要指定cache给序列,应该写成CACHE N其中N为要指定的数值*/NOCYCLE; /*如果序列到了最大值还要继续取值,就写成CYCLE*/2.修改序列ALTER SEQUENCE SQ_NAMEINCREMENT BY 10 --序列增量START WITH 20 --开始值MAXV ALUE 1000 --最大值MINV ALUE 20 --最小值CACHE 5CYCLE;注:如果想要按不同的值从新开始一个序列,该序列必须删掉重建四、同义词1.创建同义词CREATE SYNONYM SY_NAME FOR TAB_NAME;五、函数创建函数CREATE OR REPLACE FUNCTION FN_NAME([参数1],[参数2],[…..]) RETURN return_typeAS--定义变量BEGIN--函数内容Return [返回值];END;六、存储过程创建过程CREATE OR REPLACE PROCEDURE SP_NAME([参数1],[参数2],[…..]) AS--定义变量BEGIN--过程内容END;七、触发器创建过程CREATE OR REPLACE TRIGGER TR_NAMEAFTER[BEFORE ] [INSERT/UPDATE/DROP] ON TAB_NAMEREFERENCING OLD AS old NEW AS newFOR EACH ROWDECLARE--定义变量BEGIN--触发器内容END;八、包和包体创建包CREATE OR REPLACE PACKAGE PK_NAMEAS--包内容END PK_NAME;创建保体CREATE OR REPLACE PACKAGE BODY PK_NAMEAS--包体的内容END PK_NAME;九、用户1.创建一个用户CREATE USER USR_NAMEIDENTIFIED BY PASSWORDDEFAULT TABLESPACE TAB_SPACE_NAMETEMPORARY TABLESPACE TMP_TABSPACE_NAMEPROFILE DEFAULT;2.给该用户授权GRANT权限类型TO USR_NAME;3.撤销用户权限REVOKE权限类型FROM USR_NAME;4.修改用户密码ALTER USER USR_NAME IDENTIFIED BY NEW_PSD;5.设定用户缺省的角色ALTER USER USR_NAME DEFAULT ROLE ROLE_NAME;设定缺省角色后,用户登陆后就只有该缺省的角色权限了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三ORACLE的基本SQL语句
一、实验目的:
1.掌握SQL PLUS工具的环境及使用。
2.掌握ORACLE的基本SQL语句,并能根据要求熟练书写SQL语句。
二、实验器材:
计算机:P4 2.4、80G硬盘、512M内存、winodwsXP操作系统、ORACLE9I FOR WINDOWS 三、实验说明:
本次实验的计算机上已经安装了ORACLE9I FOR WINDOWS 数据库,其实例名为:CLASS;sys用户的密码:class,system用户密码:class。
四、实验内容和步骤:
1.解锁HR用户。
(1)以SYSTEM/CLASS 登录ORACLE的企业管理器,点击[安全性]-[用户]。
(2)在屏幕右方,双击[HR]用户。
(3)在弹出屏幕上,修改HR的用户密码为:test;
(4)单击[未锁定]按钮。
(5)单击[确定]按钮。
此时,解锁HR用户,其密码更改为:test;
(6)查看HR中各表的结构及数据?
2.使用HR/TEST登录SQL PLUS,完成下列各题。
(1)下面的SELECT语句是否执行成功:
SELECT last_name, job_id, salary AS Sal
FROM employees;
(2)在下面的语句中有4个编码错误,你能找出他们吗?
SELECT employee_id, last_name
sal x 12 ANNUAL SALARY
FROM employees;
(3)
创建一个查询,显示收入超过$12,000 的雇员的名字和薪水。
其结果显示如下
(4)
显示所有在部门20 和50 中的雇员的名字和部门号,并以名字按字母顺序排序。
(5)
写一个查询用首字母大写,其它字母小写显示雇员的last names,显示名字的长度,对所有名字开始字母是J、A或M 的雇员,给每列一个适当的标签。
用雇员的last names 排序结果。
(6)
写一个查询显示所有雇员的last name、department number、and department name。
(7).
创建一个查询显示所有与被指定雇员工作在同一部门的雇员(同事) 的last names、department numbers。
给每列一个适当的标签。
(8).
显示所有雇员的最高、最低、合计和平均薪水,列标签分别为:Maximum、Minimum、Sum 和A verage。
四舍五入结果为最近的整数。
(9).
显示经理号和经理付给雇员的最低薪水。
排除那些经理未知的人。
排除最低薪水小于等于$6,000 的组。
按薪水降序排序输出。
(10).
写一个查询显示与Zlotkey 在同一部门的雇员的last name和hire date,结果中不包括Zlotkey。
(11).显示在Executive 部门的每个雇员的department number、last name和job ID。
(12)
创建一个查询显示雇员总数,和在1995、1996、1997 和1998受雇的雇员人数。
创建适当的列标题。
五、实验报告要求
写出步骤2中各题的结果或SQL语句?。