先找到goods表 查询goods_id最大的商品 where型的子查询 查询goods_id最大的商品(不能用排序) 把两步写成一步,就是子查询 from型子查询 查找出每种cat_id下goods_id最大的商品 思路:1. 先用cat_id进行排序,再用goods_id进行降序排列 2. 再用Mysql中特有的group by 语句(只有在MySQL中group by 才能查询goods_name 并且group by查到的goods_name只能显示第一个查到的内容) exists 型子…
(01) 连接数据库 mysql -uroot -p 之后输入密码 ******.(由于我的密码设置的是111,所以输入的是111) (02) 退出数据库 exit (03) 查看数据库 show databases; (04) (重点) 建立数据库 create database test1; 如果想查看刚刚建立的数据库,依然输入create databases; 从8行到9行,多了一个刚刚建立的数据库 (05) 删除一个数据库 drop database test1; (06) 把数据库改名…
关于触发器的理解: 进行数据库应用软件的开发时,有时我们碰到表的某些数据的改变时,希望同时 引起其他相关数据改变的需求,利用触发器就能满足这样的需求. 触发器能在表中的某些特定数据变化时自动完成某些查询,运用触发器不仅仅可以 简化程序,而且可以增加程序的灵活性 触发器是一类特殊的事务: 可以监视某种数据的操作(insert/update/delete) 并触发相关的操作(insert/update/delete) 需求: 商品表:goods 订单表:ord 当下一个订单时,对应的商品要相应减少(…
建立一张简单的查询视图,不用临时表,只用条件合并 在简单的查询中,建立临时表的开销比较大 这是可以指定algorithm选项为merge 在v2的视图中,并没有建立临时表 但在下列情况下,必须建立临时表 不能接着按照建立的临时表继续写MySQL语句时,用temptable 如果拿不准用什么,algorithm = undefined, 上系统决定…
先建立一张 m 表 mysql> create table m ( -> mid int, -> hid int, -> gid int, ), -> matime date -> )engine myisam charset utf8; Query OK, rows affected (0.07 sec) mysql> insert into m -> values -> (1, 1, 2, '2:0', '2018-08-03'), -> (…
(01)建表的过程实际上是 声明字段 的过程 一. 列类型(字段): 存储同样的数据时,不同的列类型,所占据的空间和效率是不一样的,这就是建表时要考虑的意义. 二.MySQL三大列类型     数值型     整型     tinyint 占据空间:1个字节 存储范围:0 - 255, -128 - 127 smallint 占据空间:2个字节 储存范围:-32768 - 32768, 0 - 65535 int 占据空间:4个字节 储存范围:-2147483648 - 2147483647 0…
在查询中,我们经常把查询结果当成临时表 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…
engine 引擎就是MySQL存储数据的不同方式 myisam 插入速度快 支持全文索引 innoDB 插入速度慢 支持事务安全 假设两人同时购买火车票,两人同时看到只有一张火车票,几乎同时下单 或 在银行转账时,张三转李四500元,两边必须都完成,转账才算完成, 张三少钱和李四多钱必须一致的,这个两个操作必须同时成功或同时失败,不能一个成功,而另一个失败 需要用到事物 建立两张完全一样的表,但是引擎不一样 各插入两条数据: mysql> insert into a1 -> values )…
(一) 把建立的goods表找到 (二) 当cat_id = 3时,计算所有商品的库存量之和 计算每个cat_id下的库存量(group by) 需要用到分组,把每个红框内的计算在一起 筛选出本店价比市场价低200以上的商品 或 where条件是计算对最初列的计算 having是对结果集进行再次筛选 综合练习 查询每种商品积压的货款(本店价*库存量) 该店积压的总货款 查询每个cat_id下的货款 查询出积压货款金额>2000的cat_id…