创建表空间、创建用户、创建表、对表添加约束、修改约束和删除约束属于数据定义语言(DDL)
用户授权、回收权限属于数据控制语言(DCL)
数据操控语言(DML)用于检索、插入和修改数据库信息。
--创建一张学生表
create table student(
stuid number(4) primary key,
stuname nvarchar2(20) not null,
stusex char(2) check(stusex='男' or stusex='女'),
stuage number(3) default 20,
stuphone char(11) not null
);
create table stu_backup(
stuname nvarchar2(20) not null,
stuage number(3) default 20,
stuphone char(11) not null
);
--把已经存在的表里的数据添加到另一张表里来
insert into stu_backup select s.stuname,s.stuage,s.stuphone from student s
select * from stu_backup;
--添加一列
alter table student add(stubirthday date);
--添加数据
insert into student(stuid,stuname,stusex,stuage,stuphone)
values(1000,'李慧坚','男',20,'13645698799');
insert into student(stuid,stuname,stusex,stuphone)
values(1001,'吴乾','男','13645698659');
insert into student(stuid,stuname,stusex,stuphone)
values(1002,'杨廉','女','13645698688');
insert into student values(1003,'邓展南','女',18,'15945687985',sysdate);
commit;
insert into student values(1004,'刘勇','女',28,'15945687989',sysdate);
commit;
insert into student values(1005,'罗毅','男',16,'15945687977',to_date('1998-11-11','yyyy-mm-dd'));
commit;
insert into student values(1006,'学霸','女',20,'15945686977',to_date('1994-11-11 12:23:23 ','yyyy-mm-dd hh:mi:ss'));
commit;
select * from student;
--修改数据
update student set stuage=25;
update student set stuage=25 where stuid=1000;
update student set stubirthday=to_date('1980-12-12 11:45:23','yyyy-mm-dd hh:mi:ss'),stuphone='13245678965'
where stuid=1000;
--删除数据
delete from student;
delete student;
delete student where stuid=1006;
--truncate
truncate table student;
--删除表的数据有两种方法
--1.是delete,用delete删除,可以加条件,而且可以回滚事务
--2.是truncate,用truncate删除,不能加条件,直接整表的数据都被永久的删除,自动提交事务,所以没办法回滚事务
--查询
--查询学生表所有的列的内容
select * from student for update;
--查询学号为1000的学生信息
select * from student where stuid=1000;
--查询学号为1000的学生的姓名和年龄
select student.stuname,student.stuage from student where student.stuid=1000;
--只想查这张表里的性别,去掉重复的
select distinct stusex from student;
--查询时可以给表起个别名,方便使用
select s.stuid "stuno",s.stuname "stuname" from student s;
--根据年龄来进行排序查询,可以升序(asc)也可以降序(desc),默认是升序
select * from student order by stuage desc;
--利用现有的学生表再创建一个新的表(相当于复制表的功能)
create table new_studnet as select * from student;
select * from new_studnet;
--查询名字的年龄是xx
select stuname||'的年龄是'||stuage as "学生的年龄" from student;
--员工表里有几个部门
--group by分组,如果你的查询语句里有了group by,那么select的后面
--只能查询group by后面的列,或者是聚合函数
select e.deptno from emp e group by e.deptno;
--分完组后再加条件,用having关键字,后面跟条件
--注意,分组前加条件用where,后组后加条件用having关键字
select e.deptno from emp e group by e.deptno having e.deptno=10;
--简单查询所用的一些语法
select from 表名 where group by having order by
--查询中也可以用到算术运算符(f,-,*,/)
select * from student;
--查询每个人年龄加了5岁之后的年龄
select s.stuage 没加5岁前, s.stuage+5 加了5岁后 from student s;
--%不是求余的意思
select mod(3,5) from dual; --用到一个数据函数
--还可以用到比较运算符(=,!=,>,<,>=,<=,<>),between ..and ,in .like,is null,is not null
--查询学生年龄大于20岁的学生信息
select * from student s where s.stuage>=20;
--查询年龄在15-20之间
select * from student s where s.stuage>=15 and s.stuage<=20;
select * from student s where s.stuage between 15 and 20;
--查询年龄是15,18
select * from student s where s.stuage in(15,18);
select * from student s where s.stuage=15 or s.stuage=18;
--查询没生日的学生信息
select * from student s where s.stubirthday is null;
select * from student s where s.stubirthday is not null;
--模糊查询,like配合%或者_
--%指任意长度的任何字符
--_指一个长度的任何字符
--查询学生表里名字是以 李 开头的
select * from student s where s.stuname like '李__';
--查询中的逻辑运算符(and ,or,not)
--查询年龄大于15并且生日不为空的学生信息
select * from student s where s.stuage>15 and s.stubirthday is not null;
select abs(100),abs(-100) from dual;
select sign(100),sign(-100),sign(0) from dual;
select ceil(-3.1) from dual;
select floor(3.1) from dual;
select round(5555.6666,2.5) from dual;
select sysdate hz from dual;
select systimestamp hz from dual;
--聚合函数avg(),max(),min(),sum(),count()
select * from student;
select max(stuage) from student;
select min(stuage) from student;
select avg(stuage) from student;
select sum(stuage) from student;
select count(*) from student;
--根据部门编号来分组并且求出每个部门有多少个人
select deptno, count(empno) from emp group by deptno
-- 先根据部门编号来分组,然后求出每个部门的工资的最大值,最小值,平均值
select e.deptno, max(e.sal),min(e.sal),avg(e.sal) from emp e group by e.deptno having avg(e.sal)>2000;
select * from emp where deptno=30;
--分析函数
--分析函数
select e.ename,e.deptno,e.sal,rank() over(partition by e.deptno order by e.sal) "rank"
from emp e;
select e.ename,e.deptno,e.sal,dense_rank() over(partition by e.deptno order by e.sal) "dense_rank"
from emp e;
select e.ename,e.deptno,e.sal,row_number() over(partition by e.deptno order by e.sal) "row_number"
from emp e;
相关推荐
SQL Server高级查询与T-SQL编程是数据库管理与开发中的核心技能,涵盖了多个关键知识点。以下是对这些主题的详细说明: 1. **数据库设计**: - **需求分析**:这是设计过程的第一步,旨在理解用户的需求,确定系统...
1. 存储过程和函数:编写使用PL/SQL编程语言的存储过程和函数,以实现复杂的逻辑和业务规则。 2. 高级查询技术:使用Oracle SQL的高级特性,如分析函数、子查询、连接以及数据聚合等。 3. 事务处理:深入理解如何...
综上所述,《SQL Server高级编程管理指南》涵盖了数据库设计、T-SQL编程、性能优化、安全管理和高可用性等多个方面,是一本全面的SQL Server学习资料。通过深入研读,读者可以全面提升在SQL Server环境中的编程和...
精通Oracle SQL【第2版】ORACLE SQL高级编程【第二版】学习笔记
1. **T-SQL编程**:T-SQL(Transact-SQL)是SQL Server的扩展,提供了更多的控制和功能。了解如何编写存储过程、触发器、函数(包括内置和用户定义)以及事务管理,是高级编程的基础。 2. **索引和查询优化**:索引...
Oracle SQL高级编程笔记是针对数据库管理员、开发人员和数据分析师的重要参考资料,涵盖了SQL在Oracle数据库系统中的高级应用。这些笔记详尽地阐述了如何利用Oracle SQL进行高效的数据查询、操作和管理,旨在提升...
教程名称:Oracle高级开发课程之PL-SQL编程入门视频课程目录:【】PL_SQL编程课程_-lesson3【】PL_SQL编程课程_lesson5-2(完结)【】PL_SQL编程课程_最佳入门教程-intr1【】PL_SQL编程课程_最佳入门教程-lesson1【】...
《Oracle SQL高级编程/数据库系列》的作者莫顿以精炼、风趣的语言揭开了Oracle SQL高级编程的神秘面纱。所涵盖的内容涉及SQL核心、SQL执行、分析函数、联结、测试与质量保证等,并提供大量实用性建议,且总结出...
Oracle SQL高级编程是针对数据库开发和管理的专业领域,旨在帮助高级编程人员深入理解和掌握SQL在Oracle数据库中的应用。Oracle数据库是世界上最广泛使用的数据库系统之一,它提供了强大的功能和高效的性能,使得SQL...
高级 SQL 编程能够极大地提高数据库的查询效率和数据处理能力,为企业提供更加智能和高效的数据管理解决方案。 With 子句 With 子句是 SQL 中一种高级的查询语句,能够将复杂的查询语句简化成简单易读的语句。With...
5. 高级PL/SQL编程:包括PL/SQL集合、异常处理、游标使用以及在PL/SQL中实现复杂的业务逻辑。 6. 性能优化:理解如何通过SQL优化提高数据检索和修改的效率,涉及SQL执行计划分析、索引优化、SQL调优等。 7. 数据...
SQL Server 2000 高级编程技术
《SQLSERVER2000高级编程》是一本深入探讨Microsoft SQL Server 2000的专著,尤其关注其中的存储过程技术。SQL Server 2000是微软公司推出的一款关系型数据库管理系统,它在企业级数据管理、分析和应用开发中扮演着...
本资源包含"Oracle SQL 高级编程"的详细教程及配套源码,旨在帮助读者深入理解并熟练掌握Oracle SQL的高级特性。 一、子查询 Oracle SQL中的子查询允许在一个查询中嵌套另一个查询,用于获取或比较数据。子查询可以...
《Oracle SQL高级编程》是图灵程序设计丛书数据库系列中的一部重要著作,由资深Oracle专家撰写,并得到了OakTable团队的强力推荐。这本书是Oracle开发人员和DBA提升技能、深入理解Oracle SQL不可或缺的参考资料。它...
3. **PL/SQL编程**:Oracle的PL/SQL是一种过程化语言,用于编写存储过程、函数、触发器等。掌握PL/SQL语法、异常处理、游标、动态SQL和包的使用能增强数据库的可维护性和功能性。 4. **索引策略**:索引是提升查询...
1. **Transact-SQL编程**:这是SQL Server的主要编程语言,用于创建和管理数据库对象,如表、视图、存储过程和触发器。学习如何编写复杂的查询语句,优化性能,以及使用动态SQL和嵌套查询是提升编程能力的重要步骤。...
根据提供的文件信息,下面是详细的知识点说明: 1. SQL基本概念: SQL(Structured Query Language)是...由于缺少完整文档内容,无法覆盖更全面的SQL高级主题,如高级查询技术、复杂数据结构设计、优化查询性能等。
《Oracle SQL 高级编程》一书的随书脚本集合是学习和深入理解Oracle数据库管理及SQL高级特性的宝贵资源。这些脚本涵盖了从基础查询到复杂的数据操作、存储过程、函数以及触发器等多个方面,旨在帮助读者提升在Oracle...