数据库笔记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.99);
insert into products(prod_id,prod_name,pro_price)values(‘ol1‘,‘oil can‘,8.99);
insert into products(prod_id,prod_name,pro_price)values(‘fu1‘,‘fuses‘,3.42);
insert into products(prod_id,prod_name,pro_price)values(‘slite‘,‘sling‘,4.49);
insert into products(prod_id,prod_name,pro_price)values(‘tnt1‘,‘tnt (1 stick)‘,2.50);
insert into products(prod_id,prod_name,pro_price)values(‘tnt2‘,‘tnt (5 stick)‘,10.00);
insert into products(prod_id,prod_name,pro_price)values(‘fb‘,‘bird seed‘,10.00);
insert into products(prod_id,prod_name,pro_price)values(‘fc‘,‘carrots‘,2.50);
insert into products(prod_id,prod_name,pro_price)values(‘safe‘,‘safe‘,50.00);
insert into products(prod_id,prod_name,pro_price)values(‘dtntr‘,‘detonator‘,13.00);
insert into products(prod_id,prod_name,pro_price)values(‘jp1000‘,‘jetpack 1000‘,35.00);
insert into products(prod_id,prod_name,pro_price)values(‘jp2000‘,‘jetpack 2000‘,55.00);

-- 创建products表
create table products
(
 prod_id char(40),
 prod_name char(40) not null,
 pro_price int not null,
 primary key(prod_id)
)engine = innodb;

-- 检索单个列
select prod_name from products;
-- 检索多个列
select prod_id,prod_name,prod_price from products;
-- 检索所有列
select * from products;
-- 返回所有指定的行
select ven_id from ven;
-- 返回行中不同的值
select     distinct vend_id from ven;
-- 返回开始到第五行
select prod_name from products limit 5;
-- 返回从第五行开始的五行
select prod_name from products limit 5,5;
-- 从第3行开始取4行
select prod_name from products limit 4 offset 3;
-- 假设products表在ven表里面
select products.prod_name from ven.products;
-- 升序
select prod_name,pro_price,prod_id from products order by prod_name,pro_price;
-- 降序
select prod_name,pro_price,prod_id from products order by pro_price desc;
-- desc之前的降序之后的升序
select prod_name,pro_price,prod_id from products order by pro_price desc,prod_name;
-- 检索降序并输出一行
select pro_price,prod_id from products order by pro_price desc limit 1;
-- 检索两个列并判断prod_price为3的行
select prod_name from products where prod_price = 3;
-- 检索两个列并判断prod_name为fuses的行,不区分字母大小写
select prod_name,pro_price from products where prod_name =‘Fuses‘;
-- 检索两个列并判断prod_price小于10的行
select prod_name,pro_price from products where pro_price < 10;
-- 检索两个列并判断prod_price小于等于10的行
select prod_name,pro_price from products where pro_price <= 10;
-- 检索三列并prod_id判断不等于jp1000的行
select  prod_id,prod_name,pro_price from products where prod_id <> ‘jp1000‘;
-- 与上面相同
select  prod_id,prod_name,pro_price from products where prod_id != ‘jp1000‘;
-- 检索pro_price 5到10之间的所有产品
select  prod_name,pro_price from products where pro_price between 5 and 10;
-- 检索pro_price为空的所有产品
select  prod_id,prod_name,pro_price from products where pro_price is null;
-- 创建customers表
create table customers
(
 cust_id int,
 cust_email char(50) null,
 primary key(cust_id)
)engine = innodb;

-- 向customers表cust_id列插入数据
insert into customers(cust_id)values(1002);
-- 向customers表cust_id列插入数据
insert into customers(cust_id)values(1003);
-- 检索cust_email为空的所有产品
select  cust_id from customers where cust_email is null;

create table ven
(
 ven_id int auto_increment,
 primary key(ven_id)
)engine = innodb;
-- 添加vend_id列
alter table ven add vend_id int;
insert into ven(vend_id)values(1001);
insert into ven(vend_id)values(1001);
insert into ven(vend_id)values(1001);
insert into ven(vend_id)values(1002);
insert into ven(vend_id)values(1002);
insert into ven(vend_id)values(1003);
insert into ven(vend_id)values(1003);
insert into ven(vend_id)values(1003);
insert into ven(vend_id)values(1003);
insert into ven(vend_id)values(1003);
insert into ven(vend_id)values(1003);
insert into ven(vend_id)values(1003);
insert into ven(vend_id)values(1005);
insert into ven(vend_id)values(1005);


深入理解:

select * from student;

------------------------------------------
select
 t.sid+1 ‘tsid加了1‘,
 t.sid+5,
 t.score+100,
 t.sid+t.score as ‘sid_score‘,
 t.*,
 5*8 ‘五‘

from student t;

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

select

t.sid,

t.sname,

-- 设置别名

from student t;

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

select

t.sid,

t.sname,

-- 常量列

5,

from student t;

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

select

-- sid列数据加一,并创建一个t.sid+1列的数据

t.sid +1,

t.sname,

t*

from student t;

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

select

-- 两个整型数据相加,得出t.score+t.ccid列名的相加数据

t.score+t.ccid

from student t;

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

select

-- 整型和字符类型数据相加,得出t.score+t.sname列名的t.score数据(字符类型和整型数据相加,结果也是一样,以整型为主)

t.score+t.sname

from student t;

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

select

-- 改为‘我‘列名

t.score ‘我‘

from student t;

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

select s.score+5 ‘q‘,s.score+s.ccid,5 ‘我‘ from student s;

select t.ccid ‘加‘,
 5 ,
 t.ccid + 5
from student t;

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

select * from student t where t.score>70 order by t.score desc limit 5;
------------------------------------------
select s.*,1 ‘a‘,2 ‘b‘,3 ‘c‘ from student s  
 where s.score+1=s.sid+87 and s.score between 60 and 95
  order by sid desc limit 1;
------------------------------------------

select * from student t
 where t.score not in (60,90,85);

------------------------------------------
select * from student
 where sname is not null;

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

select * from student;

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

create table student

(
 id int not null auto_increment,
 primary key(id)
)engine = innodb;
------------------------------------------
alter table student add sname char(40);
alter table student add score int;
alter table student add ccid int;

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

insert into student(sname,score,ccid) values(‘wpq2‘,93,1);

insert into student(sname,score,ccid) values(‘wpq3‘,45,1);
insert into student(sname,score,ccid) values(‘QQ5‘,43,1);
insert into student(sname,score,ccid) values(‘wp9‘,60,1);
insert into student(sname,score,ccid) values(‘w‘,99,1);
insert into student(sname,score,ccid) values(‘w123‘,91,1);

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

时间: 2024-12-22 20:31:22

数据库笔记6:检索,排序检索,过滤数据的相关文章

MYSQL必知必会读书笔记 第九章 使用正则表达式过滤数据

正则与LIKE的区别  Mysql的正则表达式仅仅使SQL语言的一个子集,可以匹配基本的字符.字符串. 例如:select * from wp_posts where post_name REGEXP'hello',可以检索出列post_name中所有包含hello的行   REGEXP'.og' .是正则表达式中里一个特殊的字符.它表示匹配一个字符,因此,dog,hog,mog等等都能匹配. 注意: 关于LIKE和REGEXP的区别:LIKE匹配整个列.如果被匹配的文本仅在列值中出现,LIKE

SQL语句检索数据排序及过滤

阅读目录 一:排序检索数据 二:过滤数据 三:高级数据过滤 四:用通配符进行过滤 回到顶部 一:排序检索数据 1.1 排序数据 比如查询数据库中表数据的时候,我们使用如下语句: select * from user; 如下所示: 但是上面查询出来的数据并没有排序过的,因此如果我们想让数据进行排序,我们可以使用 order by子句.order by 子句会以字母顺序排序数据的.如下排序代码: select * from user order by username; 如上的含义是:查询user表

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关键字:限制结果 SE

三、排序检索数据、过滤数据

1.排序数据(默认升序:ASC) 子句: 如select * from table_name中的from就是一个子句. 排序使用的是order by子句. select column_name from table_name order by column_name; 2.按多列排序 select column_name1,column_name2 from table_name order by column_name1,column_name2; 这一句先按column_name1的列排序,

05 排序检索数据 - order by

子句 SQL语句由子句构成,有些子句是必须的,有的是可选的 排序 order by可选子句可用于排序检索的数据 select prod_name from products order by prod_name; 通常排序的列包含在检索的列中,但是用非检索的列排序是完全合法的 按多个列排序 select prod_id, prod_price, prod_name from products order by prod_price, prod_name; 指定排序方向 排序默认是升序的(asc)

MySQL必知应会-第5章-排序检索数据

第五章 排序检索数据 本章将讲授如何使用SELECT语句的ORDER BY子句,根据需要排序检索出的数据. 5.1 排序数据 正如前一章所述,下面的SQL语句返回某个数据库表的单个列.但请看其输出,并没有特定的顺序. 其实,检索出的数据并不是以纯粹的随机顺序显示的.如果不排序,数据一般将以它在底层表中出现的顺序显示.这可以是数据最初添加到表中的顺序.但是,如果数据后来进行过更新或删除,则此顺序将会受到MySQL重用回收存储空间的影响.因此,如果不明确控制的话,不能(也不应该)依赖该排序顺序.关系

SQL检索语句及过滤语句

首先推荐一款比较好用的数据库管理软件:navicat premium. 数据库中最重要的检索功能:SELECT语句 1.检索单个列:select 列名 from 表名: 2.检索多个列:select 列名1,列名2,...from 表名: 3.检索所有列:select * from 表名: 4.检索不同的行:select distinct 列名 from 表名:/*列中有重复值,只显示不同的值 5.检索限制行数:select 列名 from 表名 limit 数量:/*返回不多于几行的数据 6.

列表按照字母排序检索SideBar

项目中要求列表按照ABCD这种字母排序检索的功能,看了大神写的,瞬间崇拜了,接下来借大家参考参考了 首先是自定义view sidebar 1 /** 2 * @author J 3 *一个自定义view 实现a-z的竖直绘制,和监听滑动事件 4 */ 5 public class SideBar extends View { 6 private OnTouchingLetterChangedListener onTouchingLetterChangedListener; 7 public st

ASP.Net MVC4排序检索分页的实现

前言 上一节我们做到了如下的一个基础查询页面.本节我们向这个页面中加入排序.搜索和分页功能. 排序 从上图中的地址栏中可以看到这个页面调用的是Company Controller下的Index Action.因此我们就先打开Controllers文件夹下的CompanyController.cs文件,写入如下代码: 1 using System.Linq; 2 using System.Web.Mvc; 3 using SlarkInc.DAL; 4 using System; 5 6 name