数据库查询,视图和存储过程

96 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

数据库系统原理第九节

数据库设计

数据查询

where 子句和条件查询

between 2 and 4 包含2,4

in (1,2,4)

is null

is not null

子查询

表子查询 行子查询 列子查询 标量子查询

比较运算符包括

  • ALL
  • SOME
  • ANY

结合exists

group

group by id asc|desc with rollup

having

group by id having count(*) < 3

order

order by id asc|desc

group 和 order的差别
grouporder
分组行,但输出可能不是分组的排序排序产生的输出
只能使用选择列或表达式列任意列都可以使用
若与聚合函数一起使用列或表达式, 则必须使用group不一定需要
limit

limit 1,10

数据库系统原理第十节

数据库设计

数据查询

视图

什么是视图

  • 视图是一个对象,他是数据库提供给用户的以多种角度观察数据库中数据的一种重要机制
  • 视图不是数据库中真实的表,而是一张虚拟表,其自身并不存储数据

视图的优点

  • 集中分散数据
  • 简化查询语句
  • 重用SQL语句
  • 保护数据安全
  • 共享所需数据
  • 更改数据格式
创建视图

or replace 防止报错,存在替换,不存在创建 with check option 增删改查的时候检查视图条件

create or replace view view_name [(col_list)]
as select_statement
with check option
删除视图

drop view view_name

修改视图
alter view view_name [(col_list)]
as select_statement
with check option
查看视图定义
show create view view_name
更新视图数据
insert into table_name 
values(value1,...);
update table_name set col_name = 'value'
删除视图数据
delete from table_name where ...
查询视图数据

select

数据库编程

存储过程

存储过程 是一组为了完成某项特定功能的 SQL语句集

  • 可增强SQL语言的功能和灵活性
  • 良好的封装性
  • 高性能
  • 可减少网络流量
  • 可作为一种安全机制来确保数据库的安全性和数据的完整性 其实质就是一段存储在数据库中的 代码 它可以由声明式的sql语句和过程式sql语句组成

创建存储过程

DELIMITER $$ //用户定义的MYSQL 结束符

参数:in|out|inout 参数名 参数类型

DELIMITER $$
create procedure sp_name(参数)
BEGIN
body //存储过程代码
END $$

调用存储过程

call sp_name(参数)

删除存储过程

drop procedure sp_name