MySQL数据库增删改查基础操作(超长详解)

news2024/10/22 2:54:35

目录

1库的操作

显示数据库:

创建一个库

使用数据库

删除数据库的名

2表操作:

显示表

创建表

查看表

删除表名

新增

查出表的所有行和列;

实例:

别名:

去重:

排序:

限制查找的条数:(limit)

not null(指定某列不能储存null值)

unique (保证某列的每行必须有唯一的值,不能重复的)

default:默认值约束,指定插入数据,如果为空,指定默认值。

primary key :主键约束

聚合查询:

联合查询:

还有一种方法是 join  on

外连接分为左外连接和右外连接:

自连接:

子查询:

合并查询:

数据库的基本操作

1库的操作

显示数据库:

show databases;

创建一个库

create database 数据库名 charset 字符集;

使用数据库

use 数据库名;

删除数据库的名

drop database 数据库名;

2表操作:

显示表

show tables;

创建表

create table 表名 (列名 类型,列名 类型);

查看表

desc 表名;

删除表名

drop table 表名;

新增

insert into 表名 values (值,值);
insert into 表名(列名,列名) values (值,值);

查出表的所有行和列;

select *from 表名;

实例:

创建一个学生表:里面有id,姓名,语文,数学,英语,成绩。

create table exam_result

( id int, name varchar(20), chinese decimal(3,1), math decimal(3,1), english decimal(3,1) );

然后插入测试数据:

insert into  exam_result (id,name, chinese, math, english) VALUES (1,'唐三藏', 67, 98, 56), (2,'孙悟空', 87.5, 78, 77), (3,'猪悟能', 88, 98.5, 90), (4,'曹孟德', 82, 84, 67), (5,'刘玄德', 55.5, 85, 45), (6,'孙权', 70, 73, 78.5), (7,'宋公明', 75, 65, 30);

别名:

select id ,name chinese+math +english as total from 表;

去重:

使用distinct 关键字

比如去重数学成绩

select distinct math from 表名;

排序:

order  by(升序)

select id ,math ,chinese from 表名 order by chinese;

升序,如果降序则需在后面加上desc;

基本查询:

比如查询英语不及格的同学:

select id ,english from 表名 where english<60;

如果查完进行排序:

select id ,english from 表名 where english<60 order by english;

查找总成绩小于200的学生:

select name,chinese + math +english from exam_result where chinese +english +math <200;

查找语文大于80 和英语大于80的学生;

select name,chinese,english from exam_result where chinese>80 and english>80;

and的优先级大于or。

查找数学成绩在(58,59,98,99)的学生(in):

select name,math from exam_result where math in(58,59,98,99);

查找名字中带有孙的name(%):

select name from exam_result where name like '孙%';(孙在前)
select name from exam_result where name like '%孙%';(含孙的)

显示一个(_):

select name from exam_result where name like '孙_';

查找名字是否为空的:

 select * from exam_result where name <=> null;

限制查找的条数:(limit)

 select * from exam_result limit 3;

3之后再查找3个:

select * from exam_result limit 3 offset 3;(从最后的3开始查找);

修改:让孙悟空的成绩数学成绩加10;

update exam_result set math=math +10 where name ='孙悟空';

not null(指定某列不能储存null值)

create table student8(id int not null);

unique (保证某列的每行必须有唯一的值,不能重复的)

create table student9(id int not null,name varchar(20) unique);

default:默认值约束,指定插入数据,如果为空,指定默认值。

create table student10(id int default '1',name varchar(20) unique);

primary key :主键约束

指定id为主键

 create table student11(id int not null primary key,name varchar(20) unique);

对于整数类型的主键,常配搭自增长auto_increment来使用。插入数据对应字段不给值时,使用最大 值+1。

foreign key (外键约束)

创建班级表

create table  classes ( id int primary key auto_increment, name varchar(20), `desc` varchar(100) );

创建学生表

create table student (   id INT PRIMARY KEY auto_increment,   sn ); INT UNIQUE,   name VARCHAR(20) DEFAULT 'unkown',   qq_mail VARCHAR(20), classes_id int, FOREIGN KEY (classes_id) REFERENCES classes(id)

插入和查询结合(可以把一个表查询出的结果,插入到另一个表中):

insert into school1 select *from school;

聚合查询:

 1,select count(*) from fu;(查询行数)

count遇到null会跳过

2,select sum(salary) from fu;(求和)

3,select avg(salary) from fu;(求平均值)

4,select role ,count(id) from fu group by role;(分组进行查查询)

实例(比如分组查平均值):

select role,avg(salary) from fu group by role;

先插入一段数据:

insert into student(sn, name, qq_mail, classes_id) values
    ->  ('09982','黑旋风李逵','xuanfeng@qq.com',1),
    ->  ('00835','菩提老祖',null,1),
    ->  ('00391','白素贞',null,1),
    ->  ('00031','许仙','xuxian@qq.com',1),
    ->  ('00054','不想毕业',null,1),
    ->  ('51234','好好说话','say@qq.com',2),
    ->  ('83223','tellme',null,2),
    ->  ('09527','老外学中文','foreigner@qq.com',2);
insert into course(name) values
    ->  ('Java'),('中国传统文化'),('计算机原理'),('语文'),('高阶数学'),('英文');
insert into score(score, student_id, course_id) values
    -> (70.5, 1, 1),(98.5, 1, 3),(33, 1, 5),(98, 1, 6),
    -> (60, 2, 1),(59.5, 2, 5),
    -> (33, 3, 1),(68, 3, 3),(99, 3, 5),
    -> (67, 4, 1),(23, 4, 3),(56, 4, 5),(72, 4, 6),
    -> (81, 5, 1),(37, 5, 5),
    -> (56, 6, 2),(43, 6, 4),(79, 6, 6),
    ->  (80, 7, 2),(92, 7, 6);
insert into classes(name,doing) values
    -> ('计算机系2019级1班', '学习了计算机原理、C和Java语言、数据结构和算法'),
    ->  ('中文系2019级3班','学习了中国传统文学'),
    ->  ('自动化2019级5班','学习了机械自动化');

例子:查找许仙的成绩

联合查询:

1,先分析用到哪个表

select *from student,score;

2,再寻找对应条件,减少重复数据

select *from student,score where student_id =score.student_id;

3,再减少重复数据,当学生的名字为许仙时

 select *from student,score where student.classes_id =score.student_id and student.name ='许仙';

4,再减少范围,只查找范围内的

select student.name ,score.score from student,score where student.classes_id =score.student_id and student.name='许仙';

还有一种方法是 join  on

(join前后加的是两张表on后面加的是条件)

 select student.name,score.score from student join score on student.classes_id=sc
ore.student_id and student.name='许仙';

外连接分为左外连接和右外连接:

(先创建两个表)

左:

select *from student left join score on student.id =score.id;

右:

select *from student right join score on student.id =score.id;

如果修改一个表的数据,再进行查找会变成null

update score set score.id = 4 where score.id =3;

当进行右外连接的时候,id为3 的一行会变成null

自连接:

一个表的数据自己进行连接

select *from score as s1,score as s2;

select *from score as s1,score as s2 where s1.id=s2.id;

子查询:

指嵌入在其他sql语句中的select语句,也叫嵌套查询

单行子查询:返回一行记录的子查询

select *from score where score.id != (select *from score where score.score);

多行子查询:返回多行记录的子查询

in关键字(查询多行数据用的in)

合并查询:

union(可以多个表进行查询)

 selct *from course where id<3 union select *from course where name='英文';

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

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

相关文章

智慧商城项目2-登录模块

登录页静态布局 1.先重置默认样式 找到styles/common.less文件,没有就新建 // 重置默认样式 * {margin: 0;padding: 0;box-sizing: border-box;}// 文字溢出省略号.text-ellipsis-2 {overflow: hidden;-webkit-line-clamp: 2;text-overflow: ellipsis;display: -webkit-box;-…

CentOS7安装RabbitMQ-3.13.7、修改端口号

本文安装版本&#xff1a; Erlang&#xff1a;26.0 官网下载地址 Erlang RabbitMQ&#xff1a;3.13.7 官网下载地址 RabbitMQ RabbitMQ和Erlang对应关系查看&#xff1a;https://www.rabbitmq.com/which-erlang.html 注&#xff1a;安装erlang之前先安装下依赖文件&#xff0…

无人机之放电速率篇

无人机的放电速率是指电池在一定时间内放出其储存电能的能力&#xff0c;这一参数对无人机的飞行时间、性能以及安全性都有重要影响。 一、放电速率的表示方法 放电速率通常用C数来表示。C数越大&#xff0c;表示放电速率越快。例如&#xff0c;一个2C的电池可以在1/2小时内放…

《知道做到》

整体看内容的信息密度较低。绿灯思维、积极心态、反复练习值得借鉴。 引言 行动是老子&#xff0c;知识是儿子&#xff0c;创造是孙子&#xff01;行是知之始&#xff0c;知是行之成。 前言 工作中最让你失望的事情是什么&#xff1f; 一个人行为的改变总是先从内心想法的转…

MySQL 【日期】函数大全(六)

目录 1、TIME_FORMAT() 按照指定的格式格式化时间。 2、TIME_TO_SEC() 将指定的时间值转为秒数。 3、TIMEDIFF() 返回两个时间之间的差值。 4、TIMESTAMP() 累加所有参数并将结果作为日期时间值返回。 5、TIMESTAMPADD() 将指定的时间间隔加到一个日期时间值上并返回结果。…

数据库->库的操作

目录 一、查看数据库 1.显示所有的数据库 二、创建数据库 1.创建数据库 2.查看警告信息 3.创建一个名为database的数据库 三、字符集编码和校验(排序)规则 1.查看数据库⽀持的字符集编码 2.查看数据库⽀持的排序规则 3.一条完整创建库的语句 4. 不同的字串集与排序规…

keepalived(高可用)+nginx(负载均衡)+web

环境 注意&#xff1a; (1) 做高可用负载均衡至少需要四台服务器&#xff1a;两台独立的高可用负载均衡器&#xff0c;两台web服务器做集群 (2) vip&#xff08;虚拟ip&#xff09;不能和物理ip冲突 (3) vip&#xff08;虚拟ip&#xff09;最好设置成和内网ip同一网段&#xf…

传感器驱动系列之PAW3212DB鼠标光电传感器

目录 一、PAW3212DB鼠标光电传感器简介 1.1 主要特点 1.2 引脚定义 1.3 传感器组装 1.4 应用场景 1.5 传感器使用注意 1.5.1 供电选择 1.5.2 SPI读写设置 1.5.3 MOTION引脚 1.6 寄存器说明 1.6.1 Product_ID1寄存器 1.6.2 MOTION_Status寄存器 1.6.3 Delta_X寄存器…

【论文笔记】X-Former: Unifying Contrastive and Reconstruction Learning for MLLMs

&#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&#xff0c;为生民立命&#xff0c;为往圣继绝学&#xff0c;为万世开太平。 基本信息 标题: X-Former: Unifying Contr…

为您的 WordPress 网站打造完美广告布局 A5广告单元格插件

一个为 WordPress 网站量身定制的强大工具,它将彻底改变您展示广告的方式 灵活多变的布局设计 A5 广告单元格插件的核心优势在于其无与伦比的灵活性。无论您是想要创建整齐的网格布局,还是希望打造独特的不规则设计,这款插件都能满足您的需求。 自定义网格数量&#xff1a;从 2…

C# 条形码、二维码标签打印程序

1、条码标答打印主界面 2、打印设置 3、生成QR代码 private void GetBarcode_T(string lr) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();//创建一个对象 qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; //设置编码测量…

Mamba学习笔记(2)—序列数据处理基础

文章目录 (1) RNN&#xff08;Recurrent Neural Networks&#xff09;基本原理代码定义 (2) SLTM (Long Short-Term Memory)基本原理代码定义 (3) GRU (Gated Recurrent Unit)基本原理代码定义 (4) Transformer&#xff08;☆☆☆Attention Is All You Need☆☆☆&#xff09;0…

量子门电路开销——T门、clifford门、toffoli门、fredkin门

在量子计算中&#xff0c;T门的成本比Clifford门高出很多倍的原因与量子计算中纠错的实现、物理门操作的复杂性以及容错量子计算架构中的成本评估有关。以下是几个关键原因&#xff0c;解释了为什么 T 门的成本在量子计算中远远高于 Clifford 门&#xff1a; 1. T 门和 Cliffo…

递归、搜索与回溯(二)——递归练习与快速幂

文章目录 递归、搜索与回溯——递归两两交换链表中的节点Pow(x, n) 递归、搜索与回溯——递归 该文仍然是解决递归问题&#xff0c;值得注意的是快速幂算法。接下来会系统学习二叉树深搜题目&#xff0c;慢慢走向搜索与回溯。 两两交换链表中的节点 原题链接&#xff1a;24. 两…

AI识谱——将乐曲转化为五线谱

导言&#xff1a; 会乐曲的小伙伴在听到一首好听的乐曲的时候&#xff0c;肯定想过将这首歌曲转换为谱子给弹出来。除了上网找乐谱、请大神帮忙扒谱或者自己扒谱外&#xff0c;小伙伴也可以尝试一下本文介绍的AI识谱流程&#xff0c;让我们开始吧&#xff01; 注意了&#xf…

2024 Python3.10 系统入门+进阶(十七):面向对象基础

目录 一、面向对象概述1.1 面向对象简介1.2 对象和类1.3 定义属性和行为1.3.1 用数据描述对象的状态1.3.2 行为就是动作 1.4 隐藏细节并创建公共接口1.5 组合1.6 继承1.6.1 继承提供抽象1.6.2 多重继承 二、封装2.1 Python类定义2.2 创建类的成员2.2.1 创建实例方法并访问2.2.2…

PythonExcel批量pingIP地址

问题&#xff1a; 作为一个电气工程师&#xff08;PLC&#xff09;&#xff0c;当设备掉线的时候&#xff0c;需要用ping工具来检查网线物理层是否可靠连接&#xff0c;当项目体量过大时&#xff0c;就不能一个手动输入命令了。 解决方案一&#xff1a; 使用CMD命令 for /L %…

机器学习在聚合物及其复合材料中的应用与实践

在当前的工业和科研领域&#xff0c;聚合物及其复合材料因其卓越的物理和化学性能而受到广泛关注。这些材料在航空航天、汽车制造、能源开发和生物医学等多个行业中发挥着至关重要的作用。随着材料科学的发展&#xff0c;传统的实验和理论分析方法已逐渐无法满足新材料研发的需…

【力扣打卡系列】滑动窗口与双指针(无重复字符的最长子串)

坚持按题型打卡&刷&梳理力扣算法题系列&#xff0c;语言为go&#xff0c;Day7 无重复字符的最长子串 题目描述解题思路 不含重复字符——》考虑使用哈希表来存储记录为了提高效率也可以用数组&#xff0c;hash : [128]bool{} &#xff08;因为存的是字符的ASCLL码&…

【Unity踩坑】无法关闭Unity(Application.Shutdown.CleanupEngine)

安装了Unity 6正式版&#xff0c;在关闭Unity 项目时&#xff0c;会出现下面的提示&#xff0c;一直无法关闭。 一直显示 Application.Shutdown.CleanupEngine。 查了一下。这是一个历史性问题了&#xff0c;看来依然没有解决。 参考&#xff1a;Application.Shutdown.Cleanu…