建立一张简单的查询视图,不用临时表,只用条件合并 在简单的查询中,建立临时表的开销比较大 这是可以指定algorithm选项为merge 在v2的视图中,并没有建立临时表 但在下列情况下,必须建立临时表 不能接着按照建立的临时表继续写MySQL语句时,用temptable 如果拿不准用什么,algorithm = undefined, 上系统决定…
在查询中,我们经常把查询结果当成临时表 view可以看成是一张虚拟表,是表通过某种运算得到的一个投影 在建立视图时,不需要指定视图的列名与列类型 红框内的为select选择语句 蓝框内的与建表语句类似 在建立了view stats视图后,表的操作在视图上都可以实现 视图的作用 (1)简化查询 (2)更精细的权限控制 比如用户表,2个网站合作,可以查询对方网站的用户 需要向对方开放用户表权限,但是有不想开放密码字段 (3)数据多,分表时可以用到 表与视图数据变化时的关系 更改数据后 cat_id…
为方便本节学习, 请先自行建立本表: 建一个商品表: create table goods ( -> goods_id mediumint(8) unsigned not null auto_increment, -> cat_id smallint(5) unsigned not null default '0', -> goods_sn varchar(60) not null default '', -> goods_name varchar(120) not null de…
(一) 把建立的goods表找到 (二) 当cat_id = 3时,计算所有商品的库存量之和 计算每个cat_id下的库存量(group by) 需要用到分组,把每个红框内的计算在一起 筛选出本店价比市场价低200以上的商品 或 where条件是计算对最初列的计算 having是对结果集进行再次筛选 综合练习 查询每种商品积压的货款(本店价*库存量) 该店积压的总货款 查询每个cat_id下的货款 查询出积压货款金额>2000的cat_id…
先把之前建的goods表找到 找到最贵的本店价(max) 找到最便宜的本店价(min) 查出一共还有多少商品(count) 查看商品价的平均价(avg) 查看本店有多少种商品 当count(*)时 输出的时绝对行数 而count(列名)时,输出行数为不为null的 mysql> select * from test4; +------+------+ | id | name | +------+------+ | Lili | | NULL | +------+------+ rows in s…
(知识回顾) 连接数据库 mysql -uroot -p111 先建立一个新库 create database test1; use test1; 由于今天的主要内容是表的操作,建立表的详细过程不是本文的重点 我就直接给出建表的代码 mysql> create table xinshui( -> id int primary key, -> name varchar(10), -> sex char(1), -> company varchar(20), -> sala…
先选择goods表 set names gbk; 把本店价从低到高排序(order by) (注意)order by 要放在where, group by, having之后 查询本店价从高到低排序 按发布时间降序排列(把最新的放在最前面) (按照两种因素排序) 按cat_id进行升序排序,再按shop_price进行降序排序 多字段排序,先按照第一个字段排,如果第一个字段相同,才会按第二个字段排序 想取出最贵的十个产品(limit) 查询出本店价在3到5之间的商品 limit后如果只有一个数字…
create table 表名 ( 列名1 列属性, 列名2 列属性 ... ... 列名n 列属性 )engine myisam charset utf8; (增加表的一列) (一)在表的最末列增加一列 (二)在指定列后加入某列 (三)在表的最前面增加一列 (删除列) (修改某一列的属性) 把username中的char(20) 改成char(30) (修改某一列的名字及列类型) 把username的列名改为name (值得注意的是:除了表名,表的属性也会改变)…
关于触发器的理解: 进行数据库应用软件的开发时,有时我们碰到表的某些数据的改变时,希望同时 引起其他相关数据改变的需求,利用触发器就能满足这样的需求. 触发器能在表中的某些特定数据变化时自动完成某些查询,运用触发器不仅仅可以 简化程序,而且可以增加程序的灵活性 触发器是一类特殊的事务: 可以监视某种数据的操作(insert/update/delete) 并触发相关的操作(insert/update/delete) 需求: 商品表:goods 订单表:ord 当下一个订单时,对应的商品要相应减少(…
engine 引擎就是MySQL存储数据的不同方式 myisam 插入速度快 支持全文索引 innoDB 插入速度慢 支持事务安全 假设两人同时购买火车票,两人同时看到只有一张火车票,几乎同时下单 或 在银行转账时,张三转李四500元,两边必须都完成,转账才算完成, 张三少钱和李四多钱必须一致的,这个两个操作必须同时成功或同时失败,不能一个成功,而另一个失败 需要用到事物 建立两张完全一样的表,但是引擎不一样 各插入两条数据: mysql> insert into a1 -> values )…