(一)数学函数 abs(x)              返回x的绝对值 bin(x)               返回x的二进制(oct返回八进制,hex返回十六进制) ceiling(x)          返回大于x的最小整数值 exp(x)  返回e的x次方 floor(x)  取整函数 (二)聚合函数 avg(col)        返回指定列的平均值 count(col)   返回指定列中非null值的个数 min(col)   返回指定列的最小值 max(col)  返回指定列的最大…
为方便本节学习, 请先自行建立本表: 建一个商品表: 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…
关于触发器的理解: 进行数据库应用软件的开发时,有时我们碰到表的某些数据的改变时,希望同时 引起其他相关数据改变的需求,利用触发器就能满足这样的需求. 触发器能在表中的某些特定数据变化时自动完成某些查询,运用触发器不仅仅可以 简化程序,而且可以增加程序的灵活性 触发器是一类特殊的事务: 可以监视某种数据的操作(insert/update/delete) 并触发相关的操作(insert/update/delete) 需求: 商品表:goods 订单表:ord 当下一个订单时,对应的商品要相应减少(…
engine 引擎就是MySQL存储数据的不同方式 myisam 插入速度快 支持全文索引 innoDB 插入速度慢 支持事务安全 假设两人同时购买火车票,两人同时看到只有一张火车票,几乎同时下单 或 在银行转账时,张三转李四500元,两边必须都完成,转账才算完成, 张三少钱和李四多钱必须一致的,这个两个操作必须同时成功或同时失败,不能一个成功,而另一个失败 需要用到事物 建立两张完全一样的表,但是引擎不一样 各插入两条数据: mysql> insert into a1 -> values )…
建立一张简单的查询视图,不用临时表,只用条件合并 在简单的查询中,建立临时表的开销比较大 这是可以指定algorithm选项为merge 在v2的视图中,并没有建立临时表 但在下列情况下,必须建立临时表 不能接着按照建立的临时表继续写MySQL语句时,用temptable 如果拿不准用什么,algorithm = undefined, 上系统决定…
先找到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 型子…
先建立一张 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'), -> (…
(一) 把建立的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…
(01)建表的过程实际上是 声明字段 的过程 一. 列类型(字段): 存储同样的数据时,不同的列类型,所占据的空间和效率是不一样的,这就是建表时要考虑的意义. 二.MySQL三大列类型     数值型     整型     tinyint 占据空间:1个字节 存储范围:0 - 255, -128 - 127 smallint 占据空间:2个字节 储存范围:-32768 - 32768, 0 - 65535 int 占据空间:4个字节 储存范围:-2147483648 - 2147483647 0…