一、Windows命令行 CLI

1、启动数据库服务:net start mysql
2、登录数据库:mysql -uroot -p123456
3、退出数据库:net stop mysql
4、关闭数据库服务:net stop mysql

二、数据库操作命令

命令 作用
show databases 显示所有数据库列表
create database 数据库名 创建数据库
create database 数据库名 character set utf8 创建数据库并设置编码utf8
alter database 数据库名 character set utf8 修改数据库编码
use 数据库名 选中指定名称数据库
show tables 显示数据库中所有表
desc 表名 查看表结构
drop database 数据库名 删除指定数据库

三、数据库的导入与导出

四、数据库语言

DML:是指对数据库中的表记录的操作,主要包括UPDATE、INSERT、DELETE,这3条命令是用来对数据库里的数据进行增删改操作。
DDL:主要的命令有CREATE、ALTER、DROP等,主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用。

五、DML

(一)、查询模型
语法:
SELECT
[字段1 [as 别名1],[函数(字段2) ,]…字段n]
FROM 表名
[WHERE where条件]
[GROUP BY 字段]
[HAVING where_contition]
[order 条件]
[limit 条件]
WHERE条件查询
数据库中常用的是where关键字,用于在初始表中筛选查询。它是一个约束声明,用于约束数据,在返回结果集之前起作用。
基本语法: select 字段 from 表 where where条件;

练习:

1.主键为32的商品:
select * from goods where goods_id=32;
2.不属于第3个栏目的所有商品
select * from goods where cat_id!=3;
3.本店价格高于3000的商品
select * from goods where shop_price>3000;
4.本店价格低于或等于100的商品
select goods_id,goods_name,shop_price, from goods where shop_price<=100;
5.取出第4个栏目或第11个栏目
select goods_id,goods_name,cat_id from goods where cat_id=3 or cat_id=11;
6.取出100<=价格<=500的商品 shop_price>=100 and shop_price<=500
select goods_name,cat_id,shop_price from goods where shop_price>=100 and shop_price<=500;
between 100 and 500
select goods_name,cat_id,shop_price from goods where shop_price between 100 and 500;
7.取出不属于第3个栏目,且不属于第11个栏目的商品(and 或 not in 分别实现)

select goods_name,cat_id from goods where catid!=3 and cat_id!=11;
select goods_name,cat_id from goods where cat_id not in (3,11);
8.取出第3个栏目下价格<1000或>3000并且点击量>5的商品
select goods_name,cat_id,goods_id,shop_price,click_count from goods where cat_id=3 and (shop_price<1000 or shop_price>3000) and click_count>5;
9.取出价格大于100且小于300,或大于4000且小于5000的商品
select goods_name,cat_id,goods_id,shop_price from goods (shop_price>100 and shop_price<300) or (shop_price>4000 and shop_price<5000);
10.取出名字以‘诺基亚’开头的商品
select goods_id,goods_name from goods where goods_name like “诺基亚%”;
11.取出名字为“诺基亚Nxx”的手机
select goods_id,goods_name from goods where goods_name like “诺基亚N__”;
12.取出名字不以‘诺基亚’开头的商品
select goods_name from goods where goods_name not like “诺基亚%”;
13.取出第3个栏目下面价格在1000到3000之间,并且点击量>5"诺基亚"开头商品
select goods_name,shop_price,click_count from goods where cat_id=3 and click_count>5 and goods_name like “诺基亚%”;

GROUPBY分组查询与统计函数
统计函数
如果我们想知道总用户数怎么办?
查询谁是数据表里的首富怎么办?
如果我们想知道用户的平均金额怎么办?
如果我们想知道所有用户的总金额怎么办?
函数名 作用
count() 计算行数
avg() 求平均值
sum() 求和
min() 求最小值
max() 求最大值
基本语法:select 函数(字段) from 表

示例:

1.查询所有商品的平均价格
select avg(shop_price) from goods;
2.查询最贵的商品
select max(shop_price) from goods;
3.查询最便宜的商品
select min(shop_price) from goods;
4.查询一共有多少种商品
select count() from goods;
5.查询商品的总价格
select sum(shop_price) as allsum from goods;
6.查询本店积压的商品总货款
select sum(shop_price
goods_number) as all from goods;

GROUPBY分组查询

GROUP BY 语句根据一个或多个列对SELECT结果集进行分组。
基本语法:select * from 表 group by 字段

案例:

1.统计每个栏目下商品的平均价格
select avg(shop_price) as avg,cat_id from goods group by cat_id;
2.查询每个栏目下有多少种商品
select count(*),cat_id from goods groupby cat_id;
3.查询每个栏目下最贵的商品
select max(shop_price),cat_id from goods group by cat_id;

HAVAING 筛选

用于对where和group by查询出来的结果集进行过滤,查出满足条件的结果集。它是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作。

基本语法:select * from 表 group by 字段 having 条件
示例:
1.查询每个商品所积压的货款(库存* 单价)
select goods_id,goods_name,goods_numbershop_price from goods;
2.查询该店每个栏目下积压的货款
select sum(goods_number
shop_price),cat_id from goods group by cat_id;
3.查询比市场价格省钱200以上的商品及该商品所省的钱(where having)
select goods_id,goods_name,market_price-shop_price from goods whre market_price-shop_price>200;
select goods_id,goods_name,market_price-shop_price as sheng from goods having sheng>200;

如果我们把where中的market_price-shop_price赋值给sheng where sheng> 200这样会报错 unknown column ‘sheng’
select goods_id,goods_name,market_price-shop_price as sheng from goods where sheng>200; //报错sheng列找不到
where条件筛选的是磁盘上的表的字段,而sheng是结果集上的字段,结果集查出来的是临时放在内存里的,我们需要筛选结果集上的字段,我们可以将结果集当成表,进一步筛选,只不过不能用where需要用having, where 发挥的比较早,是针对磁盘上的表发挥作用,筛选出结果集。从结果集中进一步筛选需要用having,where与having同时存在,where要放到having前面。

orderby排序

排序是按照某个属性来排的,在数据库中是按照某个列来排的,那有正序也有倒序。
基本语法:select 字段 from 表 order by 字段1 desc/asc,字段n desc/asc
asc 升序排列,从小到大(默认)
desc 降序排列,从大到小
示例:
1.按照价格进行排序
select * from goods order by shop_price asc;
select * from goods order by shop_price desc;
2.按照栏目进行排序
select * from goods order by cat_id asc;
select * from goods order by cat_id desc;
3.按照栏目升序排列后,在每个栏目中按照价格降序排列
select goods_name,cat_id,shop_price from goods order by cat_id,shop_price desc;

limit 限制取出条数

order by一般和limit配合使用功能才会更强大
基本语法:
语法1 select 字段 from 表 order by 字段 关键词 limit 数量
语法2 select 字段 from 表 order by 字段 关键词 limit offset,n
limit n //限制取出条目
limit offset,n //跳过offset条取出n条
示例:
limit 3 //取出0~ 3 取出前3
limit 2,3;//取出前3到前5
1.取出价格最高的前三名商品
select goods_name,shop_price from goods order by shop_price desc limit 0,3;
2.取出点击量前3到前5名的商品
select goods_name,goods_id,click_count from goods order by click_count desc limit 2,3;

多表联合查询:

连接类型:

类型 子类型 描述
内连接 取得两个表中存在连接匹配关系的记录。内连接使用比较运算符根据每个表共有的列的值匹配两个表中的行。
例如,检索 students 和 courses 表中学生学号相同的所有行。
隐式的内连接 没有INNER JOIN,形成的中间表为两个表的笛卡尔积。
显式的内连接 有INNER JOIN,形成的中间表为两个表经过ON条件过滤后的笛卡尔积。
类型 子类型 描述
外连接 外连接可以是左向外连接、右向外连接
左外连接 左表中的所有数据全部取出,然后到对应的右表去找数据,如果找不到数据补null
右外连接 右外连接是左外联接的反向联接,将返回右表的所有行,如果右表的某行在左表中没有匹配行,则将为左表返回空值。
内连接
隐式语法1 select 表1.字段 [as 别名],表n.字段 from 表1 [别名],表n where 条件;
显式语法2 select 表1.字段 [as 别名],表n.字段 from 表1 INNER JOIN 表n on 条件;
案例:
取出boy和girl表数据,id相同者为一对
//隐式内连接
select boy.hid,boy.bname,girl.hid,girl.gname from boy,girl where boy.hid=girl.hid
//显式内连接
select boy.hid,boy.bname,girl.hid,girl.gname from boy inner join girl on boy.hid=girl.hid
外联接
左向外联接
语法:select 表1.字段 [as 别名],表n.字段 from 表1 LEFT JOIN 表n on 条件;
案例:
所有男士站出来,找到自己的另一半,没有的以Null补齐

select boy.hid,boy.bname,girl.hid,girl.gname from boy left join girl on boy.hid=girl.hid。
右向外联接
语法 select 表1.字段 [as 别名],表n.字段 from 表1 right JOIN 表n on 条件;
select boy.hid,boy.bname,girl.hid,girl.gname from boy right join girl on boy.hid=girl.hid

MySQL常用命令及其案例相关推荐

  1. 征途linux mysql_MySql征途之mysql常用命令

    mysql征程之mysql常用命令 一.连接MySql 语法: mysql -h 主机地址 -u 用户名 -p 用户密码 例1:连接到本机上的MYSQL.键入命令mysql -u root -p(本地 ...

  2. mysql tree 修改_13.1 设置更改root密码 13.2 连接mysql 13.3 mysql常用命令

    更改root密码 ps aux |grep mysql     //先查看一下mysql是否启动了 /etc/init.d/mysqld start    //启动mysql ps aux |grep ...

  3. 设置更改root密码(远程,本地)、连接mysql、mysql常用命令

    设置更改root密码 1.将mysql加入环境变量中 [root@centos7 ~]# grep mysql /etc/profile export PATH=/usr/local/mysql/bi ...

  4. MySql常用命令集Mysql常用命令showdatabases;显示数据库createdatab

    MySql 常用命令集 Mysql常用命令 show databases; 显示数据库 create database name; 创建数据库 use databasename; 选择数据库 drop ...

  5. 【CentOS 7MySQL常用操作3】,MySQL常用命令#180113

    2019独角兽企业重金招聘Python工程师标准>>> hellopasswd MySQL常用命令 查询库show databases; 切换库use mysql; 查看库里的表sh ...

  6. MYSQL常用命令(转载)

    1.导出整个数据库 mysqldump -u 用户名 -p --default-character-set=latin1 数据库名 > 导出的文件名(数据库默认编码是latin1) mysqld ...

  7. 设置更改root密码 连接mysql mysql常用命令

    一.设置更改root密码 #/etc/init.d/mysqld start #ps aux |grep mysql #mysql -uroot //提示-bash: mysql : 未找到命令 #l ...

  8. 设置更改root密码 ,连接mysql,mysql常用命令

    2019独角兽企业重金招聘Python工程师标准>>> 设置更改root密码 /usr/local/mysql/bin/mysql -uroot 更改环境变量PATH,增加mysql ...

  9. 13.1-13.3 设置更改root密码,连接MySQL,MySQL常用命令

    13.1 设置更改root密码 大纲 准备工作: 1 启动mysql服务 [root@AliKvn ~]# /etc/init.d/mysqld start Starting MySQL.       ...

最新文章

  1. linux远程跳板机超时
  2. 卡片游戏 数学期望
  3. java实验楼使用说明_Java 方法
  4. ASP.NET Core Web API 最小化项目
  5. python图像库_Python常用图像处理库整理
  6. fsLayui联动表格使用(二)
  7. 工程训练大赛物流小车_27所高校参赛,第六届全国工程训练竞赛湖北赛区比赛落幕...
  8. vue-loader was used without the corresponding plugin. Make sure to include VueLoad……
  9. 文件夹html文件批量替换,DirRplacer(文件批量替换工具)
  10. CCNA中文版完整教程
  11. PHP+MySQL制作简单动态网站(附详细注释+源码)
  12. 众人帮怎么发布悬赏任务?发布任务所需要求条件是什么?
  13. 从0到1搭建kubernetes集群
  14. 桌面上的计算机图标的功能是什么,桌面上计算机图标不见了的解决方法教程
  15. 一款开源的协作文本编辑器
  16. 探秘varian:优雅的发布部署程序
  17. java直线绕点旋转_几何画板中怎样使直线绕点旋转
  18. 【Python3.6】生成微信好友个性签名词云
  19. 数论概论笔记(二)勾股数组
  20. 夫琅禾费单缝衍射matlab分析,夫琅禾费单缝衍射光强分析与探讨

热门文章

  1. oledbdatareader和OleDbDataAdapter之间的区别
  2. Country Code In SPEC IEEE 802.11
  3. .val()和.value的区别
  4. python判断一个文件夹里面是否为空_Python碎片化学习教程 @8. 判断目标文件夹是否为空...
  5. 新能源磷酸铁锂除钙镁专用树脂CH-93详情参数 及测试流程
  6. python线程的暂停与继续_线程暂停与继续实现
  7. 初识安卓小程序(Android电话拨号器)
  8. opencv圆形环状标记点检测
  9. 在linux跑python脚本将数据输出到文件中
  10. HTML荧光文字动态效果,CSS实现文字高光水波渐变的动态效果实例