1、selectӞ注意索引谓词和非索引谓词Q尽量在有烦引的列上使用索引谓词? 谓词cd 可烦??? Col∝con Y ∝代?gt;,>=,=,<=,<,但是<>不是可烦引的? Col between con1 and con2 Y 在匹配系列中必须是最后的? Col in list Y 仅对一个匹配列 Col is null Y Col like ‘xyz%?Y 模糊匚w%在后面? Col like ?xyz?N 模糊匚w%在前面? Col1∝Col2 N Col1和col2来自同一个表 Col∝Expression N 例如Qc1Qc1+1Q?2 Pred1 and Pred2 Y Pred1和Pred2都是可烦引的Q指相同索引的列 Pred1 or Pred2 N 除了Qc1=a or c1=bQ外Q他可以被认为是c1 inQaQbQ? Not Pred1 N 或者Q何的{h形式QNot between,Not in,Not like{等?
使用索引的例子介l:
<1>、单个表上烦引查询的介绍 Q? AQselect * from t1 where c1 = 10Q? 在c1列上无烦引,如何? 在c1列上有烦引,如何? BQselect * from t1 where c1 =10 and c2 between 5 and 10 and c3 like ‘A%? 仅在c1列上有烦? 在c1,c2和c3列上有单独的索引 在c1Qc2和c3列上有联合烦? 此处可以填加索引匚w规则和高U规则,比较隄解!Q?
<2>、两个或多个表上索引查询的介l: (1)、用@环嵌套法执行查询 AQselect t1.c1,t1.c2,t2.c3,t2.c4 from t1,t2 where t1.c1=10 and t1.c2 =t2.c3 介绍查询的方法,看看哪列上最需要烦引? BQselect t1.c1,t1.c2,t2.c3,t2.c4 from t1,t2 where t1.c1=10 and t2.c4 = 10 and t1.c2 =t2.c3 (2)、用归q连接执行连接查? 例:select t1.c1,t1.c2,t2.c3,t2.c4 from t1,t2 where t1.c1=10 and t2.c4 = 10 and t1.c2 =t2.c3 (3)、三个以上的表进行连接查询采取的规则或者方?
Q?Q、GROUP BYQ实现简单分l的功能Q当用group byӞ查询选择列中除了在group by中出现的和常量外Q其他的列上要用分组函数。可以用一些分l函数实C些列不在group by中出玎ͼminQmax{? Q?Q、HAVING的用,对一些分l列q行条g判断? Q?Q、ORDER BY子句使得SQL在显C查询结果时各q回行按序排列Q返回行的排列顺序由ORDER BY 子句指定的表辑ּ的值确定?
2、DELETEQ从表中删除记录 语法格式Q? DELETE FROM tablename WHERE (conditions)
3、INSERTQ向表中插入记录 语法格式Q? INSERT INTO tablename (col1,col2,? VALUES (value1,value2,?; INSERT INTO tablename (col1,col2,? VALUES (value1, value2,?, (value1, value2,?,…? Insert不会{待ME序Q不会导致锁定?
4、UPDATEQ? 语法格式Q? UPDATE tabname SET (col1=values1,col2=values2,? WHERE (conditions); 注:update的速度比较慢,要在相应列上建立索引?
1、GRANTQ所有着或者管理员把访问权限赋l其他用? 语法格式Q? grant [all privileges|privileges,?] on tabname | viewname to [public|user,?] 2、REVOKE:取消某一用户的某中访问权? 语法格式Q? Revoke [all privileges|privileges,?] on tabname | viewname from [public|user,?] 注:不能取消实例U别的用LM权限Q他们不是通过grant授权的,是通过l实现的权限? 3、COMMIT:把事务中所做的修改怹化记录到数据库? 语法格式Q? commit [work] 4、ROLLBACK:上ơ提交以来所做的更改全部撤消? 语法格式Q? Rollback [work]
●高USQL单介l:
一、查询间使用q算? AQ?UNION q算W? UNION q算W通过l合其他两个l果表(例如 TABLE1 ?TABLE2Qƈ消去表中M重复行而派生出一个结果表。当 ALL ?UNION 一起用时Q即 UNION ALLQ,不消除重复行。两U情况下Q派生表的每一行不是来?TABLE1 是来自 TABLE2?
注:复合外连接按照从左到右的序执行q接Q左边连接的l果集和双q接 三、超U分l和Ud函数 AQgrouping setsQ用来在单个sql中Ş成多U分l? 例:select company_id,node_id,count(customer_id) from customer group by grouping sets(company_id,node_id) BQrollupQ可以在单个数据库操作中形成多个分组? 例:select company_id,node_id,count(customer_id) from customer group by rollup(company_id,node_id) 注:rollup操作不是可交换的操作Q指定用L的顺序是很重要的? CQcubeQ?生成分组表中分组的所有组合? 例:select company_id,node_id,count(customer_id) from customer group by cube(company_id,node_id) DQoverQ移动函数可以帮助实现移动的数据分析 Select date,avg(qty) over(order by date rows between 1 preceding and 1 following) as values from sale