MySQL增删改查 一篇就够
前言
学过的知识,太久没用就会容易忘了
本篇借着写博客的机会,温习一下mysql数据增删改查的使用
铺垫
要对数据进行增删改查,首先得有数据库,得有数据表
创建数据库
首先,按 win+R
输入 cmd
快速打开一个命令行终端
输入命令启动mysql
mysql -u root -p
真男人都用小黑框,用啥图形化界面的都是nian炮 (手动狗头保护)
咳咳
我们可以在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下:
CREATE DATABASE 数据库名;
以下命令简单的演示了创建数据库的过程,数据库名为 handsomeKK: 并且使用了show命令来查看已有的数据库:
create DATABASE handsomeKK;
show databases;
简简单单,我们拥有了一个属于自己的数据库
创建表
有了数据库,就要使用她,
只有进入一个数据库才能进行建表操作
输入use命令来使用指定数据库:
use handsomekk;
以下为创建MySQL数据表的SQL通用语法:
CREATE TABLE table_name (column_name column_type);
以下例子中我们将在 handsomekk 数据库中创建数据表 student:
CREATE TABLE IF NOT EXISTS `student`(
`stuID` INT UNSIGNED AUTO_INCREMENT,
`stuNAME` VARCHAR(100) NOT NULL,
`stuCLASS` VARCHAR(40) NOT NULL,
`date` DATE,
PRIMARY KEY ( `stuID` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
运行完成后可以执行
show tables;
来查看已有的表
也可以输入
DESCRIBE student;
来查看表的结构
当然,我们也可以输入
select * from studen;
来查看表的内容
这个时候,表内空空如也,自然也就查不到内容。
奥义第一式 增
所谓 增
就是:
MySQL 插入数据
在关系型数据库 中可以使用 INSERT INTO SQL语句来插入数据。
咱们可以通过 命令提示窗口中向数据表中插入数据,
语法
以下为向MySQL数据表插入数据通用的 INSERT INTO SQL语法:
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );
如果数据是字符型,必须使用单引号或者双引号,如:"value"。
实操
先回顾一下studen表的结构
基于之前的student表,咱们来试着插入几条数据:
INSERT INTO student ( stuID, stuNAME,stuCLASS,date )
VALUES
(1,"周杰伦", "三年一班",CURDATE() );
执行结果:
查询一下数据:
select * from student;
奥义第二式 删
所谓 删
就是:
-
在MySQL 中删除记录 就是去掉一行记录
-
或者 在 MySQL 中 删除数据表
-
还有就是 删除数据库
语法
在mysql中,可以使用DELETE语句配合WHERE条件子句来删除数据表中某一行数据。
DELETE 语句可以从单个表中删除一行或者多行数据,语法,语法格式为:
DELETE FROM <表名> [WHERE 子句]
以下为删除MySQL数据表 还要数据库 的通用语法:
DROP TABLE table_name ;
drop database <数据库名>;
删除表,删除库什么的,太可怕了
我有恐惧症
咱们还是安稳点演示一下删除记录就好
实操
如何把咱们student表中的周杰伦给开除了呢,(手动狗头)
且看演示:
delete from student where stuNAME = "周杰伦";
好了,三年二班的周杰伦童鞋
已经被咱们开除了
奥义第三式 改
所谓 改
就是:
向咱们 MySQL 的数据表 进行 UPDATE 更新 数据
如果我们需要修改或更新 MySQL 中的数据,我们可以使用 SQL UPDATE 命令来操作。
语法
以下是 UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法:
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
- 你可以同时更新一个或多个字段。
- 你可以在 WHERE 子句中指定任何条件。
- 你可以在一个单独表中同时更新数据。
当你需要更新数据表中指定行的数据时 WHERE 子句是非常有用的。
实操
呃。突然发现我们之前好像把周杰伦童鞋给开除
现在没数据可以改
赶紧赶紧,赶紧把周杰伦童鞋请回来
INSERT INTO student ( stuID, stuNAME,stuCLASS,date )
VALUES
(1,"周杰伦", "三年一班",CURDATE() );
好了好了,周杰伦童鞋回来了,
为了弥补对他的不公平对待
咱们继续update操作,给他跳一下年级,直接到毕业班念书
UPDATE student SET stuCLASS="六年一班"
WHERE stuNAME="周杰伦";
奥义最终式 查
所谓 查
就是:
使用 SELECT语句 来 查询数据。
这个东西,其实是很有东西的 (我真的不是在废话文学水文字)
她是真的 真的 真的
有点东西
有多少东西呢,来,我扳手指给你数数:
简单查询:
- 无条件查询
- 带条件的查询
- 分组查询与排序
- 连接查询
- 连接查询:一般连接
- 连接查询:自身连接
- 连接查询:join连接
- 连接查询:内连接
- 连接查询:外连接
复杂查询有:
- 普通子查询
- 相关子查询
- 派生子查询
哇靠,居然这么多,dog东西,那岂不累死
不要怕,施主且听老衲为你超度
哦呸
是为你娓娓道来,醍醐灌顶
简单查询:
无条件查询
这个是最简单了
select * from xxx表
带条件的查询
这个就升华了一下,尾巴加个 where 带上条件
select * from xxx表 where 列名=列名类型的值
分组查询与排序
先讲排序,先讲排序,先讲排序
重要的事情说三遍
好吧,是我想偷个懒,排序比较简单
select * from xxx表 order by [ASC [DESC][默认 ASC]]
口诀:A升 D降 ,一个升序一个降序
GROUP BY 语法
GROUP BY 语句根据一个或多个列对结果集进行分组。
在分组的列上我们可以使用 COUNT, SUM, AVG,等函数。
SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
复杂查询:
连接查询 复杂查询 普通子查询 相关子查询 派生子查询
····相信我,学这么多没用
学两招就够你走天下了
一个是连接查询
比如查询刘伟老师所教授的课程
SELECT teacher.no, tn, cno
FROM teacher,tc
WHERE (teacher.tno = tc.tno) and (tn = "刘伟")
一个是子查询
比如要查和刘伟教师职称相同的教师号、姓名
SELECT tno,tn
FROM teacher
WHERE prof = {SELECT prof
FROM teacher
WHERE tn = "刘伟"
}
转载自:https://juejin.cn/post/7148447336459894792