10.11-数据库mysql
数据库
什么是数据库?
数据库(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相关推荐
- 10.11.5 brew mysql_mac 通过brew 安装的mysql启动失败解决方案
最近重装了mac系统,所有常用的软件都需要重新安装一遍,无疑安装一个brew是个很好的选择,关于brew是什么,怎么安装建议去brew官网查看,附上地址:brew官网 安装完成之后,安装其他的软件就特 ...
- Windows 10 安全移动 MySQL 数据库的存储位置
系统: Windows 10 64bit 数据库: MySQL 5.7 要修改数据库存储的位置,比如从默认安装目录下的C:\ProgramData\MySQL\MySQL Server 5.7\Dat ...
- mysql学习(2)-Navicat Premium 12 链接MySQL8.0.11数据库报2059错误
Navicat Premium 12 链接MySQL8.0.11数据库报2059错误 1,问题现象 安装完MySQL8.0.11和Navicat Premium12后,我们会用Navicat去测试连接 ...
- Oracle 夺得榜首,MySQL 稳居第二 ,10月数据库排行榜出炉!
DB-Engines最近发布了2021年10月份的数据库排名,网站是根据数据库管理系统当前的流行程度进行排名,排名每月更新一次.这份榜单分析主要为数据库相关从业人员提供一个技术方向的参考,其中数据库排 ...
- Windows 10 下 转移MySQL 8.0的数据库文件夹
Windows 10 下 转移MySQL 8.0的数据库文件夹 随着数据的不断导入,MySQL中的数据越来越多,所占据的存储空间也越来越大.默认安装MySQL时,其会将数据库文件放到默认目录 C:Pr ...
- MYSQL数据库——mysql的数据类型和运算符
一.数据类型和运算符 数据库表是由多列字段构成,每一个字段都是表的一个属性,每一列都指定了不用的数据类型.指定了数据类型之后,也就决定了向字段内插入的数据的内容.例如,插入的是数字的时候,既可以将它们 ...
- 数据库 - mysql内置功能
mysql内置功能: 1.视图 2.触发器 3.存储过程 4.事务 5.函数 一.视图 介绍: 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名], 用户使用时只需 ...
- 大数据之数据库mysql优化实战(一)
2019独角兽企业重金招聘Python工程师标准>>> :facepunch: 大数据之数据库mysql优化实战(一) 首先你要有数据,不然怎么测试,几百条就算了,还没跑就完了. 本 ...
- 同步云数据库MySQL到自建数据库
摘要: 同步云数据库MySQL到自建数据库 备份恢复到本地的相关说明,请参考https://help.aliyun.com/knowledge_detail/41817.html 本例环境为 Mysq ...
- 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. ...
最新文章
- lucene的丰富的各种查询
- Windows配置本地域名
- 打开本地文件_可以跨软件搜索文件?结构式检索你一定要学会!
- 2017数学建模b题回顾_12月热门文章和2017年回顾
- python美化输出模块_美化输出结果之Python模块PrettyTable介绍
- BZOJ1251序列终结者——非旋转treap
- 基于STM32的中文字库解码
- json格式化工具有哪些?在项目中使用什么工具来格式化JSON数据?
- 什么软件可以搜索python答案_【python学习手记】网课精灵~调用爬虫搜索网课答案~...
- 申宝公司-两利好提振股市
- 三方登录——新浪微博登陆
- 通过java获取抖音用户主页信息(2020年9月)
- 政治正确的睡前故事(4则)【搬运】【破事水】
- 字符串正则替换、点替换横杠
- 中国最火最流行的40个博客网站
- 微软专利展示了具有灵活触控笔的双屏设备
- 学习ARM开发(6)
- [C++]打开新世界的大门之C++入门
- 二十四节气之大暑时节常识介绍
- 安全狗技术研究论文入选中国科技核心期刊
热门文章
- android 儿童 汉字 学习 游戏,儿童学汉字游戏app官方下载-儿童学汉字游戏v3.7 安卓版-腾牛安卓网...
- HTML制作个人名片
- 数据挖掘与数据分析项目链家租房数据(三)进一步探索与归纳
- python证明冰雹猜想_如果冰雹猜想被证明了。那数学会有很大突破吗?
- 在微信开发者工具中,使用WeUI前端美化框架,微信小程序
- 神武手游做任务链服务器维护,神武手游跑环攻略 跑环注意事项详解
- BDL 百度研究院大数据实验室的吴海山,做一名数据科学家有怎样的体验,问我吧!
- 游戏测评浅浅试—MMO手游太古神王2测评
- 【mysql】mysql查询优化之索引类型、最左前缀
- 医疗his系统值不值得投入使用