一、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基础---增删改查语法相关推荐

  1. MySQL基础增删改查

    登录MySQL mysql -uroot -p123456 -h 127.0.0.1 exit   或  quit  退出 关键字 if  exists 是否存在 数据库增删改查 查看MySQL :查 ...

  2. Mysql基础增删改查,主外键关联

    Mysql基础入门 章节导航 Mysql基础入门 创建 新增 删除 修改 查询 数据类型 主键 外键 数值计算 关联查询 1.登录mysql:mysql -uroot -p2.使用数据库: use 数 ...

  3. mysql 基础 增删改查语句

    MySQL:众多关系型数据库中的一种 仓库 --数据库 箱子 --表 数据库: 进入mysql 命令行: mysql -uroot -p 查看所有数据库: show databases; 创建数据库: ...

  4. MySQL常用增删改查语法命令

    一. 添加数据:INSERT Insert 语句用于向数据库中插入数据 1. 插入单条数据(常用) 语法:INSERT INTO 表名(列名1,列名2,...) values(值1,值2,...) 案 ...

  5. MYSQL数据库 增删改查基础语句

    MYSQL数据库 增删改查基础语句 **********************DDL 语句 *********************   ( DDL 是数据定义语言的缩写,简单的说,就是对数据库内 ...

  6. JDBC+MySQL入门增删改查案例

    目录 前言 案例分析 核心思路拆解 案例涉及知识点 第一关 创建数据库和项目 创建数据库 创建项目 第二关 JDBC插入和查询 预备工作 单个插入 批量插入 查询数据 JDBC修改和删除 修改数据 删 ...

  7. Mysql (一)Mysql 数据库增删改查

    mysql数据库增删改查增:create database DBname charset gbk; 删:drop database DBname; 改:alter database DBname ch ...

  8. [一起来学mysql]-----MySQl的增删改查

    [一起来学mysql]-----MySQl的增删改查 文章目录 [一起来学mysql]-----MySQl的增删改查 CURD create数据 插入一行数据 插入多行数据 插入部分数据 **插入时间 ...

  9. mybatis generator 自动生成 在线生成器 生成service controller 含基础增删改查 自动生成工具 只需要建表SQL语句

    在线生成(目前只支持mysql):http://tools.49db.cn 已支持生成Service.Controller,含基础增删改查! (妈妈再也不用担心我整天写增删改查了 ^__^ ) 第3点 ...

最新文章

  1. 边结点结构体的定义及使用
  2. 小马智行最新估值曝光
  3. 为何我通过 Calendar1.SelectedDate.DayOfWeek.ToString() 获取的“星期”总是英文的???...
  4. 【机器学习】Auto-Sklearn:使用 AutoML 加速你的机器学习模型
  5. c++vector初始化的几种方法
  6. 看完这篇还不会kafka,我跪榴莲!
  7. 海淀某互联网公司鼓励员工尽量住在公司
  8. C/C++ 内存四区模型
  9. 【语音处理】基于matlab GUI音乐多次回声图谱显示【含Matlab源码 1733期】
  10. matlab 超像素合并,基于图论的超像素分割及其合并算法
  11. 世界地图可以无限放大_国外测评 | 老蛙百微镜头的全方位解析,2倍放大倍率的优质表现!...
  12. jaxen-1.1-beta-6.jar下载,Dom4j的xpath的使用
  13. 计算机用于材料科学模拟,计算机在材料科学的应用
  14. 【WLAN】【基础知识】WIFI那些事儿之Beamforming
  15. 【资源】资源分享(一)
  16. 第三章 坐标系与投影转换之基准面和坐标系的分类基本知识
  17. 第一代程序员作家--王小波
  18. 初学编程最应该知道的8个学习方法,可惜之前没人告诉我……
  19. 今天一天学习的MYSQL语句,立此存照
  20. 360极速浏览器去广告优化版 v13.0.2101.0

热门文章

  1. 牛客题霸 [ 最长回文子串] C++题解/答案
  2. P3911 最小公倍数之和
  3. 【每日一题】7月6日精讲—平衡二叉树
  4. [ZJOI2007] 时态同步(拓扑序)
  5. 文理分科 (最小割问题)
  6. CF1039D-You Are Given a Tree【根号分治,贪心】
  7. CF622F-The Sum of the k-th Powers【拉格朗日插值】
  8. 欢乐SSL初二组周六赛【2019.5.11】
  9. ssl1344-Knights【最大独立集,最大匹配,图论】
  10. 星座图(2020特长生 T4)