MySQL 常用语句整理总结

知识点:

SELECT 想查的信息 FROM 从哪个表查询 WHERE 条件; --分号结尾,逗号隔开

MySQL中 COUNT在对列进行计数时不统计值为 null的条目

表头重命名,用as语法 count(gender) as male_num,

浮点数的平均值可能小数点位数很多,保存一位小数,用round函数 round(avg(gpa),1) as avg_gpa

需要对两个表进行联结FROM ...JOIN...ON...


SQL UPDATE 语法

UPDATE 语句用于更新表中已存在的记录。

UPDATE _table_name_  
SET _column1_=_value1_,_column2_=_value2_,...  
WHERE _some_column_=_some_value_;

SQL SELECT

select distinct 去重
MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。
对于多个select不去重:union all

SQL ALTER TABLE 语句

https://www.runoob.com/sql/sql-alter.html
SQL ALTER TABLE 语法
如需在表中添加列,请使用下面的语法:

ALTER TABLE table_name  
ADD column_name datatype

如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):

ALTER TABLE table_name  
ADD column_name datatype

要改变表中列的数据类型,请使用下面的语法:
SQL Server / MS Access:


ALTER TABLE table_name
ALTER COLUMN column_name datatype

My SQL / Oracle:

ALTER TABLE table_name  
MODIFY COLUMN column_name datatype

MySQL UNION 操作符

https://www.runoob.com/mysql/mysql-union-operation.html
UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。

SELECT country FROM Websites  
UNION  
SELECT country FROM apps  
ORDER BY country;

HAVING 子句

https://www.runoob.com/sqlite/sqlite-having-clause.html
group by ... having count(*)>1
HAVING 子句用于指定条件来过滤将出现在最终结果中的分组结果。>1即用作去重。
WHERE 子句在所选列上设置条件,而 HAVING 子句则在由 GROUP BY 子句创建的分组上设置条件。
位置:HAVING 子句必须放在 GROUP BY 子句之后,ORDER BY 子句之前。

SQL 连接(JOIN)

https://www.runoob.com/sql/sql-join.html

--示例
SELECT Websites.id, Websites.name, access_log.count, access_log.date  
FROM Websites  
INNER JOIN access_log  
ON Websites.id=access_log.site_id;
  • INNER JOIN:如果表中有至少一个匹配,则返回行
  • LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
  • RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
  • FULL JOIN:只要其中一个表中存在匹配,则返回行

PostgreSQL TRUNCATE TABLE

https://www.runoob.com/postgresql/postgresql-truncate-table.html
PostgreSQL 中 TRUNCATE TABLE 用于删除表的数据,但不删除表结构。
TRUNCATE TABLE 与 DELETE 具有相同的效果,但是由于它实际上并不扫描表,所以速度更快。 此外,TRUNCATE TABLE 可以立即释放表空间,而不需要后续 VACUUM 操作,在大型表上非常有用。

语法:TRUNCATE TABLE  table_name;

*/+ /*

Oracle中这种东西叫做hint,是一种优化SQL的工具。不同的hint会导致不同的优化模式。
例如一句SQL可能这样写:

select a.id, a.name   
from a, b   
where a.date=b.date  

假如这个语句执行起来很慢。我们就可以用hint指定某一种优化模式,使运行速度加快。比如说指定选用a表的a_indx这个索引,及b表的b_indx这个索引,可以写作

select /*+ index(a a_indx) index(b b_indx) */  
a.id, a.name  
from a, b  
where a.date = b.date  

这样就实现了对SQL的优化。除了index这个hint以外,还有all_rows, first_rows,等等。

这个网站提供一个教程:http://oracle.chinaitlab.com/optimize/14380.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值