1.环境部署:

syntax语法错误

查询基本使用(条件,排序,聚合函数,分组,分页)

--创建学生表

create table students (

id int unsigned not null auto_increment primary key,

name varchar(20) default '',

age tinyint unsigned default 0,

high decimal(5,2),

gender enum('男', '女', '中性', '保密') default '保密',

cls_id int unsigned default 0,

is_delete bit default 0

);

--创建班级表

create table classes(

id int unsigned auto_increment primary key not null,

name varchar(20) not null

);

--往students表里插入数据

insert into students values

(0,'小明',18,180.00,1,1,0),

(0,'小月月',19,180.00,1,2,0),

(0,'彭于晏',28,185.00,1,1,0),

(0,'刘德华',58,175.00,1,2,0),

(0,'黄蓉',108,160.00,2,1,0),

(0,'凤姐',44,150.00,4,2,1),

(0,'王祖贤',52,170.00,2,1,1),

(0,'周杰伦儿',34,null,1,1,0),

(0,'程坤',44,181.00,1,2,0),

(0,'和珅',55,166.00,1,2,0),

(0,'刘亦菲',29,162.00,2,3,0),

(0,'金星',45,180.00,3,4,0),

(0,'静香',18,170.00,2,4,0),

(0,'郭靖',22,167.00,1,5,0),

(0,'周杰',33,178.00,1,1,0),

(0,'钱小豪',56,178.00,1,1,0),

(0,'谢霆锋',38,175.00,1,1,0),

(0,'陈冠希',38,175.00,1,1,0);

2.查询所有列

select * from 表名

一定条件查询(where)

select * from where id=5;

查询制定列

select id,name from students;

使用as给字段起别名

select id,name as '姓名', age, high, gender from students;

通过表名字段查询

select students.name from students; #多个表中有相同字段,通过表名字查询

给表起别名查询

select s.id,s.name,s.age from students as s;

消除重复行

distinct

select distinct age from students;

条件查询

比较运算符

查询年纪大于18岁的信息

select * from students where age > 18;

18岁到28岁之间(and,&&)

select * from students where age >= 18 and age =< 28;

select * from students where age between 18 and 28;

在18岁以上或者身高180以上的人(or,||)

select * from students where age > 18 or high > 180;

找出18岁和28岁的人

select * from students where age=18 or age=28;

模糊查询

like

% 替代1个或者多个甚至是没有

查询姓名中有‘小’的所有名字

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

查询两个字人的名字 _表示一个字符

select * from students where name like '__';

查询至少有3个字的名字

select * from students where name like '%___';

范围查询

in (1,3,8)表示在一个非连续的范围内,在1,3,8范围中

查询 年纪为18和34的人

select * from students where age in (18, 34);

查询 年龄在17岁到34岁之间的信息

select * from students where age between 17 and 34;

查询 年纪不在18到34岁的信息

select * from students where age not between 17 and 34;

空判断

判断is null

查询身高为空的信息

select * from students where high is null;

判断非空is not null

select * from students where high is not null;

排序

order by 字段默认为从小到大

asc从小到大排列,即升序

desc从大到小排序,即降序

查询年纪在18到34岁之间的男性,按照年纪从小到大

select * from students where gender=1 and age between 18 and 34 order by age;

查询年纪在18到34岁之间的女性,身高从高到矮

select * from students where gender=2 and age between 18 and 34 order by high desc;

order by 多字段

将students表中数据按照年龄从大到小排列,年龄相同的情况下按照身高从大到小排列

select * from students order by age desc,high desc;

查询年纪在18到34岁的女性,身高从高到矮排序,如果身高相同的情况下按照年纪从小到大排序

select * from students where (age between 18 and 34) and gender=2 order by high desc,age asc; #如果条件多可以用()来区分

查询年纪在18到34岁的男性,身高从高到矮排序,如果身高相同的情况下按照年纪从小到大排序,如果年龄也相等那么按照id从小到大排序;

select * from students where gender=1 and age between 18 and 34 order by high desc,age asc,id asc;

聚合函数

总数

count(*) #()里可以添加字段,但是如果该字段为空,统计总数就会不准,因此用(*)

查询男性有多少人

select count(*) from students where gender=1;

最大值

max

查询最大的年纪

select max(age) from students;

查询女性的最高身高

select max(high) from students where gender=2;

最小值

min

select min(high) from students;

求和

sum

计算所有人的年龄总和

select sum(age) from students;

计算所有男人的年龄总和

select sum(age) from students where gender=1;

平均值

avg

计算平均年纪

计算平均年纪 sum(age)/count(*)

select sum(age)/count(*) from students;

select avg(age) from students;

保留2位小数round(,2)

select round(avg(age),2) from students;

分组

group by

按照性别分组,查询所有的性别

select gender from students group by gender;

计算每组性别的人数

select gender, count(*) from students group by gender;

查询男性组中的姓名 group_concat

select gender,group_concat(name) from students where gender=1 group by gender;

having

查询每个性别平均年纪超过30岁的性别,以及姓名

select gender, group_concat(name) from students group by gender having avg(age) > 30;

查询每种性别中的人数多于4个的组的信息

select gender,group_concat(name) from students group by gender having count(*)>4;

查询每种性别中的名字,身高,年龄 #查询多个内容之间要加分隔符(自定义),否则输出的字段是连在一起的,容易混淆。

select gender,group_concat(name,'|',high,'|',age) from students group by gender ;

分页

limit m,n m:从m+1行开始展示 n:显示的行数

显示5页

select * from students limit 5;

分页显示,每页显示2条数据

select * from students limit 0, 2;

按照身高从高到矮排序,查找出所有女性,并且分页显示,每页显示2条数据

select * from students where gender=2 order by high desc limit 0,2;

MariaDB select的更多相关文章

  1. centOS7中Mariadb数据库安装与基本管理

    一.Mariadb数据库安装 1. 直接yum源安装 yum -y install mariadb mariadb-serversystemctl start mariadb /启动Mariadb服务 ...

  2. MySQL与MariaDB核心特性比较详细版v1.0(覆盖mysql 8.0/mariadb 10.3,包括优化、功能及维护)

    注:本文严禁任何形式的转载,原文使用word编写,为了大家阅读方便,提供pdf版下载. MySQL与MariaDB主要特性比较详细版v1.0(不含HA).pdf 链接:https://pan.baid ...

  3. MySQL/MariaDB数据库的存储过程

    MySQL/MariaDB数据库的存储过程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.存储过程概述 1>.存储过程优势 存储过程把经常使用的SQL语句或业务逻辑封装起 ...

  4. MySQL/MariaDB数据库的视图(VIEW)

     MySQL/MariaDB数据库的视图(VIEW) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.视图概述 1>.什么是视图 视图就是一个虚拟的表,保存有实表的查询结果 ...

  5. Centos7安装使用Mysql(mariadb)

    安装 shell> yum install mariadb-server -y 配置 # 修改文件 /etc/my.cnf [mysqld]datadir=/mydata/data/mysqlc ...

  6. SQL中的CASE的用法

    CASE在SQL语句中,很有点类似java等高级编程语言中的switch这样子的多分枝语句,但是有点不同的是,case后面接的是when,另外,when的后续分枝有点类似if后面接else.这个是我的 ...

  7. CentOS 7 Tomcat服务的安装与配置

    3422人阅读  http://blog.51cto.com/13525470/2073657 一.Linux下的Java运行环境 Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由S ...

  8. mysql实现oracle存储过程默认参数

    我们都知道oracle存储过程支持为参数设置默认值,这样即使存储过程升级,原来的调用也可以不受影响.但是mysql不支持,mariadb也没有支持(截止10.4也是如此).但是这一限制会导致升级麻烦重 ...

  9. 最全的ORACLE-SQL笔记

    -- 首先,以超级管理员的身份登录oracle sqlplus sys/bjsxt as sysdba --然后,解除对scott用户的锁 alter user scott account unloc ...

随机推荐

  1. java8学习之比较器详解与类型推断特例

    比较器详解: 这次来对比较器进行一个学习,比较器(Comparator)这个是在JDK1.2就提出的概念,只是说JAVA8针对它进行了一定的扩充,更加方便咱们使用,其中唯一的抽象方法如下: 而JAVA ...

  2. maven私仓搭建——nexus3

    maven私仓搭建——nexus3本文主要介绍maven私仓在windows下的搭建.本文主要参考:http://www.cnblogs.com/bingyeh/p/5913486.html好,下面上 ...

  3. AttributeError: module 'Crypto.PublicKey.RSA' has no attribute 'import_key'

    I solved this problem by pip install pycryptodome

  4. 基于树莓派2代的DIY无线路由器

    最近手上多了一个树莓派2代,于是折腾就这么开始了. 因为总是得要个显示屏或者路由器或者插根网线才能玩,有点麻烦,所以有了此文. 设备清单: 树莓派2代 EDUP EP-N8508GS无线网卡(USB) ...

  5. 拖动元素,自由变换位置 jquery

    拖动元素,将改元素插入到某个元素前/后,并返回当前所在的位置的索引值,代码如下: <!DOCTYPE html><html lang="en"><he ...

  6. MySQL8.0.18通用版本安装

    环境说明: 系统版本:CentOS release 6.8 (Final) MySQL版本:mysql-8.0.18 内存:63G 空间:8T 1 配置本地yum仓库 这个只需要拷贝一个镜像,然后挂载 ...

  7. 如何将 GitHub 中的项目导入到 stackblitz.com 中

    如何将一个 GitHub 中的项目导入到 stackblitz.com 中,然后开始编辑和编译呢? 例如,我们有一个项目在 GitHub 中的地址为:https://github.com/cwiki- ...

  8. EasyPrtSc sec[1.2] 发布!

    //HOMETAG #include<bits/stdc++.h> namespace EasilyPrtSc{ //this namespace is for you to be mor ...

  9. HGOI20190706 题解

    Problem A 质因数 设f(x) 表示x的不同质因子个数,给出T组x,询问f(x)的值. 对于100%的数据 $x,T \leq 10^5 $ Sol : 第一遍欧拉筛,并记录下每个数的最小质因 ...

  10. 16位masm汇编实现记忆化递归搜索斐波那契数列第50项

    .model small ;递归fib,使用压缩BCD码,小端派 .data y1 byte 6 dup(0) y2 byte 6 dup(0) vis byte 1,1,1,61 dup(0) ;便 ...