MySQL 2 SQL数据使用(检索、排序、过滤:SELECT/FROM/LIMIT/ORDER BY/DESC/WHERE/AND/OR/IN/NOT)

1. 使用SELECT语句从表中检索一个或多个数据列。

选择什么?从哪里选?

多条SQL语句必须以分号分隔;SQL语句不区分大小写。空格被忽略,可以用一或多个空格分开指令。

检索单个列:

  SELECT 列名  FROM 表名;

检索多个列: 当心逗号

  SELECT 列1,列2,列3  FROM 表;

检索所有列:(*)通配符

  SELECT * FROM 表;

DISTINCT关键字:指示MySQL只返回不同的值

  SELECT DISTINCT 列 FROM 表;

LIMIT关键字:限制结果

  SELECT 列 FROM 表 LIMIT 5;  //只选择其中5条记录返回

  如果要指定开始的行:  SELECT 列 FROM 表 LIMIT 5, 5;  //从第5行开始,选择5行返回。数据不足时,只返回满足行的数据。第一行行号为0。

  LIMIT m, n;  //从m行开始返回n行  一个等同的写法是:LIMIT m OFFSET n;

使用完全限定的表名:

  SELECT products.prod_name FROM products;  //同时使用表名和列名来引用列

  SELECT products.prod_name  FROM  crashcourse.products;  //表可以用数据库名和表名一起来限制

2.  排序数据

子句:SQL语句由子句构成,有些子句是必需的,而有的是可选的。一个子句通常由一个关键字和所提供的数据组成。

ORDER BY子句取一个或多个列对输出进行排序。

  SELECT 列 FROM 表 ORDER BY 列;  //以列对输出进行排序

ORDER BY子句选择的列通常是显示的列,但也可使用未检索的列。

按多个列进行排序:

  指定列名,列名之间用逗号分隔开。

  SELECT prod_id, prod_price, prod_name

  FROM products

  ORDER BY prod_price, prod_name;

在按多个列排序时,排序完全按照所规定的顺序进行。按上述例子就是 在prod_price相同时按prod_name进行排序。

指定排序方向:  ORDER BY默认升序,还可以降序,要使用DESC配合。

  SELECT prod_id, prod_price, prod_name

  FROM products

  ORDER BY prod_price DESC;

DESC在ORDER BY所指列后面表示该列按降序排序,即Z~A。

  SELECT prod_id, prod_price FROM products ORDER BY prod_id DESC, prod_price;

与DESC相反的关键字是ASC,但一般省略,因为默认就是按升序排列。

排序中,大小写字母被视为相同。

ORDER BY子句的位置:应跟在FROM 子句后面。如果使用LIMIT,他必须位于ORDER BY之后。

  SELECT prod_id FROM products

  ORDER BY prod_id

  LIMIT 3, 5;

3. 过滤数据 WHERE

搜索条件:过滤条件,检索数据时根据特定操作或报告的需要提取数据的子集。

WHERE子句在表名(FROM子句)之后给出:

  SELECT prod_name, prod_price

  FROM products

  WHERE prod_price=2.50;

只过滤出prod_price等于2.5的数据。

WHERE子句操作符:(<>和!=相同)

  =, <>, !=, <, <=, >, >=, BETWEEN

BETWEEN和AND一起使用:

  SELECT prod_name FROM products BETWEEN 5 AND 10;

空值检查:NULL空值,它与字段包含0、空字符串或仅仅含有空格不同。

通过IS NULL检查具有NULL值的列:

  SELECT prod_name FROM products WHERE prod_price IS NULL;  //返回prod_price为空的记录中的prod_name

组合WHERE子句:

操作符:用来联结或改变WHERE子句中的子句的关键字,也称为逻辑操作符。

AND操作符:用来检索满足前后条件的行

  SELECT prod_id, prod_price, prod_name

  FROM products

  WHERE vend_id = 1003 AND prod_price <= 10;

OR操作符:

它指示MySQL检索匹配任一条件的行。

  SELECT prod_name, prod_price

  FROM products

  WHERE vend_id = 1002 OR vend_id = 1003;

计算次序:

WHERE可包含任意数目的AND和OR操作符。允许两者结合以进行复杂和高级的过滤。

SQL在处理OR操作符前,优先处理AND操作符。

可以用括号括住一个WHERE后的条件。

IN操作符:

用来指定条件范围,范围中的每个条件都可以进行匹配。IN取合法值的由逗号分隔的清单,全都括在圆括号中。

  SELECT prod_name, prod_price

  FROM products

  WHERE vend_id IN (1003, 1002)

  ORDER BY prod_name;

IN操作符与OR操作符有所重叠,IN操作符要比OR操作符方便处理长的合法选项清单,且IN操作符速度较快。IN还可以包含其它SELECT子句。

NOT操作符:

WHERE子句中的NOT操作符有且只有一个功能,那就是否定它之后所跟的任何条件。

  SELECT prod_name, prod_price

  FROM products

  WHERE vend_id NOT IN (1002,1003)

  ORDER BY prod_name;

原文地址:https://www.cnblogs.com/cjj-ggboy/p/12529975.html

时间: 2024-08-09 08:12:17

MySQL 2 SQL数据使用(检索、排序、过滤:SELECT/FROM/LIMIT/ORDER BY/DESC/WHERE/AND/OR/IN/NOT)的相关文章

19 MySQL概念 数据库 数据表 数据类型 增加删除修改查询 WHERE Order By Limit

数据库管理系统DBMS 数据库中相关概念 数据库 数据表 记录 字段 数据 登录和退出MySQL客户端 查询自己的MySQL服务器有几个数据库 二.退出MySQL客户端的命令 修改root用户的密码 在MySQL客户端来修改密码(当前账号的密码) 数据库操作 创建数据库 显示所有数据库 删除数据库 选择数据库 更改数据库默认字符集 数据表操作 显示当前数据库中的所有表 创建数据表 显示表的创建 列的常用属性 修改数据表 删除数据表 显示表结构 MySQL数据类型 整型 浮点型 字符型 文本型 日

数据库操作----找了MySQL和SQL Sever两个的基础语句

这是MySQL的基本操作: 1 登入数据库:mysql -uroot -p+密码 (SQL Sever登入: osql -U 用户名 -P 密码) 2 显示已存在的数据库:show databases; 3 使用某个数据库:use+数据库名; 4 显示某个数据库下已存在的关系表:show tables; 5 6 查看某个关系表所有数据:select * from tableName; 7 查看某个关系表部分字段数据:select 字段1,字段2,...,字段n from tableName; 8

MySQL随机获取数据的方法,支持大数据量

最近做项目,需要做一个从mysql数据库中随机取几条数据出来. 总所周知,order by rand 会死人的..因为本人对大数据量方面的只是了解的很少,无解,去找百度老师..搜索结果千篇一律.特发到这里来,供大家学习. 在mysql中带了随机取数据的函数,在mysql中我们会有rand()函数,很多朋友都会直接使用,如果几百条数据肯定没事,如果几万或百万时你会发现,直接使用是错误的.下面我来介绍随机取数据一些优化方法. SELECT * FROM table_name ORDER BY ran

mysql基本sql语句大全(基础用语篇)

1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始 备份 BACKUP DATABASE pubs TO testBack 4.说明:创建新表 cr

mysql常用sql及常用命令

一.常用sql语句: 1.查询: select * from table where 1 = 1 2.增加: insert into table(name,age) values("张三",25) 3.删除: delete from table where 1 = 1 4.修改: update table set field1=value1 where 1 = 1 5.模糊查询:like关键字 select * from table where name like ’%张*%’ 6.排

SQL——实例记录(排序)

通常排序使用order by 语句 参数后可有多个字段. 如先按长后按宽排序 : select * from test order by 长 desc ,宽 asc 条件式判断: select * from test order by  CASE WHEN (型号 LIKE '%d-286%') THEN 0 ELSE 1 END ,长 desc,宽 desc --当条件满足型号像D-286这种的会先按照这个来排序 如果不是随机按长宽排序

oracle sql 按照汉字规则排序

-- 按照笔划排序 select * from traveler_info order by nlssort(traveler_name, 'nls_sort=schinese_stroke_m'); -- 按照部首排序 select * from traveler_info order by nlssort(traveler_name, 'nls_sort=schinese_radical_m'); -- 按照拼音排序,此为系统的默认排序方式 select * from traveler_in

4. MySQL必知必会之排序检索数据-ORDER BY

本章将讲授如何使用SELECT语句的ORDER BY子句,根据需要排序检 索出的数据. 1. 排序数据 ?? 子句(clause) SQL语句由子句构成,有些子句是必须的,而有的是可选的.一个子句通常由一个关键字和所提供的数据组成.子句的例子有SELECT 语句的FROM 子句. 为了明确地排序用SELECT语句检索出的数据,可使用ORDER BY子句取一个或多个列的名字,据此对输出进行排序. 请看下面的例子: 输入: SELECT prod_num FROM products ORDER BY

数据库笔记6:检索,排序检索,过滤数据

insert into products(prod_id,prod_name,pro_price)values('avno1','.5 ton anvil',5.99);insert into products(prod_id,prod_name,pro_price)values('avno2','1 ton anvil',9.99);insert into products(prod_id,prod_name,pro_price)values('avno3','2 ton anvil',14.