MYSQL数据库开发之路-----数据查询一

目录

基本查询语句

使用select语句查询一个数据表

查询表中一列或者多列 

从一个或者多个表中获取数据

 单表查询

查询所有字段

查询指定字段

查询指定数据

带关键字where的查询 

 带关键字in的查询 

带关键字between and的查询 

带关键字like的查询

带关键字is null的查询

带关键字and的多条件查询

带关键字or的多条件查询

带关键字distinct去除结果中的重复行

用关键字ORDER BY对查询结果排序

用关键字LIMIT限制查询结果的数量


创建数据库db_database09和数据表user

创建数据库

#创建数据库db_database09 字符集utf8mb4 校准规则utf8mb4_general_ci
CREATE DATABASE db_database09 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

创建数据表

#创建数据表user
CREATE TABLE USER(
id INT PRIMARY KEY AUTO_INCREMENT NOT NULL,
 USER VARCHAR(30) NULL,
 lxdh VARCHAR(30) NULL,
 jtdz VARCHAR(30) NULL
);
DESCRIBE USER;(或者SHOW COLUMNS FROM USER;)  #查询表结构

 插入数据

#插入两条记录
INSERT INTO USER VALUES(1,'mr','12345678','长春市')
,(2,'mrsoft','87654321','四平市');

基本查询语句

使用select语句查询一个数据表

#查询整张表  *代表 所有的列
SELECT *FROM USER;

查询表中一列或者多列 

#查询表中一列或者多列
SELECT id,lxdh FROM USER;

从一个或者多个表中获取数据

        在使用select查询语句时,需要确定查询的数据在哪个表或者哪些表中,在进行多表查询时,需要使用到','进行分隔

#从一个或多个表中获取数据
SELECT 
	tb_admin.`id` ,tb_admin.`jtdz`,tb_students.`lxdh`,tb_students.`user`
FROM 
	tb_admin,tb_students;

 单表查询

        单表查询是指从一张表中查询所需要的数据,相对来说操作比较简单

查询所有字段

        查询所有字段是指查询所有字段的数据 在MySQL中可以使用 * 代表所有列,语法格式如下:

select * from 表名;

查询指定字段

        查询指定字段,语法格式如下:

select 字段名 from 表名;

如果要查询多个字段,用','进行分隔

查询指定数据

#创建数据表tb_login	
CREATE TABLE tb_login(
id INT PRIMARY KEY AUTO_INCREMENT,
USER VARCHAR(30),
pwd VARCHAR(30),
section VARCHAR(30),
NAME VARCHAR(30)
);
#查询数据表tb_login表结构
DESC tb_login;

#数据表tb_login插入数据
INSERT INTO tb_login(USER,pwd,section,NAME) VALUES
('mz','rwds','c++','高德')
,('fg','sdfas','php','优酷')
,('dsa','rwsadds','c','赶集')
,('fsa','rwdds','java','京东')
,('dsaz','dasd','javascript','阿里巴巴')
,('gfsd','sdaq','python','腾讯')
,('zdas','dasdf','json','明日科技')
,('dadz','sadq','office','网易云')
,('trey','dsagd','c#','百度')
,('dsags','rwsadds','c','阿里巴巴')
,('gfd','dasgf','java','明日科技')
,('zdsa','ytru','javascript','阿里巴巴')
,('gfdgdf','fhgfd','python','京东')
,('hgfhtyr','azxfd','json','明日科技')
,('uytrr','ewqet','office','阿里巴巴');

带关键字where的查询 

        如果要从很多记录中查询到指定的数据,就需要用到where关键字,在使用where 子句时需要用到比较运算符来查询指定的数据,常用的比较运算符如下表所示:

运算符名称示例运算符名称示例
=等于id=5is not nulln/aid is not null
>大于id>5between andn/aid is between and 15
<小于id<5inn/aid in(3,4,5)
>=大于等于id>=5not inn/aname not in(shi,li)
<=小于等于id<=5like匹配模式name like('shi%')
!=或<>不等于id!=5not like匹配模式name not  like('shi%')
is nulln/aid is nullregexp常规表达式name 正则表达式
#查询表中user='zdsa'的记录
SELECT *FROM tb_login WHERE USER='zdsa' ;

 带关键字in的查询 

        带关键字in可以判断某个字段的值是否在指定的集合中.如果字段的值在集合中,满足查询条件,该记录会被查询出来;如果不在集合中,则不满足查询条件,语法格式如下:

select * from 表名 where [not] in(元素1,元素2,......,元素n);

[not]:可选项,如果加上not表示不在集合内满足条件

元素:表示集合中的元素,各个元素之间用逗号隔开,字符型元素需要加上单引号

#带关键字in的查询
SELECT *FROM tb_login WHERE USER IN ('hgfhtyr','gfd','dsaf');

#带关键字not in的查询
SELECT *FROM tb_login WHERE USER not IN ('hgfhtyr','gfd','dsaf');

带关键字between and的查询 

        判断某个字段的值是否在指定范围内,如果在则满足条件,该记录会被查询出来,不在则不满足条件,语法格式如下:

select * from 表名 where 条件 [not] between 取值1 and 取值2

取值1:表示范围的起始值

取值2:表示范围的终止值

#带关键字between and的查询 取值在5~7之间
SELECT *FROM tb_login WHERE id BETWEEN 5 AND 7;

#带关键字between and的查询 取值不在5~7之间
SELECT *FROM tb_login WHERE id not BETWEEN 5 AND 7;

带关键字like的查询

        like属于比较常见的比较运算符,通过like实现模糊查询,它有两种通配符: '%' 和 '_'

        '%':匹配一个或多个字符,可以是0

        '_':只匹配一字符

※注意

        字符串“p”和“入”都算作一个字符,在这点上英文字母和中文是没有区别的。

#带关键字like的查询
SELECT * FROM tb_login WHERE USER LIKE '%sa%';

带关键字is null的查询

        判断字段是否是空值,如果字段是空值则满足查询条件,则该记录会被查询出来,反之则不能被查询出来,语法格式如下:

is [not] null

#带关键字is null的查询
SELECT *FROM tb_login WHERE NAME IS NULL;

带关键字and的多条件查询

        关键字and可以联合多个查询条件.使用and 关键字时,只有满足所有查询条件的记录才会被查询出来,只要不满足其中任何一条查询条件,就会被排除在外,语法格式如下:
select * from 数据表名 where 条件1 and 条件2 [……AND 条件表达式n];

#带关键字and 的多条件查询
SELECT *FROM tb_login WHERE USER='fsa' AND section='java';

带关键字or的多条件查询

        关键字and可以联合多个查询条件.关键字OR只要满足查询条件中的一个,那么此记录就会被查询出来,如果所有条件都不满足就会被排除在外,语法格式如下:

select * from 数据表名 where 条件1 OR 条件2 [……OR 条件表达式n];

#带关键字or 的多条件查询
SELECT *FROM tb_login WHERE USER='fsa' OR section='c++';

带关键字distinct去除结果中的重复行

        使用关键字DISTINCT可以去除查询结果中的重复记录,语法格式如下:

select distinct 字段名 from 表名;

#带关键字distinct去除结果中的重复行
SELECT DISTINCT NAME FROM tb_login;

用关键字ORDER BY对查询结果排序

         排序包括升序(asc) 和逆序(desc),语法格式如下:

ORDER BY 字段名 [ASC|DESC];

        ASC : 表示按升序进行排序。
        DESC:表示按降序进行排序。

#用关键字ORDER BY对查询结果排序  逆序
SELECT *FROM tb_login ORDER BY  id DESC;

#用关键字ORDER BY对查询结果排序  升序
SELECT *FROM tb_login ORDER BY  id ASC;

用关键字LIMIT限制查询结果的数量

        关键字LIMIT可以对查询结果的记录条数进行限定,控制它输出的行数,语法格式如下:

select * from 数据表名 limit [i,]n;

[i,]:表示从第几行记录开始,在查询结果中,第一个结果的记录编号是0,而不是1

n:表示限制记录 的条数

#限制输出前三行
SELECT *FROM tb_login ORDER BY id DESC LIMIT 4;

#限制第2个开始的四条数据
SELECT *FROM tb_login ORDER BY id ASC LIMIT 1,4;

        

​​​​​​​

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值