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 字段名 between1 and2;

– 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);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/330720.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

理解水平扩展和垂直扩展

转自&#xff1a; http://yunjiechao-163-com.iteye.com/blog/2126981 当一个开发人员提升计算机系统负荷时&#xff0c;通常会考虑两种方式垂直扩展和水平扩展。选用哪种策略主要依赖于要解决的问题 以及系统资源的限制。在这篇文章中我们将讲述这两种策略并讨论每种策越的…

JavaWeb核心常用API一览

1.核心知识点 2.常用API

Java中的宏变量,宏替换详解。

转载自 Java中的宏变量&#xff0c;宏替换详解。群友在微信群讨论的一个话题&#xff0c;有点意思&#xff0c;特拿出来分享一下。输出true false来看下面这段程序&#xff0c;和群友分享的大致一样。 public static void main(String[] args) {String hw "hello world&q…

eclipse如何设置js源文件编码

window -> preferences -> 输入 content type -> 然后在右侧栏点击 javascript source file&#xff0c; 然后default encoding 输入 gbk&#xff08;或者其他编码格式&#xff09;&#xff0c; 点击 update &#xff0c; 然后可以看见文件编码已经改变&#xff0c; 最…

SQL编程---存储过程和存储函数

1.基本概念 存储过程和函数是事先经过编译并存储在数据库中的一段 SQL 语句的集合。 2.存储过程和函数的好处 提高代码的复用性。减少数据在数据库和应用服务器之间的传输&#xff0c;提高效率。减少代码层面的业务处理。 3.创建和调用存储过程 <1>创建存储过程 创…

jvm 启动参数设置

-Xms256m -Xmx256m -XX:MaxPermSize64m 如果 jvm 启动失败&#xff0c; 说堆内存不够&#xff0c; 需要调小 初始堆和最大堆大小&#xff0c; 持久代大小&#xff1b; 第一行的参数是调节后的vm参数荔枝 &#xff1b;

类、变量、块、构造器、继承初始化顺序,终极解答

转载自 类、变量、块、构造器、继承初始化顺序&#xff0c;终极解答最近发现微信群里面有些群友在讨论类的初始化顺序&#xff0c;如类的静态变量、成员变量、静态代码块、非静态代码块、构造器&#xff0c;及继承父类时&#xff0c;它们的初始化顺序都是怎样的&#xff0c;下面…

数据表触发器

1.概念 触发器就是在表数据发生变化的时候&#xff0c;自动触发的一些 SQL 操作,查询不影响表中的数据&#xff0c;所以没有触发器。类似于web监听器机制,监听对应表的增删改。 2.触发器分类 触发器类型OLD 触发器之前的效果NEW 触发器之后的效果INSERT 类型的触发器无&…

Linux NAT网络连接权威指南

【1】准备工作&#xff0c;写在前面 1.1&#xff09;检查服务&#xff08;cmd>>services.msc,我用的是VM&#xff09; 1.2&#xff09;确保Vmnet8 连接处于启动状态 获取ipv4&#xff08;ipv6&#xff09;地址 &#xff08;在网络连接不正确时&#xff0c;作参考之用&a…

事务的概述

1.基本概念 将一条或者多条SQL看成一个整体&#xff0c;要么同时执行成功要么同时执行失败&#xff0c;这就是事务。 事务举例&#xff1a; 张三给李四转账500元钱&#xff0c;需要让三账户的余额-500&#xff0c;李四的账户余额500&#xff0c;转账是一个连续的过程&#xf…

Spring Boot Debug调试

转载自 Spring Boot Debug调试 在使用maven插件执行spring-boot:run进行启动的时候&#xff0c;如果设置的断点进不去&#xff0c;要进行以下的设置。 1、添加jvm参数配置 在spring-boot的maven插件加上jvmArguments配置。 <project>...<build>...<plugins>…

centos磁盘安装与磁盘分区方案详解

转自&#xff1a; https://yq.aliyun.com/ziliao/56538 前几天自己研究了下几个linux系统&#xff0c;还是觉着centos要好一些。相对稳定点&#xff0c;起码桌面系统还是比 ubuntu 强安装centos并不难&#xff0c;安装方法多得是&#xff0c;像硬盘安装&#xff0c;U盘安装&…

存储过程内基础语法

学生表 1.定义变量及变量赋值方式 DELIMITER ; 分号前面必须要有一个空格 <1>DECLARE 变量名 数据类型 [DEFAULT 默认值]; 需求-- 定义一个int类型变量&#xff0c;并赋默认值为10 DELIMITER $$ CREATE PROCEDURE pro_test1() -- 没有; BEGIN-- 定义变量DECLARE nu…

nginx-配置基于ip或域名的虚拟主机

【0】README&#xff1a; nginx 可以配置多种类型的虚拟主机&#xff1a; 类型1&#xff09; 基于ip的虚拟主机&#xff1b; 类型2&#xff09;基于域名的虚拟主机&#xff1b; 类型3&#xff09;基于端口的虚拟主机&#xff1b; 【1】配置基于 ip 的虚拟主机的准备工作 …

Tomcat集群session复制与Oracle的坑

转载自 Tomcat集群session复制与Oracle的坑 问题描述 公司某个系统使用了tomcat自带的集群session复制功能&#xff0c;然后后报了一个oracle驱动包里面的连接不能被序列化的异常。 01-Nov-2017 16:45:26.653 SEVERE [https-jsse-nio-8443-exec-2] org.apache.catalina.ha.ses…

存储过程内基础语法---补充while循环

1.基础语法 while循环初始化语句;WHILE 条件判断语句 DO循环体语句;条件控制语句;END WHILE;2.举例 计算1~100之间的偶数和 【注&#xff1a;num只能numnum1 不能num,num1; 】 <1>存储过程内部查询 DELIMITER $CREATE PROCEDURE pro_test6() BEGIN-- 定义求和变量DE…

nginx停止,平滑重启命令

TERM, INT 快速关闭&#xff1b; QUIT 从容关闭&#xff1b; HUP 平滑重启&#xff0c;重新加载配置文件&#xff1b; USR1 重新打开日志文件&#xff0c;在切割日志时用途较大&#xff1b; USR2 平滑升级可执行程序&#xff1b; WINCH 从容关闭工作进程&#xff1b; 【荔…

IntelliJ IDEA Community(社区版)下载及安装自用版

IntelliJ IDEA Community&#xff08;社区版&#xff09;下载及安装自用版 估计是个开发都逃脱不了用IDEA的命运吧&#xff0c;这么好的软件&#xff0c;白嫖了好多年。感恩。 现在很多公司已经不让用商业版的破解版了&#xff0c;所以这里讲的是社区版。 区别&#xff1a; 商…

视图的概述

1.概念和特点 <1>概念&#xff1a;视图&#xff08;view&#xff09;是一种虚拟存在的表&#xff0c;本身并不包含数据。它是作为一个select语法查询到的结果集&#xff0c;以此为基表创建的一张虚拟表。对视图的操作对基表有直接影响,[视图中的数据发送了改变&#xff…

Tengine-Ngnix高级版

转载自 Tengine&#xff0d;Ngnix高级版 Tengine介绍 Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上&#xff0c;针对大访问量网站的需求&#xff0c;添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网&#xff0c;天猫商城等得到了很好的…