摘要:
我们把若干条sql封装取来,起个名字 把此过程存储在数据库中叫存储过程 调用procedure 储存过程是可以变成的,意味着可以使用变量,表达式,控制结构 来完成复杂的功能 声明变量 procedure也可以进行运算 对procedure进行控制 给存储过程传参 更加复杂的流程循环 while循环: 阅读全文
摘要:
关于触发器的理解: 进行数据库应用软件的开发时,有时我们碰到表的某些数据的改变时,希望同时 引起其他相关数据改变的需求,利用触发器就能满足这样的需求。 触发器能在表中的某些特定数据变化时自动完成某些查询,运用触发器不仅仅可以 简化程序,而且可以增加程序的灵活性 触发器是一类特殊的事务: 可以监视某种 阅读全文
摘要:
engine 引擎就是MySQL存储数据的不同方式 myisam 插入速度快 支持全文索引 innoDB 插入速度慢 支持事务安全 假设两人同时购买火车票,两人同时看到只有一张火车票,几乎同时下单 或 在银行转账时,张三转李四500元,两边必须都完成,转账才算完成, 张三少钱和李四多钱必须一致的,这 阅读全文
摘要:
建立一张简单的查询视图,不用临时表,只用条件合并 在简单的查询中,建立临时表的开销比较大 这是可以指定algorithm选项为merge 在v2的视图中,并没有建立临时表 但在下列情况下,必须建立临时表 不能接着按照建立的临时表继续写MySQL语句时,用temptable 如果拿不准用什么,algo 阅读全文
摘要:
在查询中,我们经常把查询结果当成临时表 view可以看成是一张虚拟表,是表通过某种运算得到的一个投影 在建立视图时,不需要指定视图的列名与列类型 红框内的为select选择语句 蓝框内的与建表语句类似 在建立了view stats视图后,表的操作在视图上都可以实现 视图的作用 (1)简化查询 (2) 阅读全文
摘要:
(一)数学函数 abs(x) 返回x的绝对值 bin(x) 返回x的二进制(oct返回八进制,hex返回十六进制) ceiling(x) 返回大于x的最小整数值 exp(x) 返回e的x次方 floor(x) 取整函数 (二)聚合函数 avg(col) 返回指定列的平均值 count(col) 返回 阅读全文
摘要:
先建立一张 m 表 mysql> insert into m -> values -> (1, 1, 2, '2:0', '2018-08-03'), -> (2, 2, 3, '1:2', '2018-08-03'), -> (3, 3, 1, '2:5', '2018-08-04'), -> ( 阅读全文
摘要:
先插入两个表,便于之后的学习 交叉连接 建立一张小的goods表方便练习 交叉相乘(行数为两表行数相成,列数为两表列相加) 字段列表中的“Cat_ID”列不明确。 两张表都存在cat_id列,某一列名,在两张表内都出现,需要指定表名.列名 如果嫌太长了 也可以选择用别名的方式 但在查询中,明显看出有 阅读全文
摘要:
先找到goods表 查询goods_id最大的商品 where型的子查询 查询goods_id最大的商品(不能用排序) 把两步写成一步,就是子查询 from型子查询 查找出每种cat_id下goods_id最大的商品 思路:1. 先用cat_id进行排序,再用goods_id进行降序排列 2. 再用 阅读全文
摘要:
先选择goods表 set names gbk; 把本店价从低到高排序(order by) (注意)order by 要放在where, group by, having之后 查询本店价从高到低排序 按发布时间降序排列(把最新的放在最前面) (按照两种因素排序) 按cat_id进行升序排序,再按sh 阅读全文