学好MySQL增删查改,争取不做CURD程序员【上篇】

✨✨hello,愿意点进来的小伙伴们,你们好呐!
系列专栏:【MySQL初阶】
本篇内容:详解MySQL增删查改
作者简介:一名现大二的三非编程小白,日复一日,仍需努力。

  • 前言
  • INSERE 语句:
    • 细节:
  • OUPDATE 语句:
    • 细节:
  • DELETE
    • 细节:
  • SELECT 语句:
    • 基本用法:

前言

在MySQL的基础操作中增删查改是很常用的一种语句,在网络上也有人调侃自己为增删查改程序员,那么增删查改的语句与细节你是否清楚呢,增删查改中的增删改的语句很简单,然后查的数据很复杂,这一章我们就把重点放在查上面。

INSERE 语句:

基本语句: INSERT INTO table_name VALUES(…)
往table_name的表中添加数据。
下面的代码简单的演示了insert的使用,

  1. 先创建一个goods表,然后在该表中添加数据。
    很简单的一个操作,好像也没有什么的,接下来我们来看看INSERT语句的细节。
#演示insert
CREATE TABLE goods(
	id INT,
	goods_name VARCHAR(8),
	price DOUBLE);
INSERT INTO goods
	VALUES(1,'华为手机',2550);

细节:

1. 在插入的数据应该与对于的字段的数据类型相同
比如说把 ‘abc’ 的数据存放到 INT 的类型的话是不可行的
学好MySQL增删查改,争取不做CURD程序员【上篇】_第1张图片
但是也会有一中例外,我们会发现往 INT 类型的数据存入 ‘123’ 好像就没有问题,可以成功存入,这个是为什么呢?
学好MySQL增删查改,争取不做CURD程序员【上篇】_第2张图片
这个其实也是很容易理解的,我们可以记得在Java中有一中方法可以将字符串类型的数据转为int类型,但是要求是可以转的类型,所以abc的字符串其实是没办法转为int类型的,而2的字符串是可以转成功的,
在MySQL的存放中它会尝试进行转化,看是否能成功。

2.数据存储的长度应该在创建表时规定的范围内。
你不可以将一个长度为80的字符串存到长度为40的列中。
学好MySQL增删查改,争取不做CURD程序员【上篇】_第3张图片

3.在values中将要存入的数据位置必须与被加入的列的排列顺序相对应
像这样子的话就是没办法通过的,因为表名后面括号内的数据要与存进去的数据一一对应,这样子的话会导致类型不符合。
学好MySQL增删查改,争取不做CURD程序员【上篇】_第4张图片
当然我们也可以往列中存进两个数据,然后另一个字段不存数据,
这样子没有存入数据的话,因为我们在创建的时候没有指定 not null 不为空值,那么就会默认给null值。

学好MySQL增删查改,争取不做CURD程序员【上篇】_第5张图片
学好MySQL增删查改,争取不做CURD程序员【上篇】_第6张图片
怎么现在有引出了一个默认值的概念,在我们创建表的时候其实是可以指定默认值的,因为我们没有指定且没有指定不为null,所以,默认值就为null。

4.在往表中添加列的时候也可以同时添加多列。
学好MySQL增删查改,争取不做CURD程序员【上篇】_第7张图片
学好MySQL增删查改,争取不做CURD程序员【上篇】_第8张图片

OUPDATE 语句:

基本语句:
UPDATE table_name SET 【…】 WHERE 【…】

接下来看看UPDATE语句的基本使用:

我们想修改goods表中的所有手机的价格改为5000
学好MySQL增删查改,争取不做CURD程序员【上篇】_第9张图片
我们想将小米手机的价格改为4000
学好MySQL增删查改,争取不做CURD程序员【上篇】_第10张图片
我们要将苹果手机在原有的价格上调2000
学好MySQL增删查改,争取不做CURD程序员【上篇】_第11张图片

细节:

1.UPDATE语句使用WHERE语句的话,指定可以更新哪些行,如果没有该语句则更新的是全部行。
2.如果需要修改多个字段,可以在SET后面多指定字段。

UPDATE goods
	SET price = 5000,id = 80
	WHERE goods_name = '小米手机';

DELETE

基本语法:
DELETE FROM table_name WHERE【…】

删除表中名称为小米手机的一列
学好MySQL增删查改,争取不做CURD程序员【上篇】_第12张图片

细节:

1.如果不使用where子句,将表中的所有数据删除。
2. delect语句中不能删除记录,不删除表本身。如果要删除表,使用drop
3 .DELECT 语句不能删除某一列的值,我们可以使用update改变使其为 null 和 ’ ’

SELECT 语句:

在学习SELECT语句之前我们必须先创建一张表,用来SELECT。— 创建一张学生表

#select 单表
#select 关键字 
CREATE TABLE students(
	id INT NOT NULL DEFAULT 1,
	`name` VARCHAR(20) NOT NULL DEFAULT 0.0,
	chinese FLOAT NOT NULL DEFAULT 0.0,
	english FLOAT NOT NULL DEFAULT 0.0,
	math FLOAT NOT NULL DEFAULT 0.0
	);
	
INSERT INTO students
	VALUES(1,'韩顺平',89,78,90);

INSERT INTO students
	VALUES(2,'张飞',67,98,56);

INSERT INTO students
	VALUES(3,'宋江',87,78,77);
	
INSERT INTO students
	VALUES(4,'关羽',88,98,90);
	
INSERT INTO students
	VALUES(5,'赵云',82,84,67);
	
INSERT INTO students
	VALUES(6,'欧阳锋',55,85,45);
	
INSERT INTO students
	VALUES(7,'黄蓉',75,65,30);
INSERT INTO students
	VALUES(8,'韩sp',85,65,30);

学好MySQL增删查改,争取不做CURD程序员【上篇】_第13张图片

基本用法:

学好MySQL增删查改,争取不做CURD程序员【上篇】_第14张图片
1.

#演示select
#查询所有学生的信息
SELECT * FROM students;
# * 代表所有没有特别指定

学好MySQL增删查改,争取不做CURD程序员【上篇】_第15张图片
2.

#演示select
#查询表中所有学生的姓名和英语成绩
SELECT `name` , english FROM students;
# `name` , english 代表 查询name 与英语成绩

学好MySQL增删查改,争取不做CURD程序员【上篇】_第16张图片

3.
我们要注意,只有查询的记录每个字段都相同,才会去重。

#演示select
#查询表中所有学生的英语成绩,过滤掉一样的数据
SELECT DISTINCT   english  FROM students;
# DISTINCT 过滤掉相同的成绩。

学好MySQL增删查改,争取不做CURD程序员【上篇】_第17张图片

4.在查询过程中我们可以对查询的列进行运算:

#演示select
SELECT `name` ,(english + chinese + math) FROM students;

学好MySQL增删查改,争取不做CURD程序员【上篇】_第18张图片
然后我们会发现,就是分数的总和的列表示很难看,有一种语法可以修改这种情况----使用别名

5.别名的使用

#演示select
SELECT `name` ,(english + chinese + math)  AS score FROM students;

学好MySQL增删查改,争取不做CURD程序员【上篇】_第19张图片

6.统计每个学生的总分加10分的情况:

#演示select
SELECT `name` ,(english + chinese + math + 10)  AS score FROM students;

学好MySQL增删查改,争取不做CURD程序员【上篇】_第20张图片

在SELECT中也有运算符---- 逻辑运算符与比较运算符

学好MySQL增删查改,争取不做CURD程序员【上篇】_第21张图片

7.查询id为5的学生的成绩。

#演示select
SELECT * FROM students
	WHERE id = 5;
	

学好MySQL增删查改,争取不做CURD程序员【上篇】_第22张图片

8.查询英语成绩大于90的同学的成绩。

#演示select
SELECT * FROM students
	WHERE english > 90;
	

9.查询英语分数在70 - 80之间的同学,这时候我们可以使用运算符 BETWEEN AND

#演示select
SELECT * FROM students
	WHERE english BETWEEN 80 AND 90;
	

10 .查询总分为179,180,181的同学 ,可以使用IN 运算符

SELECT `name` , (english + math + chinese ) AS score FROM students
	WHERE (english + math + chinese ) IN(179,180,181);
	

学好MySQL增删查改,争取不做CURD程序员【上篇】_第23张图片

11.查询所有姓李的学生的成绩:
LIKE关键字可以来查询首字符是什么。

SELECT * FROM students
	WHERE `name` LIKE '赵%';

学好MySQL增删查改,争取不做CURD程序员【上篇】_第24张图片

你可能感兴趣的:(MySQL初阶,mysql)