MySQL基础---增删改查语法
一、DDL-数据定义语言,操作数据库(CRUD)和表(CRUD)
1 创建数据库(指定字符集)
create database 数据库名称 character set utf8;
数据库和表修改都是 Alter 查看都是show 删除都是drop
2 创建表
create table 表名称(字段名 数据类型,字段名 数据类型,... ...字段名 数据类型
);
二、DML-数据操作语言,对表中的数据进行增删改
1 添加数据
– 给指定字段添加数据值
insert into 表名(字段名,字段名,...) values (值1,值2,...);
-- 给所有字段添加数据insert into 表名 values (值1,值2,...);
– 批量添加多条数据
insert into 表名(字段名,字段名,...) values (值1,值2,...),(值1,值2,...),...;insert into 表名 values (值1,值2,...),(值1,值2,...),...;
注意:值和字段要一一对应,个数一样,类型和长度要符合字段要求。
2 修改数据
– 带条件修改
update 表名 set 字段名=值,字段名=值,... where 条件;
– 不带条件修改,修改当前列所有数据【慎用】
update 表名 set 字段名=值,字段名=值,...;
3 删除数据
– 带条件删除
delete from 表名 where 条件;
– 不带条件删除,删除表中所有数据【慎用】
delete from 表名;
三、DQL-数据查询语言,对表中的数据进行查询
1 查询全部数据
– 查询指定字段
select 字段名,字段名,... from 表名;
– 查询所有字段
select * from 表名;
– 查询字段取别名
select 字段名 AS 别名,字段名 别名,... from 表名;
例子:
-- 查询商品名称和库存,库存数量在原有基础上加10。进行null值判断。起别名为getsum[AS可以省略]
-- 如果第一个参数的表达式 expression 为 NULL,则返回第二个参数的备用值
SELECT NAME,IFNULL(stock,0)+10 AS getsum FROM product;
SELECT NAME,IFNULL(stock,0)+10 getsum FROM product;
– 说明:ifnull(字段名,0) 如果该字段的值是null,那么用0代替参与四则运算。
2 按条件查询
select * from 表名 where 字段名>值;
select * from 表名 where 字段名 is null;
select * from 表名 where 字段名 is not null;
– 条件连接符:and or
select * from 表名 where 字段名>=值1 and 字段名<=值2;
– between 值1 and 值2 等价于 where 字段名>=值1 and 字段名<=值2;
select * from 表名 where 字段名>=值1 and 字段名<=值2;
– 等价于
select * from 表名 where 字段名 between 值1 and 值2;
– in()查询
select * from 表名 where 字段名=值1 or 字段名=值2 or 字段名=值3;
– 等价于
select * from 表名 where 字段名 in(值1,值2,值3);
– like模糊查询: where 字段名 like ‘带占位符的字符串’;
– 占位符: _表示一个字符的占位符,%表示任意个数字符的占位符
select * from 表名 where 字段名 like '%电脑%';
3 聚合函数
-- 聚合函数查询
-- 计算product表中总记录条数
SELECT COUNT(*) FROM product;-- 获取最高价格
SELECT MAX(price) FROM product;-- 获取最低库存
SELECT MIN(stock) FROM product;-- 获取库存总数量
SELECT SUM(stock) FROM product;-- 获取品牌为苹果的总库存数量
SELECT SUM(stock) FROM product WHERE brand ='苹果';-- 获取品牌为小米的平均商品价格
SELECT AVG(price) FROM product WHERE brand = '小米';
4 分组查询
关键字:group by 字段名
select 分组字段名/聚合函数 from 表名 [where 条件] group by 字段名 [having 条件];
例子:
-- 分组查询-- 按照品牌分组,获取每组商品的总金额【按照谁分组,就展示哪个字段,*则默认展示第一个(分组写*无意义)】
SELECT brand,SUM(price) FROM product GROUP BY brand;-- 对金额大于4000元的商品,按照品牌分组,获取每组商品的总金额
SELECT brand,SUM(price) FROM product WHERE price >4000 GROUP BY brand;-- 对金额大于4000元的商品,按照品牌分组,获取每组商品的总金额,只显示总金额大于7000元的
SELECT brand,SUM(price) AS getsum FROM product WHERE price >4000 GROUP BY brand HAVING getsum>7000;
where和having的区别?
分组之前使用where,分组之后筛选使用having
5 排序查询
关键字:order by 字段名 ASC/DESC,字段名 ASC/DESC,…
说明1:只有前面的排序过程中两个值相等,才会按照后面的字段去排序。
说明2:如果不写ASC/DESC,那么默认是ASC升序。
select * from 表名 [where 条件] [group by 字段名] [having 条件] order by 字段名 ASC/DESC,字段名 ASC/DESC,...;
例子:
-- 排序查询
-- 按照库存升序排序
SELECT *FROM product ORDER BY stock ASC-- 查询名称中包含手机的商品信息。按照金额降序排序
SELECT *FROM product WHERE NAME LIKE '%手机%' ORDER BY price DESC;-- 按照金额升序排序,如果金额相同,按照库存降序排列
SELECT *FROM product ORDER BY price ASC,stock DESC;-- 对金额大于4000元的商品,按照品牌分组,获取每组商品的总金额,只显示总金额大于7000元的、并按总金额降序排序
SELECT brand,SUM(price) AS getsum FROM product
WHERE price >4000
GROUP BY brand
HAVING getsum>7000
ORDER BY getsum DESC;
6 分页查询
关键字:limit 当前页数据索引,每页条数; – 表中的数据索引从0开始
当前页数据索引=(当前页-1)*每页条数;
– LIMIT当前页数索引,每贝显示的条数;
– 公式:当前页数索引=(当前页数-1)*每页显示的条数
– 表中的数据索引从0开始
– 分页语句在最后
select *
from 表名
[where 条件]
[group by 字段名]
[having 条件]
[order by 字段名 ASC/DESC,字段名 ASC/DESC,...]
limit 当前页数据索引,每页条数;
例子:
-- 每页显示3条数据 (1-1)
-- 第一页 (1-1)*3
SELECT * FROM product LIMIT 0,3;-- 第二页 (2-1)*3
SELECT * FROM product LIMIT 3,3;-- 第三页 (3-1)*3
SELECT * FROM product LIMIT 6,3;
四、MySql常见数据类型
关键字 | 数据类型 | 备注 |
---|---|---|
int | 整数类型 | int(5)–>最大整数五位数,也就是99999 |
double/float | 小数类型 | 如果需要指定小数的长度,那么可以这么写: 列名 double(数据总位数,小数位数); 例如:price double(5,2),表示最大值是999.99 |
date | 日期类型 | 只包含年月日,yyyy-MM-dd |
datetime | 日期+时间 | 包含年月日时分秒 yyyy-MM-dd HH:mm:ss |
timestamp | 时间戳类型 | 包含年月日时分秒 yyyy-MM-dd HH:mm:ss,不赋值默认为系统时间毫秒值 |
varchar | 字符串类型 | 该类型必须指定字符串的最大长度,例如:name varchar(20); |
MySQL基础---增删改查语法相关推荐
- MySQL基础增删改查
登录MySQL mysql -uroot -p123456 -h 127.0.0.1 exit 或 quit 退出 关键字 if exists 是否存在 数据库增删改查 查看MySQL :查 ...
- Mysql基础增删改查,主外键关联
Mysql基础入门 章节导航 Mysql基础入门 创建 新增 删除 修改 查询 数据类型 主键 外键 数值计算 关联查询 1.登录mysql:mysql -uroot -p2.使用数据库: use 数 ...
- mysql 基础 增删改查语句
MySQL:众多关系型数据库中的一种 仓库 --数据库 箱子 --表 数据库: 进入mysql 命令行: mysql -uroot -p 查看所有数据库: show databases; 创建数据库: ...
- MySQL常用增删改查语法命令
一. 添加数据:INSERT Insert 语句用于向数据库中插入数据 1. 插入单条数据(常用) 语法:INSERT INTO 表名(列名1,列名2,...) values(值1,值2,...) 案 ...
- MYSQL数据库 增删改查基础语句
MYSQL数据库 增删改查基础语句 **********************DDL 语句 ********************* ( DDL 是数据定义语言的缩写,简单的说,就是对数据库内 ...
- JDBC+MySQL入门增删改查案例
目录 前言 案例分析 核心思路拆解 案例涉及知识点 第一关 创建数据库和项目 创建数据库 创建项目 第二关 JDBC插入和查询 预备工作 单个插入 批量插入 查询数据 JDBC修改和删除 修改数据 删 ...
- Mysql (一)Mysql 数据库增删改查
mysql数据库增删改查增:create database DBname charset gbk; 删:drop database DBname; 改:alter database DBname ch ...
- [一起来学mysql]-----MySQl的增删改查
[一起来学mysql]-----MySQl的增删改查 文章目录 [一起来学mysql]-----MySQl的增删改查 CURD create数据 插入一行数据 插入多行数据 插入部分数据 **插入时间 ...
- mybatis generator 自动生成 在线生成器 生成service controller 含基础增删改查 自动生成工具 只需要建表SQL语句
在线生成(目前只支持mysql):http://tools.49db.cn 已支持生成Service.Controller,含基础增删改查! (妈妈再也不用担心我整天写增删改查了 ^__^ ) 第3点 ...
最新文章
- 边结点结构体的定义及使用
- 小马智行最新估值曝光
- 为何我通过 Calendar1.SelectedDate.DayOfWeek.ToString() 获取的“星期”总是英文的???...
- 【机器学习】Auto-Sklearn:使用 AutoML 加速你的机器学习模型
- c++vector初始化的几种方法
- 看完这篇还不会kafka,我跪榴莲!
- 海淀某互联网公司鼓励员工尽量住在公司
- C/C++ 内存四区模型
- 【语音处理】基于matlab GUI音乐多次回声图谱显示【含Matlab源码 1733期】
- matlab 超像素合并,基于图论的超像素分割及其合并算法
- 世界地图可以无限放大_国外测评 | 老蛙百微镜头的全方位解析,2倍放大倍率的优质表现!...
- jaxen-1.1-beta-6.jar下载,Dom4j的xpath的使用
- 计算机用于材料科学模拟,计算机在材料科学的应用
- 【WLAN】【基础知识】WIFI那些事儿之Beamforming
- 【资源】资源分享(一)
- 第三章 坐标系与投影转换之基准面和坐标系的分类基本知识
- 第一代程序员作家--王小波
- 初学编程最应该知道的8个学习方法,可惜之前没人告诉我……
- 今天一天学习的MYSQL语句,立此存照
- 360极速浏览器去广告优化版 v13.0.2101.0
热门文章
- 牛客题霸 [ 最长回文子串] C++题解/答案
- P3911 最小公倍数之和
- 【每日一题】7月6日精讲—平衡二叉树
- [ZJOI2007] 时态同步(拓扑序)
- 文理分科 (最小割问题)
- CF1039D-You Are Given a Tree【根号分治,贪心】
- CF622F-The Sum of the k-th Powers【拉格朗日插值】
- 欢乐SSL初二组周六赛【2019.5.11】
- ssl1344-Knights【最大独立集,最大匹配,图论】
- 星座图(2020特长生 T4)