数据库技术四(数据的查询)①

DQL数据查询语句

以表为例

CREATE TABLE student(   id INT,  -- 编号  
 NAME VARCHAR(20), -- 姓名  
  age INT, -- 年龄  
   sex VARCHAR(5),  -- 性别  
   address VARCHAR(100),  -- 地址  
    math INT, -- 数学  
     english INT -- 英语 
     ); 
 
INSERT INTO student(id,NAME,age,sex,address,math,english) VALUES 
(1,'Simeon',55,'男', ' 杭州',66,78),
(2,'Snow',45,'女','深圳',98,87),
(3,'Lcay',55,'男','香港',56,77),
(4,'LiLi',20,'女','湖南',76,65),
(5,'Long',20,'男','湖南',86,NULL),
(6,'Steven',57,'男','香港',99,99),

(7,'Mike',22,'女','香港',99,99),
(8,'LeiLei',18,'男','南京',56,65);

一、查询语句

1.语法形式

select

       字段列表

from

      表名列表

where

     条件列表

group by 

      分组字段

having

     分组之后的条件

order by

      排序方式

limit

     分页限定

2.基础查询

   1.多个字段的查询

        select 字段名1,字段名2,.... from 表名

若查询所有的字段,可以用 *来代替,即 select * from 表名

  2.去除重复 distinct

SELECT DISTINCT address FROM student

    3.计算列的值

         *一般可以使用四则运算计算一些列的值(一般只会进行数值型的计算)

             计算形式:select 字段名1 四则运算符 字段名2 from 表名

SELECT math+english FROM student

           

* 若所在的列含有null值(null与任何值计算都为null),则有如下形式

             select 字段名1 四则运算符 IFNULL(表达式1,表时式2) from 表名

             表达式1:那个字段需要判断为null

             表达式2:null的替换值

SELECT math+IFNULL(english,0) FROM student

        4.起别名  as(可省略)

SELECT math+IFNULL(english,0) AS 总分数 FROM student

 3.条件查询

   

1. where子句后跟条件

        2. 运算符

            * > 、< 、<= 、>= 、= 、<>

            * BETWEEN...AND 

            * IN( 集合)

            * LIKE:模糊查询

                * 占位符:

                    * _:单个任意字符

                    * %:多个任意字符

            * IS NULL 

            * and  或 &&

            * or  或 ||

            * not  或 !

        查询年龄大于20岁

SELECT * FROM student WHERE age > 20
SELECT * FROM student WHERE age >= 20;

     查询年龄等于20岁

SELECT * FROM student WHERE age = 20;

    查询年龄不等于20岁

SELECT * FROM student WHERE age != 20;
SELECT * FROM student WHERE age <> 20;

  查询年龄大于等于20 小于等于30

SELECT * FROM student WHERE age >= 20 &&  age <=30;
SELECT * FROM student WHERE age >= 20 AND  age <=30;
SELECT * FROM student WHERE age BETWEEN 20 AND 30;

   查询年龄22岁,18岁,25岁的信息

SELECT * FROM student WHERE age = 22 OR age = 18 OR age = 25
SELECT * FROM student WHERE age IN (22,18,25);

  查询英语成绩为null和不为null

SELECT * FROM student WHERE english IS NULL;
SELECT * FROM student WHERE english IS NOT NULL;

     LIKE模糊查询

        %表示任何字符出现的任意次数

         下划线(_)匹配单个字符

SELECT NAME FROM student WHERE NAME LIKE '%S%'
SELECT NAME FROM student WHERE NAME LIKE '_n%'

 

猜你喜欢

转载自blog.csdn.net/dreame_life/article/details/87440311
今日推荐