对sql的学习

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_39136928/article/details/81478627

目的:任务做完发现sql基础不好,反省之后,重新学习一下:

参考:https://www.cnblogs.com/leskang/p/5922349.html

查询:

         多表查询

         连接查询:连接查询是将两个或两个以上的表按照某个条件连接起来,从中选取需要的数据;

1、内连接查询:

内连接查询是一种最常用的连接查询。内连接查询可以查询两个或者两个以上的表;

2、外连接查询

外连接可以查出某一张表的所有信息;

SELECT 属性名列表 FROM  表名 1 LEFT|RIGHT JOIN 表名 2 ON 表名 1.属性名 1=表名 2.属性名 2;

select u.user_name, u.user_sex, t.class_name from test_01 u right join test_class t 
on u.class_id = t.class_id

     

模糊查询 LIKE:

模糊查询 LIKE:

SELECT 字段 1,字段 2,字段 3...FROM 表名 WHERE 字段 [NOT] LIKE ‘字符串’;

“%”代表任意字符;

“_” 代表单个字符;

空值查询 NOT NULL:

SELECT 字段 1,字段 2,字段 3...FROM 表名 WHERE 字段 IS [NOT] NULL;

SELECT 字段 1,字段 2,字段 3...FROM 表名 WHERE 字段 [NOT] LIKE ‘字符串’;

select * from test_01 t where t.user_name like '%李%' 

排序 ORDER BY

SELECT 字段 1,字段 2...FROM 表名 ORDER BY 属性名 [ASC|DESC] //ASC升序(默认) DESC降序

select * from test_01 u order by u.user_id asc 

去重复查询 DISTINCT :

SELECT DISTINCT 字段名 FROM 表名;

select distinct u.user_sex from test_01 u 

子查询

1 、带 In 关键字的子查询

一个查询语句的条件可能落在另一个 SELECT 语句的查询结果中。

2 、带比较运算符的子查询

子查询可以使用比较运算符。

3 、带 (not)Exists 关键字的子查询

假如子查询查询到记录,则进行外层查询,否则,不执行外层查询;not exists表示内层没有内容时才查询外层

如:SELECT * from t_book where EXISTS(select * from t_booktype);//表示t_booktype中返回的有内容时才执行外层t_book的查询

4 、带 Any 关键字的子查询

ANY 关键字表示满足其中任一条件;如:SELECT * FROM t_book WHERE price>= ANY (SELECT price FROM t_pricelevel);//表示筛选价格大于任意t_pricelevel表中选出的价格的结果,即比最小的大的价格就满足条件

5 、带 All 关键字的子查询

ALL 关键字表示满足所有条件;如:SELECT * FROM t_book WHERE price>= ALL (SELECT price FROM t_pricelevel);//表示筛选价格大于所有t_pricelevel表中选出的价格的结果,即比最大的价格大的才满足条件

-------------------------------------------------------------------------------------------------------------------------

插入数据

  • 给表的所有字段插入数据

     格式:INSERT INTO 表名 VALUES(值 1,值 2,值 3,...,值 n);

  • 给表的指定字段插入数据

     格式:INSERT INTO 表名(属性 1,属性 2,...,属性 n) VALUES(值 1,值 2,值 3,...,值 n);

  • 同时插入多条记录

     INSERT INTO 表名 [(属性列表)]  VALUES(取值列表 1),(取值列表 2)  ..., (取值列表 n);

更新数据

UPDATE 表名  SET 属性名 1=取值 1,属性名 2=取值 2, ..., 属性名 n=取值 n  WHERE 条件表达式;

猜你喜欢

转载自blog.csdn.net/qq_39136928/article/details/81478627
今日推荐