数据库理论知识积累

一.概念区分

   数据库是一种内部联系密切、冗余度小、结构性强、独立性高、可供有关用户共享的数据集合。

   数据库技术是把一些相关数据组织成数据库,并对其进行集中、统一的管理,实施很强的安全性和完整性控制的技术。

   数据库管理系统是一个用来管理数据库的大型软件。它的主要功能是管理和维护数据库,接受用户提出的访问,处理数据库的各种请求。

   数据库系统是指计算机系统中引入数据库后的系统构成,一般是由相关的数据库、数据库管理系统、应用程序、数据库管理人员及用户组成。

二.sql语句分类

   DDL(数据库定义语句):create,alter,drop;

   DML(数据操作语句):insert,delete,update,select;

   DCL(权限控制语句):grant  to授予权限,revoke from收回权限。

三.Oracle数据库操作

1.数字number

   字符varchar2

   日期类型date

2.表结构

   创建表:create table 表名(不同字段用逗号分隔)

   删除表:drop table 表名

   修改表结构:

   增加列:alter table 表名 add 列名 列属性

   删除列:alter table 表名 drop column 列名

   修改列属性:alter table 表名 modify 列名 列属性

3.表内容

   新增:insert into 表名 (字段名)values (对应的类内容,如果是字符加单引号);

   修改:update 表名 set 字段名=‘修改内容’;

   删除:delete from 表名 where 修改条件;

   查询:select 字段名 from 表名。

    eg. 给列起别名:select name as "姓名" from person;

列计算:select id*12 as id from person;

nvl(comm,0):一个转换函数,如果comm为空,则为零,否则值为comm;

列合并:select ‘员工姓名是’||ename||',工作是'||job as "员工信息" from emp; 注意:和数据一起显示则用单引号,如果是别名则用双引号。

排序:asc升序,desc降序。 select * from emp order by sal asc,ename desc;

条件:select * from emp where job = 'clerk' and sal<3000;

模糊查询:%代表0或多个任意字符,_代表一个任意字符。select * from emp where ename like '_s%';

(1)select * from emp where sal in (6000,7000,8000);是里面的任意一个即可

(2)select * from emp where sal>any(1000,2000,3000);大于3个中任一个即可

(3)select * from emp where sal>all(1000.2000.3000);大于所有的

(4)and的优先级大于or:select * from emp where sal between 1000 and 3000;

日期转换函数:to_char(hiredate,'yyyy-mm-dd')将日期转化为varchar2

to_char(hiredate,'yyyy')只转换成年

to_date(hiredate,'yyyy-mm-dd hh24:mi:ss')第二个参数表示转化的格式

聚合函数(分组函数):max,min,sum,avg,count(数据统计),group by(分组)

eg.查询每个部门的最高工资

select max(sal) from emp group by deptno;

组合分组:group by deptno, job

查询每个部门每种工作的平均工资

  select avg(sal) from emp group by deptno,job;

  关键字执行顺序:where——group by——having——order by

distinct:相同元素合并

eg.查询一共有多少个不同的工作

select sum(distinct deptno) from emp;

4.多表查询(面试重点,建议找例子练习一下)

等值连接:在笛卡尔积(所有条件的组合)的基础上进行条件筛选。

自连接:同等值连接同样的道理,只是将同一个表进行连接。

外连接:分左外连接和右外连接,左外连接以作表为基准,右外连接以右表为基准。注意:等值连接和自连接是求积,外连接是求和。

eg.select * from dept d left join emp e on e.deptno = d.deptno(外连接条件,不是帅选) where empno is null;

两个表纵向连接:使用union连接(必须有相同数量的列,并且列的类型必须相同)

eg.select sname,ssex,sage from student union select tname,tsex,tage from teacher;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值