数据库

什么是数据库?

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。

现在我们使用关系型数据库管理系统(RDBMS)来存储和管理大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

RDBMS 即关系数据库管理系统(Relational Database Management System)的特点:

  • 1.数据以表格的形式出现

  • 2.每行为各种记录名称

  • 3.每列为记录名称所对应的数据域

  • 4.许多的行和列组成一张表单

  • 5.若干的表单组成database

操作数据库

创建数据库

create database <数据库名>

显示数据库

show databases (注意:最后有个s)

删除数据库

drop database <数据库名>

查看当前库中的表

show tables

查看其他库中的表

show tables from <database name>;

操作表

创建表

create table student(
id      int     PRIMARY KEY auto_increment,
name    varchar(32) not null
);

删除表

DROP TABLE 表名

数据表的结构的修改

三、数据表的结构的修改:1、在上面员工表的基本上增加一个image列。
alter table emplyee add image varchar(32);2、修改job列,使其长度为60。
alter table emplyee modify job varchar(60);3、删除gender列。
alter table emplyee drop gender;4、表名改为user。
rename table emplyee to user;
rename table user to emplyee;5、修改表的字符集为utf8
alter table emplyee character set utf8;6、列名name修改为username
alter table emplyee change name username varchar(32);

操作表数据

###

添加数据
INSERT INTO employee VALUES(1,'zs',NULL,NULL,'信息',1000,NULL);
查看数据
select * from  exam;
删除数据
DELETE  FROM  user WHERE  username='zs';
修改数据
UPDATE user SET salary=5000;

条件查询

条件查询需要用到where语句,where必须放到from语句表的后面 支持如下运算符

运算符 说明
= 等于
<>或!= 不等于
< 小于
<= 小于等于
> 大于
>= 大于等于
between and 两个值之间
is null 为null
and 并且
or 或者
in 包含,相当于多个or
not not可以取非,主要用在is 或in中
like like称为模糊查询,支持%或下划线匹配%匹配任意个字符下划线,一个下划线只匹配一个字符

约束

DEFAULT 默认约束

UNIQUE 唯一约束

CHECK 检查约束

PRIMARY KEY 主键

FOREIGN KEY 外键约束

PRIMARY KEY auto_increment 主键自增

排序

order by

排序采用order by子句,order by后面跟上排序字段,排序字段可以放多个,多个采用逗号间隔,order by默认采用升序,如果存在where子句那么order by必须放到where语句的后面

select * from hzuser order by usersal;
-- 从小到大
select * from hzuser order by usersal asc;
-- 从大到小
select * from hzuser order by usersal desc;  

聚合函数

count

计数 会忽略null 一般有null 的时候 这个是个考点 要把null 转换成0

-- 取得所有的会员数
select count(*) from hzuser;

avg

取得某一列的平均值

-- 取得平均薪水
select avg(usersal) from hzuser;

min

取得某个一列的最小值

-- 取得最低薪水
select min(usersal) from hzuser;

max

-- 取得最高薪水
select max(usersal) from hzuser;

分组查询

分组查询主要涉及到两个子句,分别是:group by和having

having 类似 where , 和当前语句的 聚合函数有关

-- 取得每个工作岗位的工资合计,要求显示岗位名称和工资合计
select job, sum(usersal) from hzuser group by job;
-- 如果使用了order by,order by必须放到group by后面   排序时候注意
select job, sum(usersal) from hzuser group by job order by sum(usersal) ;
-- 取得每个岗位的平均工资大于2000
select job, avg(usersal) from hzuser group by job having avg(usersal) >2000;

查询总结

以上语句的执行顺序 1.首先执行where语句过滤原始数据 2.执行group by进行分组 3.执行having对分组数据进行操作 4.执行select选出数据 5.执行order by排序

select 字段      from 表名    where …….  group by ……..having …….(就是为了过滤分组后的数据而存在的—不可以单独的出现)   order by ……..

连接查询

连接查询:也可以叫跨表查询,需要关联多个表进行查询

select  hz.name, j.jname from hzuser hz , jieji j where hz.jiejinum=j.jiejinum;

内连接

-- 显示  工资   大于2000的  用户   信息,并显示所属的   阶级   名称
-- 使用 join  on 或where
select hz.hname, hz.usersal, j.jname from hzuser hz, jieji j where hz.jiejinum=j.jiejinum and  hz.usersal > 2000;
select hz.hname, hz.usersal, j.jname from hzuser hz join jieji j on hz.jiejinum=j.jiejinum where  hz.usersal>2000;

外连接(重点)

(外连接)显示 用户信息,并显示所属的 阶级 名称,如果某一个阶级没有会员,那么该阶级也必须显示出来 看到这些字 就要想到 外连接

left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 ; right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录; inner join(等值连接) 只返回两个表中联结字段相等的行;

-- 右连接:
select hz.hname, hz.usersal, j.jname from hzuser hz right join jieji j on hz.jiejinum=j.jiejinum;
-- 左连接:
select hz.hname, hz.usersal, j.jname from jieji j left join hzuser hz on hz.jiejinum=j.jiejinum;

子查询

子查询就是嵌套的select语句,可以理解为子查询是一张表

-- 查询哪些人的薪水高于会员的平均薪水,需要显示会员编号,会员姓名,薪水
-- 1、取得平均薪水
select avg(usersal) from hzuser;
-- 2、取得大于平均薪水的会员
select hzusernum, name, usersal from hzuser where usersal > (select avg(usersal) from hzuser);

limit 的使用(重点)-分页

MySql提供了limit ,主要用于提取前几条或者中间某几行数据 ,m,n其中m是指记录开始的index,从0开始,表示第一条记录。n是指从第m+1条开始,取n条。

select * from table limit

select * from tablename limit 2,4

即取出第3条至第6条,4条记录

-- 取得前5条数据
select * from hzuser  limit 5;
-- 从第二条开始取两条数据
select * from hzuser  limit 1,2;
-- 取得薪水最高的前5名
select  * from hzuser hz  order by hz.usersal desc limit 5;

10.11-数据库mysql相关推荐

  1. 10.11.5 brew mysql_mac 通过brew 安装的mysql启动失败解决方案

    最近重装了mac系统,所有常用的软件都需要重新安装一遍,无疑安装一个brew是个很好的选择,关于brew是什么,怎么安装建议去brew官网查看,附上地址:brew官网 安装完成之后,安装其他的软件就特 ...

  2. Windows 10 安全移动 MySQL 数据库的存储位置

    系统: Windows 10 64bit 数据库: MySQL 5.7 要修改数据库存储的位置,比如从默认安装目录下的C:\ProgramData\MySQL\MySQL Server 5.7\Dat ...

  3. mysql学习(2)-Navicat Premium 12 链接MySQL8.0.11数据库报2059错误

    Navicat Premium 12 链接MySQL8.0.11数据库报2059错误 1,问题现象 安装完MySQL8.0.11和Navicat Premium12后,我们会用Navicat去测试连接 ...

  4. Oracle 夺得榜首,MySQL 稳居第二 ,10月数据库排行榜出炉!

    DB-Engines最近发布了2021年10月份的数据库排名,网站是根据数据库管理系统当前的流行程度进行排名,排名每月更新一次.这份榜单分析主要为数据库相关从业人员提供一个技术方向的参考,其中数据库排 ...

  5. Windows 10 下 转移MySQL 8.0的数据库文件夹

    Windows 10 下 转移MySQL 8.0的数据库文件夹 随着数据的不断导入,MySQL中的数据越来越多,所占据的存储空间也越来越大.默认安装MySQL时,其会将数据库文件放到默认目录 C:Pr ...

  6. MYSQL数据库——mysql的数据类型和运算符

    一.数据类型和运算符 数据库表是由多列字段构成,每一个字段都是表的一个属性,每一列都指定了不用的数据类型.指定了数据类型之后,也就决定了向字段内插入的数据的内容.例如,插入的是数字的时候,既可以将它们 ...

  7. 数据库 - mysql内置功能

    mysql内置功能: 1.视图 2.触发器 3.存储过程 4.事务 5.函数 一.视图 介绍: 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名], 用户使用时只需 ...

  8. 大数据之数据库mysql优化实战(一)

    2019独角兽企业重金招聘Python工程师标准>>> :facepunch: 大数据之数据库mysql优化实战(一) 首先你要有数据,不然怎么测试,几百条就算了,还没跑就完了. 本 ...

  9. 同步云数据库MySQL到自建数据库

    摘要: 同步云数据库MySQL到自建数据库 备份恢复到本地的相关说明,请参考https://help.aliyun.com/knowledge_detail/41817.html 本例环境为 Mysq ...

  10. atitit.Oracle 9 10 11 12新特性attilax总结

    atitit.Oracle 9  10 11  12新特性 1. ORACLE 11G新特性 1 1.1. oracle11G新特性 1 1.2. 审计 1 1.3. 1.   审计简介 1 1.4. ...

最新文章

  1. lucene的丰富的各种查询
  2. Windows配置本地域名
  3. 打开本地文件_可以跨软件搜索文件?结构式检索你一定要学会!
  4. 2017数学建模b题回顾_12月热门文章和2017年回顾
  5. python美化输出模块_美化输出结果之Python模块PrettyTable介绍
  6. BZOJ1251序列终结者——非旋转treap
  7. 基于STM32的中文字库解码
  8. json格式化工具有哪些?在项目中使用什么工具来格式化JSON数据?
  9. 什么软件可以搜索python答案_【python学习手记】网课精灵~调用爬虫搜索网课答案~...
  10. 申宝公司-两利好提振股市
  11. 三方登录——新浪微博登陆
  12. 通过java获取抖音用户主页信息(2020年9月)
  13. 政治正确的睡前故事(4则)【搬运】【破事水】
  14. 字符串正则替换、点替换横杠
  15. 中国最火最流行的40个博客网站
  16. 微软专利展示了具有灵活触控笔的双屏设备
  17. 学习ARM开发(6)
  18. [C++]打开新世界的大门之C++入门
  19. 二十四节气之大暑时节常识介绍
  20. 安全狗技术研究论文入选中国科技核心期刊

热门文章

  1. android 儿童 汉字 学习 游戏,儿童学汉字游戏app官方下载-儿童学汉字游戏v3.7 安卓版-腾牛安卓网...
  2. HTML制作个人名片
  3. 数据挖掘与数据分析项目链家租房数据(三)进一步探索与归纳
  4. python证明冰雹猜想_如果冰雹猜想被证明了。那数学会有很大突破吗?
  5. 在微信开发者工具中,使用WeUI前端美化框架,微信小程序
  6. 神武手游做任务链服务器维护,神武手游跑环攻略 跑环注意事项详解
  7. BDL 百度研究院大数据实验室的吴海山,做一名数据科学家有怎样的体验,问我吧!
  8. 游戏测评浅浅试—MMO手游太古神王2测评
  9. 【mysql】mysql查询优化之索引类型、最左前缀
  10. 医疗his系统值不值得投入使用