MySQL基础篇:常用的SQL语句

4 篇文章 0 订阅
3 篇文章 0 订阅

MySQL基础篇:常用的SQL语句

#1.创建表
CREATE TABLE t_test (
    id VARCHAR(11),
    title VARCHAR(100),
    content VARCHAR(255),
    state VARCHAR(11)

)

#2.插入语句
INSERT INTO t_test VALUES('1','标题1','内容1','1')
INSERT INTO  t_test (id,title,state) VALUES('2','标题2','2')

#3.删除语句
DELETE FROM t_test WHERE id='1'

#4修改语句
UPDATE t_test SET title='标题2改', content='内容2' WHERE id='2'

#5查询语句
SELECT * FROM t_test WHERE id='2' 
SELECT id AS ID, title AS 标题, content AS 内容, state AS 状态 FROM t_test WHERE id='2'
SELECT * FROM t_test LIMIT 2,10

#6表增加字段
ALTER TABLE t_test ADD click VARCHAR(11)

#7类型转换+求和
SELECT SUM(CAST(id AS DECIMAL)) FROM t_test
SELECT SUM(click) FROM t_test

SELECT CAST('12' AS INT)

#8判空 IFNULL(expr1,expr2)          
#如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。
SELECT IFNULL(SUM(CAST(click AS DECIMAL)),0) FROM t_test

#9IF NOT EXISTS+NOT NULL(不为空)+UNIQUE(唯一)+PRIMARY KEY(主键)
CREATE TABLE IF NOT EXISTS t_test1(
    id VARCHAR(11) NOT NULL UNIQUE PRIMARY KEY,
    title VARCHAR(100),
    content VARCHAR(255),
    state VARCHAR(11)
)

#10去掉重复的数据 distinct

SELECT DISTINCT title,content FROM t_test

#11表数据查询
SELECT * FROM information_schema.columns WHERE table_schema='db_test' AND table_name='t_test' AND column_name='title';

#12删除表
DROP TABLE t_test1

#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  

#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 viewSELECT 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;  

#21and、or、not、between and/is null
SELECT * FROM t_test WHERE NOT(id=2)
SELECT * FROM t_test WHERE title IS NOT NULL AND id='2' OR id='3'
SELECT * FROM t_test WHERE id BETWEEN 3 AND 5

#22group byhaving
#having 能对分组后的数据进行筛选,尤其在使用聚集函数的时候  
SELECT * FROM t_test WHERE click>0 GROUP BY state
SELECT state,SUM(click) AS num FROM t_test GROUP BY state HAVING num > 2 

#23排序
SELECT * FROM t_test ORDER BY click
SELECT * FROM t_test ORDER BY click DESC
SELECT * FROM t_test ORDER BY click,id

#24不等于
SELECT * FROM t_test WHERE id !=1
SELECT * FROM t_test WHERE id <>'3'

#25innot in
SELECT * FROM t_test WHERE title IN('标题1','标题2','标题3') 
SELECT * FROM t_test WHERE id IN(SELECT id FROM t_test WHERE click >3)  
SELECT * FROM t_test WHERE id NOT IN(SELECT id FROM t_test WHERE click >3)

#26lick和通配符
SELECT * FROM t_test WHERE title LIKE '标题'  
SELECT * FROM t_test WHERE title LIKE '%题%'

#27临时事务
BEGIN;  #开始事务  
INSERT INTO t_test  VALUES ('11', '标题11','内容11','1','11');    
SELECT * FROM t_test;  #这里的查询是有上面的记录的,但是实际库中并没有这个记录  
ROLLBACK;  #回滚 

本篇为wenteryan原创,转载请注明出处:http://blog.csdn.net/wenteryan

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值