一、数据库的查询用法

1、 数据表记录的查询: 运算符、虑重、列运算、别名、排序、聚合函数、分组

1.1数据准备

create table exam(
  id int primary key auto_increment,
  name varchar(20) not null,
  chinese double,
  math double,
  english double
);
insert into exam values(null,'关羽',85,76,60);
insert into exam values(null,'张飞',70,75,70);
insert into exam values(null,'赵云',90,65,95);
insert into exam values(null,'刘备',97,50,50);
insert into exam values(null,'曹操',90,89,80);
insert into exam values(null,'司马懿',90,67,65);
insert into exam values(null,'刘阿斗');

1.2 数据查询

文件结构:
名字:    
语法:
█▓     查询所有信息
       select * from 表名
█▓    查询指定列的信息
        select 列名,列名... from 表名;
█▓     条件查询
        select * from表名 where 条件
 
█▓    运算符

比较运算符

>  <<=  >=  =<>

大于、小于、大于/小于等于、不等于

between 1 and 10

显示某一区间的值:1—10之间

in(1,2,3)

显示在in列表中的值:1、2、3任意一个

Like ‘张_’

Like ‘张%’

模糊查询:%表示零或任意多个字符,_表示一个字符.

例子1:张三丰      like ‘张%’

例子2:张三        like ‘张_’

is null、is not null

是否为空

逻辑运算符

and&&

多个条件同时成立

or||

多个条件任意一个成立

not!

不成立,例如:where
not(age>18)

█▓       虑重
        查询排重:select distinct 列名 from 表名 where 条件;
 
█▓       别名以及列运算
        select 列名 as 别名, 列名 as 别名 ... from 表名 where 条件;
 
█▓     order by 排序 
        select * from 表名 order by 列名 asc desc;
█▓     关于null 问题 
        通过 ifnull(values,default)解决 
 
█▓    SQL中聚合 / 聚集函数
        聚集函数:多个数据进行运算,运算出一个结果。例如,求和,平均值,最大值,最小值。
        语法:select avg(列名) from 表名;都是位于 select 后
 
█▓  █▓  █▓      group by 分组查询
            select  ... from ... group by 列名;
 
 
█▓  █▓  █▓ █▓  █▓  █▓ █▓  █▓  █▓ █▓  █▓ 重点总结 select 语句执行顺序   █▓  █▓ █▓  █▓  █▓ █▓  █▓  █▓ █▓  █▓  █▓ 
 
select …要显示的内容.. from …表名.. where 条件…. group by …分组的列 …having …分组后的条件… order by …排序
 
select …4… from …1.. where …2.. group by ..3…having ..5… order by ...6.
 
 

二、数据备份和恢复

█▓  █▓  █▓      1.备份

语法:mysqldump -u 用户名 -p 数据库名
>
磁盘SQL文件路径

█▓  █▓ █▓        2.恢复

恢复方式1:

                1.创建数据库
                            备份的时候,没有备份创建数据库的语句,当需要恢复某个具体数据的时候需要手动创建
                  2. 导入数据
                    source D://mydb.sql
          恢复方式2:
                1.创建数据库
                 2.语法:mysql -u 用户名 -p 导入库名 < 硬盘SQL文件绝对路径
                

三、外键约束

 

添加外键需要注意的问题

l  如果从表要去添加一个外键约束。要求主表被引用的字段是主键或者唯一的。通常使用主键。

l  如果要删除主表中的数据。要求在从表中这个数据,要没有被引用,才可以去删除。

l  如果要向从表中去添加数据。要求在主表中,要有对应的数据。才可以去添加。

l  如果要删除表。要先删除从表。然后去删除主表。

l  新建表的时候。需要先去创建主表,然后去创建从表。

 

作用:保持数据的完整性,和有效性。

 
 
1.添加外键约束的语法
            创建表之后添加外键
█▓  █▓        alter table 从表名称    add foreign key (外键列的名称)references 主表名称(主键)
 
                创建表的时候添加外键

/*创建部门表*/

create table dept(

id int
primary key auto_increment,

name
varchar(20)

);

/*创建员工表*/

create
table employee(

id int primary key auto_increment,

name varchar(20),

age int ,

salary double,

dept_id int,

foreign key
(dept_id) references dept(id)

);

 
总结:

库的操作

创建库:create database 库名 character set 编码表;

删除库:drop database 库名;

查询库:show databases;

查看库的编码表:show create database 库名;

更改库:use 库名;

查看当前正在使用的库:select database();

修改库的编码表:alter database 库名 character set 编码表;

表本身的操作

创建表:create table 表名( 列名 列的类型(长度)  类的约束 ,列名 列的类型(长度)  类的约束...... );

删除表:drop table 表名;

查询表:show tables;

查看表的结构:desc 表名;

查看表的编码表:show create table 表名;

修改表:alter table 表名 增/删/改 列名
列的类型(长度) 约束;

add/drop/change/modify

修改表名:rename table 旧表名 to 新表名;

表中数据的操作

增:insert into 表名(列名) values(值);

删:delete from 表名 where 条件;  truncate

改:update 表名 set 列名=值 ,列名=值 where 条件;

查:select 列名 as 别名 ,列名 as 别名… from 表名  where 条件 group by 列名 having 条件 order by 排序.

查询排重:select distinct 列名 from 表名 where 条件;

聚合函数:

count 统计个数、sum求和、avg 平均值、max、min

在使用这几个函数进行数据的统计分析时,有时需要对数据表中的列进行数据的分组处理。group by

分组 group by :

排序:order  by 列名 
asc | desc;

 
 
 
 
 
 
 
 
 

<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

 
 
 
 

17mysql2█▓的更多相关文章

随机推荐

  1. Ubuntu 上安装QTAV第三方视频库

    安装QtAV的基本环境: sudo apt-get install build-essential sudo apt-get install libgl1-mesa-dev sudo apt-get ...

  2. Oracle ORA-14102: 只能指定一个 LOGGING 或 NOLOGGING 子句

    oracle 11g ,在通过命令impdp向一个数据库用户导入数据时,出现错误: ORA-14102: 只能指定一个 LOGGING 或 NOLOGGING 子句 造成此问题的原因是:当导入的表里没 ...

  3. blob 对象 实现分片上传 及 显示进度条

    blob对象介绍 一个 Blob对象表示一个不可变的, 原始数据的类似文件对象.Blob表示的数据不一定是一个JavaScript原生格式 blob对象本质上是js中的一个对象,里面可以储存大量的二进 ...

  4. https原理简析

    [转]http://www.cnblogs.com/carsonzhu/p/5225778.html HTTPS的工作原理 HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手 ...

  5. BZOJ1185 HNOI2007 最小矩形覆盖 凸包、旋转卡壳

    传送门 首先,肯定只有凸包上的点会限制这个矩形,所以建立凸包. 然后可以知道,矩形上一定有一条边与凸包上的边重合,否则可以转一下使得它重合,答案会更小. 于是沿着凸包枚举这一条边,通过旋转卡壳找到离这 ...

  6. Luogu P4016 负载平衡问题

    传说中的网络流24题之一,我刷的第二题菜. 据说这种东西做完了就可以有质的飞越?不过看着这些Luogu评级就有点蒙蔽. 首先我们看一下题目发现这不是均分纸牌的加强板吗,但是那个环的操作极大地限制了我的 ...

  7. Luogu P1966 火柴排队

    这还是一道比较简单的题目,稍微想一下就可以解决.终于有NOIP难度的题目了 首先我们看那个∑(ai-bi)^2的式子,发现这个的最小值就是排序不等式 所以我们只需要改变第一组火柴的顺序,使它和第二组火 ...

  8. 时区提示:Local time zone must be set--see zic manual page 2018的解决办法

    问题描述:在centos服务器上执行date命令时,显示的时间信息中的时区不正常,如下: [root@ulocalhost ~]# date Mon Apr 9 02:57:38 Local time ...

  9. Centos下堡垒机Jumpserver V3.0环境部署完整记录(1)-安装篇

    由于来源身份不明.越权操作.密码泄露.数据被窃.违规操作等因素都可能会使运营的业务系统面临严重威胁,一旦发生事故,如果不能快速定位事故原因,运维人员往往就会背黑锅.几种常见的运维人员背黑锅场景:1)由 ...

  10. visual studio2013安装及测试

    visual studio2013自同学处拷贝安装至本机,由于安装包较大采用了双重压缩,解压时费了点时间,安装过程更是用了一个小时之久. 1.安装环境: 本机配置:Windows8,Intel(R)C ...