复习:
(1)DDL :数据定义语言  create ,alter ,drop(2)DQL :数据查询语言  select 单表查询  :select .. from 表名[where] ..[group by]..[having]..[order by asc/desc]多表查询  :92 : select ..from 表名1,表名2 where 连接条件99:select ..from 表名1 inner join 表名2 on 连接条件 [where...]left join , right join select ... from 表名1 left /right join 表名2 on连接条件 子查询
(3)DML :数据操作语言 insert ,update,delete 数据库常用对象
(1)索引  :用于提高“检索”/查询效率索引本身需要占用磁盘空间,所以不是说越多越好,而是要在合适的列上建立索引经常用于“条件筛选”或者排序的列比较合适建立索引语法:创建索引  create index 索引名称 on 表名( 具体的列);删除删除 msyql: alter table 表名drop index 索引名称oracle: drop index 索引名称-- 创建索引
create index ind_ename on emp (ename);
-- 索引怎么用啊?^_^,查询时自动起作用,无需程序操心
select * from emp where ename='SCOTT';
alter table emp drop index ind_ename; -- mysql支持,删除索引
drop index ind_ename; --oracle 支持,mysql不支持create index ind_ename on emp (ename);
alter table emp drop index ind_ename;--不支持
drop index ind_ename; --支持(2)事务
mysql
--mysql需要使用start transaction开启事务,需要使用commit提交事务,使用rollback回滚事务
create table account(id int(4) primary key auto_increment,accname varchar(20),balance int(4)
);
--添加测试数据
insert into account(accname,balance) values ('zhangsan',500);
insert into account(accname,balance) values ('lisi',200);
select * from account;
--手动开启事务
start transaction;
update account set balance=balance-200 where accname='zhangsan';
update account set balance=balance+200 where accname='lisi';
ROLLBACK; --手动回滚事务
commit; --手动提交事务
-- 如果没有start transaction;SQL语句执行完毕自动提交
oracle中的事务是通过insert ,update,delete开启事务,使用commit提交事务或DDL可以以自动提交事务,使用rollback回滚事务,oralce:create table account(id number(4) primary key,accname varchar2(20),balance number(7,2)
);
--insert是DMl数据操作语言,自动开启事务
insert into account values (1,'zhangsan',500);
insert into account values (2,'lisi',200);
create user bbt identified by bbt; --DDL数据定义语言,遇到DDL自动提交事务
select * from account;
rollback; --手动回滚
commit;--手动提交
事务的隔离级别  参与mysql授课笔记(3)视图定义:
视图是从若干基本表和(或)其他视图构造出来的表。
在创建一个视图时,只是存放的视图的定义,也即是动态检索数据的查询语句,而并不存放视图对应的数据
在用户使用视图时才去求相对应的数据。所以视图被称作“虚表”作用:
可以限制对数据的访问,可以给用户授予表的特定部分的访问权限而不是整个表的访问权限。
可以使复杂的查询变的简单。在编写查询后,可以方便地重用它而不必知道他的基本查询细节。
提供了对相同数据的不同显示oralce分页查询和统计查询都写成了视图,作用,将复杂的SQL语句进行简化
select * from emp order by sal desc;
--分页查询
select rownum as rid, t.* from (select * from emp order by sal desc)t;
create view vi_empsal
as
select * from (select rownum as rid, t.* from
(select * from emp order by sal desc)t)  temp
where rid>4 and rid<=8;
select * from vi_empsal;--统计查询
create view vi_emp2
as select dname,numcount,maxsal,avgsal from dept  d, (select deptno,count(*) as numcount,max(sal) as maxsal,avg(sal) as avgsal from emp where deptno is not null  group by deptno)twhere d.deptno=t.deptno;;
select * from vi_emp2;
mysql:中的视图--视图,视图是一张虚表,在数据库中根本不存在,操作视图实际上就是在操作基本表
--创建视图
create view vi_emp
as select * from emp;
--如何使用视图呢?(基本表怎么使用,视图就怎么使用)
--查
select  * from vi_emp;
--增,删,改   (对视图就是对视图所对应的基本表的操作)
update vi_emp set sal=900 where ename='SMITH'; --修改了视图中smith的薪水
select * from emp;
--但是,视图最主要的工作就是查询
create view vi_emp2  --使用视图限定表中列的查询权限
as
select empno,ename,dname from emp e,dept d where e.deptno=d.deptno;
select * from vi_emp2;  删除视图drop view 视图名称;(4)存储过程 (防止SQL注入)delimiter //create PROCEDURE mypro(out s int)BEGINselect count(*) into s from emp;end //delimiter ;
--call 存储过程的名称  调用存储过程
set @s=0;
call mypro(@s);
select @s;
--删除的存储过程
delimiter //
create PROCEDURE deletebyno( in nid int)begin delete from emp where empno=nid;end //
delimiter ;
--使用存储过程
call deletebyno(7369);--删除存储过程
drop PROCEDURE deletebyno;
select * from emp;
--新增的存储过程
delimiter //
create PROCEDURE insertemp( in deptno1 int, in  dname1 varchar(20), in loc1 varchar(20))begin insert into dept values (deptno1,dname1,loc1);end //
delimiter ;
call insertemp(50,'财务部','北京');
select * from dept;
oracle中的存储过程--根据员工编号查询
SELECT * FROM EMP WHERE EMPNO=7902
----------------增加的存储过程-------------------------------
CREATE OR REPLACE PROCEDURE up_save(EMPNO IN NUMBER,ENAME VARCHAR2,JOB VARCHAR2,MGR IN NUMBER,HIREDATE DATE,SAL NUMBER,COMM NUMBER,DEPTNO NUMBER
)
AS
BEGININSERT INTO EMP VALUES(EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO);
END;
EXECUTE up_save(1111,'xhna','CLERK',7902,SYSDATE,9000,890,20);
---------------------修改的存储过程-----------------------------------
CREATE OR REPLACE PROCEDURE up_update(mempno IN NUMBER,mname VARCHAR2,mjob VARCHAR2,mmgr IN NUMBER,mhiredate DATE,msal NUMBER,mcomm NUMBER,mdeptno NUMBER
)
AS
BEGINUPDATE EMP SET ENAME=mname,JOB=mjob,MGR=mmgr,HIREDATE=mhiredate,SAL=msal,COMM=mcomm,DEPTNO=mdeptno WHERE EMPNO=mempno;
END;
EXECUTE up_update(1111,'xhna','CLERK',7902,SYSDATE,1000,890,20);
--------------------删除的存储过程--------------------------
CREATE OR REPLACE PROCEDURE up_delete(eno IN NUMBER)
AS
BEGINDELETE FROM EMP WHERE EMPNO=eno;
END;
--执行
EXECUTE up_delete(1113);
--------------------根据部门编号删除员工的存储过程-------------------------------
CREATE OR REPLACE PROCEDURE up_deleteEmpByDeptno(tno IN NUMBER)
AS
BEGINDELETE FROM EMP WHERE DEPTNO=tno;
END;
--------------------根据部门编号删除一个部门-------------------------------------
CREATE OR REPLACE PROCEDURE up_deleteDeptno(tno IN NUMBER)
AS
BEGINDELETE FROM DEPT WHERE DEPTNO=tno;
END;
------------------------增加部门的存储过程---------------------------------------------------------
CREATE OR REPLACE PROCEDURE up_saveDept(tno IN NUMBER,tname VARCHAR2,tloc VARCHAR2)
AS
BEGININSERT INTO DEPT VALUES(tno,tname,tloc);
END;
-------------------------修改的存储过程--------------------------------------------------------
CREATE OR REPLACE PROCEDURE up_updateDept(tno IN NUMBER,tname VARCHAR2,tloc VARCHAR2)
AS
BEGINUPDATE DEPT SET DNAME=tname,LOC=tloc WHERE DEPTNO=tno;
END;---------------查看当前数据库实例名------------------
SELECT name FROM v$database;

mysql常用数据库对象相关推荐

  1. 【腾讯面试题】MySQL常用数据库引擎

    MySQL常用数据库引擎 MyISAM存储引擎 InnoDB存储引擎 MEMORY存储引擎 存储引擎的选择 查看MySQL数据库使用的引擎 SHOW ENGINES; 查看数据库默认使用哪个引擎 SH ...

  2. MySQL常用数据库引擎

    MySQL常用数据库引擎 查看MySQL数据库使用的引擎 SHOW ENGINES; 查看数据库默认使用哪个引擎 SHOW VARIABLES LIKE 'storage_engine'; MyISA ...

  3. MySQL之数据库对象查看工具mysqlshow

    mysqlshow:数据库对象查看工具,用来快速查找存在哪些数据库.数据库中的表.表中的列或索引. 选项:--count    显示数据库和表的统计信息 -k         显示指定的表中的索引 - ...

  4. Oracle事务和常用数据库对象

    1.事务:有一组命令组成的逻辑单元,保证所有操作要么全部成功要么全部失败. 以下情况事务结束:1)显式提交(commit) 2)显式回滚(rollback) 3)ddl语句隐身提交 4)正常结束程序提 ...

  5. 在mysql中数据库对象包括_数据库对象包括哪六个?

    数据库对象包括:用户(对数据库有权限访问的人).视图(显示用户需要的数据项).索引(给用户提供快速访问数据的途径).触发器(用户定义的SQL事务命令集合).序列(提供了唯一数值的顺序表).图表(数据库 ...

  6. mysql优化数据库对象

    1 优化表的数据类型 表需要使用何种数据类型,是需要根据应用来判断的.虽然应用设计的时候需要考虑字 段的长度留有一定的冗余,但是不推荐让很多字段都留有大量的冗余,这样即浪费磁盘存储 空间,同时在应用程 ...

  7. mysql导出数据库对象命令_mysql数据库导出数据(命令)

    MySQL数据库数据导出 一.导出命令 导出所有数据库: mysqldump -u [数据库用户名] -p -A>[备份文件的保存路径] 导出数据和数据结构: mysqldump -u [数据库 ...

  8. MySQL定义数据库对象之指定definer

    mysql创建view.trigger.function.procedure.event时都会定义一个Definer: SQL SECURITY 有两个选项,一个为DEFINER,一个为INVOKER ...

  9. 在mysql中数据库对象包括_access2010数据库的对象包括哪几种

    access2010数据库的对象包括哪几种? Access2010主要对象有数据表.查询.报表.窗体.宏.模块. 数据表(Table) --表是Access数据库的核心对象,主要是用于存储数据,是创建 ...

最新文章

  1. Robotics Research Laboratory
  2. C# 系统应用之清除Cookies、IE临时文件、历史记录 转载
  3. python电脑版微信-python如何实现远程控制电脑(结合微信)
  4. 常见视频接口介绍,VGA,YPbPr,DVI,HDMI,DisplayPort
  5. centos更改默认python_CentOS系统python默认版本由python2改为python3
  6. 面向对象的三个基本特征(讲解)-转载
  7. 当你不被上司信任和待见,工作无法正常开展
  8. CIO,马上就没有线下灾备了,不要做最后一个
  9. GNOME 2.18.2
  10. IE7的web标准之道——5:(修正)上去了!终于上去了!
  11. 重拾数月前做的微信红包小项目
  12. 解决npx @electron-forge/cli import时提示缺失依赖
  13. .NET程序员我是如何通过一个产品在2年内买车买房
  14. 电子设计教程53:555定时器工作原理与常见应用
  15. PS像素,分辨率的概念
  16. eel+html 2 exe
  17. 同事能力比你强怎么办
  18. IO流-常用的IO流总结
  19. oracle 存储过程语法例子
  20. win7 C盘的User文件夹转移到D盘

热门文章

  1. 笔记:软件工程常用开源文档模板 + 软件著作权
  2. Mapbox学习笔记(1)——style
  3. public static void main(String[] args)
  4. iPhone降级查看apple通道是否开启的方式
  5. java计算机毕业设计工会会员管理系统源码+mysql数据库+系统+lw文档+部署
  6. 阿里云IoT物模型-属性,服务,事件通信的topic和payload详解——设备管理运维类
  7. 晶体封装越小esr越大_晶振与晶体的参数详解
  8. 关于发那科机器人程序偏移功能
  9. fanuc机器人刷机教程_FANUC机器人中文简易教程
  10. 基于SSM实现的物流管理系统【附源码】(毕设)