MySQL之查询篇(简单查询以及条件)(三)

一:查询

1.创建数据库,数据表

-- 创建数据库
create database python_test_1 charset=utf8;

-- 使用数据库
use python_test_1;

-- students表
create table students(
    id int unsigned primary key auto_increment not null,
    name varchar(20) default ‘‘,
    age tinyint unsigned default 0,
    height decimal(5,2),
    gender enum(‘男‘,‘女‘,‘中性‘,‘保密‘) default ‘保密‘,
    cls_id int unsigned default 0,
    is_delete bit default 0
);

-- classes表
create table classes (
    id int unsigned auto_increment primary key not null,
    name varchar(30) not null
);

2.准备数据

-- 向students表中插入数据
insert into students values
(0,‘小明‘,18,180.00,2,1,0),
(0,‘小月月‘,18,180.00,2,2,1),
(0,‘彭于晏‘,29,185.00,1,1,0),
(0,‘刘德华‘,59,175.00,1,2,1),
(0,‘黄蓉‘,38,160.00,2,1,0),
(0,‘凤姐‘,28,150.00,4,2,1),
(0,‘王祖贤‘,18,172.00,2,1,1),
(0,‘周杰伦‘,36,NULL,1,1,0),
(0,‘程坤‘,27,181.00,1,2,0),
(0,‘刘亦菲‘,25,166.00,2,2,0),
(0,‘金星‘,33,162.00,3,3,1),
(0,‘静香‘,12,180.00,2,4,0),
(0,‘郭靖‘,12,170.00,1,4,0),
(0,‘周杰‘,34,176.00,2,5,0);

-- 向classes表中插入数据
insert into classes values (0, "python_01期"), (0, "python_02期");

3.简单查询

(1)查询所有字段

  select * from 表名;

  select * from students;

  

(2)使用as 给字段起别名

  select id as 序号, name as 名字, gender as 性别 from students;

  

(3)可以通过as 给表起别名

-- 如果是单表查询 可以省略表名
select id, name, gender from students;

-- 表名.字段名
select students.id,students.name,students.gender from students;

-- 可以通过 as 给表起别名
select s.id,s.name,s.gender from students as s;

(4)消除重复行

  在select后面列前使用distinct可以消除重复的行

  select distinct 列1,... from 表名;

  例:select distinct gender from students;  

  

二:条件

   使用where子句对表中的数据筛选,结果为true的行会出现在结果集中

1.语法   

  select * from 表名 where 条件;

  例:select * from students where id=1;    

2.where后面支持多种运算符,进行条件的处理

(1)比较运算符  

  • 等于: =
  • 大于: >
  • 大于等于: >=
  • 小于: <
  • 小于等于: <=
  • 不等于: != 或 <>
 例1:查询编号大于3的学生

  select * from students where id>3;

  

 例2:查询编号不大于4的学生

  select * from students where id<=4;

  

 例3:查询姓名不是“黄蓉”的学生

  select * from students where name !=‘黄蓉‘;

  

 例4:查询没被删除的学生

  select * from students where is_delete=0;

  

(2)逻辑运算符  

  • and
  • or
  • not
 例1:查询编号大于3的女学生

  select * from students where id>3 and gender=‘女‘;

  

 例2:查询编号小于4或没被删除的学生

  select * from students where id<4 or is_delete=0;

  

(3)模糊查询

  • like
  • %表示任意多个任意字符
  • _表示一个任意字符
 例1:查询姓小的学生;

  select * from students where name like ‘小%‘;

  

 例2:查询姓‘小‘并且“名”是一个字的学生

  select * from students where name like ‘小_‘;

  

 例3:查询姓黄或叫靖的学生

  select * from students where name like ‘黄%‘ or ‘%靖‘;

  

(4)范围查询 

  • in表示在一个非连续的范围内
  • between ... and ...表示在一个连续的范围内
 例1:查询编号是1,3或8的学生;

  select * from students where id in (1,3,8);

  

 例2:查询编号在3至8之间的学生;

  select * from students where id between 3 and 8;

  

例3:查询编号在3至8之间所有的男生;

  select * from students where (id betweent 3 and 8) and gender=1;

  

(5)空判断

  • 判空is null (注意:null与‘’是不同的)
  • 判非空is not null
 例1:查询没有填写身高的学生;

  select * from students where height is null;

  

 例2:查询填写了身高的学生

  select * from students where height is not null;

  

 例3:查询填写了身高的男生

  select * from students where height is not null and gender=‘男‘;

  

(6)优先级

  • 优先级由高到低的顺序为:小括号,not,比较运算符,逻辑运算符
  • and比or先运算,如果同时出现并希望先算or,需要结合()使用

  

  



原文地址:https://www.cnblogs.com/huiyichanmian/p/11186479.html

时间: 2024-08-10 06:02:29

MySQL之查询篇(简单查询以及条件)(三)的相关文章

数据查询,简单查询及高级查询

查询所有列1.select * from info查特定列2.select code,name from info查出列后加别名,再查姓名3.select code as '代号',name as '姓名' from info条件查询,单条件查询4.select * from info where code='p001'两个条件,并且的关系5.select * from info where code='p001' and nation='n001'范围查询6.select * from car

MySQL之数据的简单查询

我直接把我的mysql学习笔记以图片的形式粘贴在这里了,供自己回顾(都是一些简单的语句)

马哥Linux学习之查询篇(命令查询和文件查询)

Linux运维工作一般都使用命令完成,在如此多的各种命令中,要想全部记住显然是不太可能也是不必要的,另外,文件的查找在日常操作中也是必不可少的.下面我就总结一下Linux中如何查找命令以及文件. 命令的运行文件路径查询.这个查找的方法是同样是使用命令,这个命令叫which,它能帮我们查找到命令的路径.具体它的详细介绍我们可以man一下哦. 接下来,我们使用which查看命令的路径.先看一下最常用的ls命令吧. 在图中大家可以看到执行的结果显示出来了,不但显示了ls命令的运行文件路径,而且显示了此

MySQL 数据库之单表查询

一.查询语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二.关键字执行优先级 from where group by having select distinct order by limit 1.找到表:from 2.拿着where指定的约束条件,去文件/表中取出一条条记录 3.将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组 4

010.简单查询、分组统计查询、多表连接查询(sql实例)

-------------------------------------day3------------ --添加多行数据:------INSERT [INTO] 表名 [(列的列表)] --SELECT UNION --SELECT 'HAHA',1,32--UNION ALL --全部显示/显示重复数据 即使集合相同--UNION---------将查询的两个结果集合并.结构必须一致 -->常见面试题 --SELECT 'HEHE',2,33------将查询结果添加到列表中(子查询)IN

MySQL —— 简单查询与按条件查询

在MySQL中从数据表中查询数据的基本语句时select语句.  select语句基本语法格式:      select 查询内容       from 表名      where 表达式      group by 字段名      having 表达式      order by 字段名      limit 记录数每一个select语句由多个子句组成. 1. from 表名 指定是从那张表中查询 2. select 查询内容 查询所有字段 select * from 表名:*通配符表示所有

mysql第四篇:数据操作之多表查询

mysql第四篇:数据操作之多表查询 一.多表联合查询 #创建部门 CREATE TABLE IF NOT EXISTS dept ( did int not null auto_increment PRIMARY KEY, dname VARCHAR(50) not null COMMENT '部门名称' )ENGINE=INNODB DEFAULT charset utf8; #添加部门数据 INSERT INTO `dept` VALUES ('1', '教学部'); INSERT INT

mysql语句基本简单查询

mysql语句基本简单查询 第一节 -- or # 单行注释/***多行注释*/ -- c创建数据库examCREATE DATABASE exam; USE exam; /*创建部门表*/CREATE TABLE dept( deptno INT PRIMARY KEY, dname VARCHAR(50), loc VARCHAR(50)); /*创建雇员表*/CREATE TABLE emp( empno INT PRIMARY KEY, ename VARCHAR(50), job VA

MySQL简单查询详解

MySQL的查询操作 单表查询:简单查询 多表查询:连接查询 联合查询 布尔条件表达式操作符    = 等值比较    <=>:跟空值比较不会产生额外信息的等值比较    <>:不等值    <:     <=:    >    >=    IS NULL    IS NOT NULL        LIKE:        支持的通配符: %(任意长度的任意字符),_(任意单个字符)    RLIKE,REGEXP: 支持使用正则表达式    IN: 判断