常用的SQL语句整理

表查询

1. 查询所有字段 :

1.select * from  表名;(“*”通配符查询所有字段)

2. 查询指定字段 :

1. 查询单个字段 : select 字段名 from 表名;
2. 查询多个字段 : select 字段名1,字段名2 from 表名;

3. 查询指定记录 :

1.select 字段名1,字段名2,...,字段名n from 表名 where 查询条件;

4. 带in关键字的查询 (只要满足条件范围内的一个值即为匹配项) :

1. select * from 表名 where 字段名 in(101,102);
2. select 字段名1,字段名2,...,字段名n from 表名 where 字段名 not in(101,102);

5. 带BETWEEN AND的范围查询 :

1. select 字段名1, 字段名2,...,字段名n FROM 表名 where 字段名 between X and Y;
2. select 字段名1, 字段名2,...,字段名n FROM 表名 where 字段名 not between X and Y;

6. 带LIKE的字符匹配查询 :

1. '%'匹配任意长度的字符(如a%, %a, %a%) : select * from 表名 where 字段名 like '%h%';
2. '_'匹配一个任意字符 : select 字段名1,字段名2,...,字段名n from 表名 where 字段名 like '____y';

7. 查询空值 :

1. select 字段名1, 字段名2,...,字段名n FROM 表名 where 字段名 is null;
2. select * FROM 表名 where 字段名 is not null;

8. 带AND的多条件查询 :

1. SELECT * FROM 表名 WHERE 字段名 IN('101', '102') AND 字段名2 >= 5 AND 字段名3 = 'apple';

9. 带OR的多条件查询 (表示只需要满足其中一个条件的记录即可返回) :

1. SELECT * FROM 表名 WHERE 字段名 = 101 OR 字段名 = 102;

10. 查询结果不重复 :

1.select distinct  字段名 FROM 表名;

11. 对查询结果排序 :

1. 单列排序:select * from 表名 order by 字段名;
2. 多列排序:select * from 表名 order by 字段名1,字段名2;
3. 指定顺序排序:select * from 表名 ORDER BY 字段名1 DESC, 字段名2 asc;

(备注:desc降序,asc升序,默认升序;)

12. 分组查询 :

1. 分组查询是对数据按照某个或多个字段进行分组。
2. [GROUP BY  字段] [HAVING <条件表达式>] 

    1.创建分组
    2.使用HAVING过滤分组
    3.在GROUP BY子句中使用WITH ROLLUP
    4.多字段分组
    5.GROUP BY和ORDER BY一起使用

13. LIMIT :

1. SELECT * FROM table LIMIT 5,10; //检索记录行6-15 
2. SELECT * FROM table LIMIT 5;     //检索前 5 个记录行
3.SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last.

14. 通配符:

1. '%'匹配任意长度的字符(如a%, %a, %a%) : select * from 表名 where 字段名 like '%h%';
2. '_'匹配一个任意字符 : select 字段名1,字段名2,...,字段名n from 表名 where 字段名 like '____y';
3. []指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符:SELECT * FROM table WHERE 字段名 REGEXP '^[GFs]';
4. [^]不属于指定范围 ([a-f]) 或集合 ([abcdef]) 的任何单个字符:SELECT * FROM table WHERE 字段名 REGEXP '^[A-H]';

15. SQL别名:

1. 列别名:SELECT name AS n, country AS c FROM table;
2. 把三个列(url、alexa 和 country)结合在一起,并创建一个名为 "site_info" 的别名:SELECT name, CONCAT(url, ', ', alexa, ', ', country) AS site_info FROM table;
3. 表别名:SELECT w.name, w.url, a.count, a.date FROM Websites AS w, access_log AS a WHERE a.site_id=w.id and w.name="菜鸟教程";

16. SQL连接:

1.左连接:left join
    select * from student left join course on student.ID=course.ID
2.右连接:right join
    select * from student right join course on student.ID=course.ID
3.完全外连接: full join
    select * from student full join course on student.ID=course.ID
4.内连接:inner join(join)
    select * from student join course on student.ID=course.ID

INSERT INTO 语句

1. 第一种形式无需指定要插入数据的列名,只需提供被插入的值即可 :

1. INSERT INTO table_name
    VALUES (value1,value2,value3,...);

2. 第二种形式需要指定列名及被插入的值 :

1. INSERT INTO table_name         (column1,column2,column3,...)
    VALUES (value1,value2,value3,...);

UPDATE 语句

1. 更新表中的记录 :

UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;

DELETE 语句

1. 删除某行记录 :

1. DELETE FROM table_name
   WHERE some_column=some_value;

2. 删除全部记录 :

2. DELETE FROM table_name;
   DELETE * FROM table_name;
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值