总结一下常用的sql语句,测试版本:5.1
1.创建表
CREATE TABLE t_test ( id_ VARCHAR(32), title_ VARCHAR(255), content_ VARCHAR(2000), create_time_ VARCHAR(25), state_ VARCHAR(10) )
?
2.插入语句
INSERT INTO t_test VALUES ('1', '标题','内容','2013-01-30','1') INSERT INTO t_test (id_,title_,state_) VALUES ('2', '标题2','0')
?
3.删除语句
DELETE FROM t_test WHERE id_='2'
?
4.修改语句
UPDATE t_test SET title_ = '标题改',content_='内容改' WHERE id_='1'
?
5.查询语句
SELECT * FROM t_test WHERE id_='1' SELECT title_ AS 标题,content_ AS 内容 FROM t_test WHERE id_='1' SELECT * FROM t_test LIMIT 2,3 //从序号2开始,查3条记录,做翻页最简单
?
6.表增加字段
ALTER TABLE t_test ADD click_num_ VARCHAR(10)
?
7.类型转换+求和
SELECT SUM(CAST(id_ AS DECIMAL)) FROM t_test
?
8.判空 IFNULL(column,value)
SELECT IFNULL(SUM(CAST(click_num_ AS DECIMAL)),0) FROM t_test
?
9.IF NOT EXISTS+NOT NULL(不为空)+UNIQUE(唯一)
CREATE TABLE IF NOT EXISTS t_test ( id_ VARCHAR(32) NOT NULL UNIQUE, title_ VARCHAR(255), content_ VARCHAR(2000), create_time_ VARCHAR(25), state_ VARCHAR(10) )
?
10.去掉重复数据 ? ? ?DISTINCT
SELECT DISTINCT title_,content_ FROM t_test1
?
11.表信息查询
SELECT * FROM information_schema.columns WHERE table_schema='cxy' AND table_name='t_test' AND column_name='title_';
?
12.删除表
DROP TABLE t_test
?
13.字符串连接
SELECT CONCAT(title_,':',content_) AS 标题文章 FROM t_test
?
14.截取字符串 ? ?LEFT(str,len)、RIGHT(str,len)、SUBSTRING(str,pos,len)
SELECT LEFT(content_,2) FROM t_test SELECT RIGHT(content_,2) FROM t_test SELECT SUBSTRING(content_,2,1) FROM t_test
?
15.数据库信息语句
SELECT VERSION(),USER(),DATABASE();
?
16.字段表达式
SELECT id_ AS id,'正常' AS 状态,(id_*1.1) AS 主键转换 FROM t_test; #会出现异常数据,类似:3.3000000000000003 SELECT id_ AS id,'正常' AS 状态,CONVERT((id_*1.1),DECIMAL(10,2)) AS 主键转换 FROM t_test;
?
17.类型转换
#CAST(xxx AS 类型) , CONVERT(xxx,类型) SIGNED:整数 SELECT CONVERT('23.1',SIGNED); #结果:23 SELECT CONVERT('23.9',SIGNED); #结果:23 SELECT CONVERT('23.1',DECIMAL(4,2)); #DECIMAL(2+2,2),第一个参数是小数点前和小数点后的和值,第二个参数是小数点后的值 SELECT LEFT(CONVERT(100.1,CHAR),2); SELECT CAST('23.911' AS DECIMAL(4,2)); #结果:23.91
?
18.注意:distinct 会先排序,对于大的结果集来说是相当耗时的
?
19.表 广泛的定义有:永久表(create table)、临时表(子查询所返回的表)、虚拟表(create view)
SELECT t_temp.标题,t_temp.内容 FROM (SELECT id_, title_ AS 标题,content_ AS 内容 FROM t_test) AS t_temp; #t_temp 就是临时表
? ? 视图:
#创建试图不能包含子查询 CREATE VIEW t_simple_test AS SELECT SUM(id_) FROM t_test; SELECT * FROM t_simple_test; DROP VIEW t_simple_test;
?
20.简化表名
#可以使用表别名 来简化长表明 可以直接写别名,也可以 使用as SELECT t.id_,t.title_ FROM t_test t; SELECT t.id_,t.title_ FROM t_test AS t;
?
21.and、or、not、between and/is null
# where 中的 and、or、not、between and/is null SELECT * FROM t_test WHERE NOT(id_='1'); SELECT * FROM t_test WHERE title_ IS NOT NULL AND id_='2' OR id_='3'; SELECT * FROM t_test WHERE create_time_ BETWEEN '2012-12-01' AND '2013-01-31'
?
22.group by 和having
#having 能对分组后的数据进行筛选,尤其在使用聚集函数的时候 SELECT create_ti