测试常用mysql语句_常用sql语句 -- mysql

总结一下常用的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(唯一)+PRIMARY KEY(主键)

CREATE TABLE IF NOT EXISTS t_test

(

id_ VARCHAR(32) NOT NULL UNIQUE PRIMARY KEY,

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.字段表达式

SELECTid_ AS id,'正常' AS 状态,(id_*1.1) AS 主键转换 FROM t_test;

#会出现异常数据,类似:3.3000000000000003

SELECTid_ 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_time_,SUM(click_num_) AS num FROM t_test

WHERE SUM(click_num_) > 2

GROUP BY create_time_ ;#这个查询是会报错的

SELECT create_time_,SUM(click_num_) AS num FROM t_test

GROUP BY create_time_ HAVING num > 2;

23.排序

#ORDER BY

SELECT * FROM t_test ORDER BY click_num_;#从小到大

SELECT * FROM t_test ORDER BY click_num_ DESC;#从大到小

SELECT * FROM t_test ORDER BY click_num_ ,id_;#多排序

24.不等于

SELECT * FROM t_test WHERE id_ != '1';

SELECT * FROM t_test WHERE id_ <> '1';

25.in 和 not in

SELECT * FROM t_test WHERE title_ IN('标题1','标题2');

SELECT * FROM t_test WHERE id_ IN(SELECT id_ FROM t_test WHERE click_num_ >3);

SELECT * FROM t_test WHERE id_ NOT IN(SELECT id_ FROM t_test WHERE click_num_ >3);

26.like 和 通配符

SELECT * FROM t_test WHERE title_ LIKE '标题_';

SELECT * FROM t_test WHERE title_ LIKE '%题%';

27.临时事务

BEGIN; #开始事务

INSERT INTO t_test VALUES ('11', '标题11','内容11','2013-01-30','1',1);

SELECT * FROM t_test; #这里的查询是有上面的记录的,但是实际库中并没有这个记录

ROLLBACK; #回滚

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值