自己打出来,写代码。 这样有效果,也不容易忘记...
LIKE 是绝对匹配,如果是包含,则不返回。
REGEXP 是包含匹配,返回包含着的数据。
select prod_name from products where prod_name LIKE '%Ton'
Concat : 用于创建联结
select concat (vend_name ,vend_id ) as new_vend from products;
对于列的操作:
比如最大值,最小值,平均值,和,有专门的操作,叫集聚函数:
SELECT AVG(prod_price) form table ;
select AVG(price) from table where prod_name = ‘google ’
分组: 比如想打印 每个客户的消费总数:
select count(*) from table group by vend_it ;
!!! GROUP BY && HAVING
GROUP BY (按什么分组) HAVING (条件)。。。
通过什么条件分组这些数据,比如筛选订单数大于5个的客户总数;
select consumer count(*) from table GROUP BY consumer HAVING num > 5 orderby count(*);
两个表联结,返回的是笛卡尔集。所以必须限定名
内部联结: from table join table1 on table.name = table1.name.
UNION 可以返回一个表中不同的筛选结果。类似于OR.但是比OR 更加的方便。
全文本搜索 MATCH AGAINST 和通配符 LIKE %%来讲,其实都可以匹配数据,只是全文本搜出来
的结构有更好的优先级。
另外 MATCH AGAINST 利用with query expansion来可以判断与之搜索结果有关的数据(这个感觉好高
端呀,类似机器学习)
更新 update ,set
UPDATE TABLE set PROD_NAME = 'VAL' WHERE ID = ''
delete table;
视图:
当使用多条查询语句时,会简化中间过程,然后利用产生一个动态表,用于复杂的查询。
使用 create view来创建:
好处呢:减低权限,屏蔽细节,简化可读性。
=================从这里开始,上次就是忽悠过去啦,现在好好看下。。。。。
存储过程:
CALL
感觉存储过程就是一种存储函数,有什么区别和用法,还需要自行查阅。
为什么要使用游标:cursor
因为很多时候检索了一行,却无法去检索到前一行和后一行,所以不能批处理,没那么方便,这就使用游标。
另外返回的数据很多,就需要使用cursor来进行交互了。。。
这里使用cursor一般可以和存储过程一起使用,就是相当于函数和封装了。
触发器:
当某个条件满足是,自动执行代码。 比如插入新行的数据,则执行>>>>
这样就需要使用了。
用于审计跟踪啥的,保持数据的一致性~
事物处理:
是一种机制,来保证数据的原子性操作。