Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >mysql基础

mysql基础

作者头像
达达前端
发布于 2019-07-03 06:28:38
发布于 2019-07-03 06:28:38
61500
代码可运行
举报
文章被收录于专栏:达达前端达达前端
运行总次数:0
代码可运行
mysql基础

mysql基础

查询格式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select expr from tal_name
where 条件
group by 分组 having 子句对分组结果进行二次筛选
order by 排序 asc | desc
limit 限制显示条数
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
in (); 在范围内
between x and y 在两者之间

image.png

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
where price >= 10 and price <=30 or price<=50;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
where price not between 30 and 50;

image.png

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
where name like 'da%'

where name like 'da_'

group by 分组

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select max(price) from goods;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select type_id, max(price) from goods group by type_id;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select id, max(price) from goods group by id;

min:最小值

sum:总和

avg:平均值

count:总行数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select id, count(*) from goods group by id;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select goods_id,goods_name,goods_price - market_price from goods;

where用于查询数据,having用于筛选数据

where对表中的列发发挥作用,having对查询结果中列发挥作用

where和having后面写法一样

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select id, name, m_price-shop_price as s from goods having s>100;

而:where只能对表中的字段名进行筛选

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select id, name from goods where m_price - shop_price >100;

order by 默认是升序排列

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
order by price
order by price desc 降序
order by price asc
order by rand()

limit offset 偏移量 n 取出条目

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select id, name, price from goods order by price desc limit 3,3;

安装mysql:

双击下载打开安装包:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://dev.mysql.com/downloads/

并安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Microsoft.NET4.0

安装后,安装mysql,点击接受,默认安装,然后就是next,点击提示框的是,接着点击execute和next,设置密码和重复密码,windows service name为mysql,next和execute,next,next,execute,finish即可完成安装。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
= any  运算符 = in等效
!=any 或 <> 运算符 与 not in 等效

是否存在:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select goods_type_id, good_type_name from category where exists (select * from goods where goods.goods_type_id = category.goods_type_id);

内连接, 左连接,右连接

内连接:显示左表及右表符合连接条件的记录 左右连接的交集

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT n1,n2,n3 FROM tb1 INNER JOIN tb2 ON tb1.n1= tb2.n2; 

左连接:显示左表的全部记录及右表符合连接条件的记录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT n1,n2,n3 FROM tb1 LEFT JOIN tb2 ON tb1.n1= tb2.n2 

右连接:显示右表的全部记录及左表符合连接条件的记录

image.png

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT n1,n2,n3 FROM tb1 RIGHT JOIN tb2 ON tb1.n1= tb2.n2 

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
父表:p
type_id type_name
子表:s
type_id type_name parent_id

image.png

image.png

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select s.type_id, s.type_name, p.type_name from tdb_goods_types as s left join tdb_goos_types as p on s.parent_id = p.type_id

image.png

同样:

image.png

image.png

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select p.type_id, p.type_name, s.type_name from tdb_goods_types as p left join tdb_goos_types as s on p.type_id = s.parent_id;

常用函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
abs() 绝对值
bin() 二进制
avg(col_name);
count(col_name);
min(col_name);
max(col_name);
sum(col_name);
concat();
concat_ws();
strcmp();

外键约束

约束保证数据的完整性和一致性,约束分类。

表级约束,对过个数据列建立的约束;列级约束,对一个数据列建立的约束。

功能分:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
not null 非空约束
primary key 主键约束
unique key 唯一约束
default 默认约束
foreign key 外键约束

外键约束实现一对一或一对多的关系。 创建外键约束,父表和子表必须要有相同的存储引擎,而且禁用临时表,具有外键列的表称为子表,子表所参照的表为父表。

数据库的存储引擎只能为InnoDB。

外键列和参照列必须具有相同的数据类型,外键列,参照列。 外键列和参照列必须创建索引,如果外键列不存在索引的话,mysql将自动创建索引,参照列不存在索引,不会自动创建索引。mysql会为主键自动创建索引。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
create table address(
id smallint unsigned primary key,
name varchar(20) not null
);

create table teacher(
t_id tinyint unsigend primary key,
t_name varchar(20) not null,
t_add varchar(20) not null,
foreign key (t_add) references address(name) on update cascade
);

show indexes from address;

创建索引
create index address_name on address(name);

create table teacher(
t_id tinyint unsigned primary key,
t_name varchar(20) not null,
t_add varchar(20) not null,
foreign key (t_add) references address (name) on update cascade
);

show create table teacher;

外键列和参照列必须创建索引。外键列不创建,会自动创建,子;参照列不创建的话,不会自动创建,为父。

结言

好了,欢迎在留言区留言,与大家分享你的经验和心得。

感谢你学习今天的内容,如果你觉得这篇文章对你有帮助的话,也欢迎把它分享给更多的朋友,感谢。

作者简介

达叔,理工男,简书作者&全栈工程师,感性理性兼备的写作者,个人独立开发者,我相信你也可以!阅读他的文章,会上瘾!,帮你成为更好的自己。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.04.05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MySQL数据库操作教程
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2017-02/141092p2.htm
星哥玩云
2022/08/13
5.2K0
MySQL 常用命令一览(万字好文)
下载链接: 链接:https://pan.xunlei.com/s/VMNHMWaZ-bLa5HltrBnjRPdVA1 提取码:v8rh
Gorit
2021/12/09
7830
MySQL 常用命令一览(万字好文)
MySQL(九)之数据表的查询详解(SELECT语法)二
上一篇讲了比较简单的单表查询以及MySQL的组函数,这一篇给大家分享一点比较难得知识了,关于多表查询,子查询,左连接,外连接等等。希望大家能都得到帮助! 在开始之前因为要多表查询,所以搭建好环境:  
用户1195962
2018/01/18
2.1K0
MySQL(九)之数据表的查询详解(SELECT语法)二
MySQL数据库编程基础入门2
描述:学习MySQL除了一些基本的SQL语句以外,我们还需要学习MySQL扩展部分的知识;通过前面的学习我们知道SQL类型大致分为四类,在后面的学习采用这四类来入门了解使用MySQL 8.0;
全栈工程师修炼指南
2022/09/29
1.6K0
MySQL数据库编程基础入门2
MySQL 约束
  非空约束(NOT NULL)指字段的值不能为空。对于使用了非空约束的字段,用户在添加数据时没有指定值,数据库系统就会报错。可以通过 CREATE TABLE 或 ALTER TABLE 语句实现非空。在表中某个列的定义后加上关键字 NOT NULL 作为限定词,来约束该列的取值不能为空。
Demo_Null
2020/09/28
3.5K0
MySQL 约束
MySQL基础SQL编程学习2
描述:主要学习数据库的DDL数据库定义语言,比如CREATE , DROP, ALTER 等等:
全栈工程师修炼指南
2022/09/29
8.1K0
MySQL基础SQL编程学习2
介绍mysql中replace方法
今天在编程的时候,学习了replace into的用法,真的很好用,是insert into的增强版。在向表中插入数据时,我们经常会遇到这样的情况:1、首先判断数据是否存在;2、如果不存在,则插入;3
wangxl
2018/03/07
2.3K0
MySQL 插入数据时如何不插入重复的数据
针对一些基础业务数据如用户表,要保证主键Primary或Unique不重复,如果在插入时做判断,效率低且代码复杂。
IT工作者
2021/12/30
8.4K0
MySQL基础知识
整型:TINYINT  SMALLINT   MEDIUMINT  INT BIGINT
CBeann
2023/12/25
2060
MySQL基础(一)
数据库就是==存储数据的仓库==,其本质是一个文件系统,按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作
落幕
2025/05/27
2660
MySQL基础(一)
一文搞懂MySQL索引(清晰明了)[通俗易懂]
索引是对数据库表中一列或多列的值进行排序的一种结构。MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。索引只是提高效率的一个因素,如果你的MySQL有大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询语句。
全栈程序员站长
2022/09/12
1.5K0
一文搞懂MySQL索引(清晰明了)[通俗易懂]
【MySQL基础】MySQL表操作全面指南:从创建到管理的深度解析
https://blog.csdn.net/2301_80220607/category_12971838.html?spm=1001.2014.3001.5482
GG Bond1
2025/06/10
3160
【MySQL基础】MySQL表操作全面指南:从创建到管理的深度解析
MySQL进阶之索引
索引是对数据库表中一个或多个列(例如,employee 表的姓名 (name) 列)的值进行排序的结构。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。
测试小兵
2019/11/19
4970
Mysql基础知识总结
查看数据库 show databases; 选择数据库 use dname; 创建表结构 create table tname{属性名 数据类型 完整性约束条件} 查看表详细定义 show create table tname 查看表定义 describe tname 删除表 drop table tname 修改表名称 alter table tname rename (to) newtname
卡伊德
2022/07/27
7630
MySQL高级面试篇之索引详解大全
  索引是表的目录,在查找内容之前可以先在目录中查找索引位置,以此快速定位查询数据。对于索引,会保存在额外的文件中。
用户5224393
2019/08/13
6750
Mysql基础命令02
tinyint, 占 1字节 ,有符号: -128~127,无符号位 :0~255
mikelLam
2022/10/31
6340
收藏|我的Mysql学习笔记
SQL是一个存活近半个世纪的语言,如今仍有大量人在使用。它语法简单,对培养数据整理和提取的思维有很大帮助。我将我过去的笔记分享给大家,希望能为大家的学习提供参考,更希望有人因此能迈出学习SQL的第一步~
刘早起
2020/05/13
1.3K0
收藏|我的Mysql学习笔记
mysql在ubuntu中的操作笔记(详)
1.安装mysql客户端流程:   -  登录navicat官网下载   -  将压缩包拷贝ubuntu中进行解压,解压命令:tar zxvf navicat.tar.gz   -  进入解压目录,运
汪凡
2018/05/29
1.2K0
学习数据库必会知识点-索引-以及索引的巧妙用法
MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。
Java编程指南
2019/08/05
5010
MySQL数据库的查询
聚合函数又叫组函数,通常是对表中的数据进行统计和计算,一般结合分组(group by)来使用,用于统计和计算分组数据
用户9399690
2022/01/20
20.6K0
MySQL数据库的查询
相关推荐
MySQL数据库操作教程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验