MySQL数据库的增删改查

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MySQL数据库的增删改查

添加新表

create table if not exists student(
    id int primary key auto_increment comment 'id',//只有主键才可以用自增,主键唯一
    age int check(age>=0 and age<=100) not null comment '年龄',//check用来限制
    name varchar(10) unique not null comment '名字',
    gender char(1) not null comment '性别',
    Snumber int not null unique
);

添加数据

insert into [表名] (字段1, 字段2,....) value (value1, value2, ...);

insert into [表名] (字段1, 字段2, ....) values
(value1, ...),
(value2, ...),
(value3, ...);
- 插入两条记录,value_list 数量必须和指定列数量及顺序一致
INSERT INTO exam_result (id,name, chinese, math, english) VALUES
 (1,'tom', 67, 98, 56),
 (2,'jum', 87.5, 78, 77),
 (3,'lim', 88, 98.5, 90),
 (4,'tim', 82, 84, 67),
 (5,'huy', 55.5, 85, 45),
 (6,'sun', 70, 73, 78.5),
 (7,'ming', 75, 65, 30);

添加新列

alter table [table_name] add [column_name] [数据类型] [约束];
alter TABLE employee add nickname varchar(20) comment '昵称';-- 添加表头

删除列表数据

delete from [tabel_name] where[];
delete from user where uname='tom';
delete from user;//删除整张表

删除字段

alter table [table_name] drop [column_name];
alter table user drop uid;

删除数据库

drop database [database_name];
drop database web;
truncate table employer;-- 删除表和数据,并重新创建表

修改数据

update [table_name] set [修改内容1,修改内容2,...] where []
update employer set name='Lucy',age=20 where id = 1 limit 0,1;
update employer set age=10 where id=10;

修改字段

ALTER TABLE tuser CHANGE name user_name varchar(32) DEFAULT NULL COMMENT '姓名';
#  ALTER TABLE 表名  CHANGE 旧字段名 新字段名 新数据类型;

alter table employee change nickname username varchar(30) comment '昵称';-- 重命名字段
alter table employee rename to employer;-- 重命名表名
ALTER TABLE tuser MODIFY name varchar(32) DEFAULT NULL COMMENT '姓名';
# ALTER TABLE 表名 MODIFY  字段名  数据类型;

修改基本表

alter table [table_name]
    add [新列名][数据类型][完整约束];
    drop [列名];
    rename column [列名] to [新列名];


ALTER TABLE user
MODIFY COLUMN name VARCHAR(20);-- 改变类型

查询函数

以下函数都是对'列'进行操作
count 对元组计数
select count(distinct teacher='Joe') from stu;-- 计算所有老师为joe的学生数量
select count(*) from user where age>10;-- 对所有满足年龄打印10岁进行计数 
SUM 求和
select sum(dollar) from user;-- 将所有dollar列中的元素进行相加
AVG    求平均值
select avg(math) from student;-- 对整个班级的数学分进行求平均值
MAX    求最大值 -- 求这列的最大值
MIN 求最小值

条件查询(where,in)

-- 起别名
select * from user u where name="Tom";
-- 去重
select distinct name from user where age between 10 and 90;
-- 多个
select distinct name from user where age between in (10,11,12);
select name,age from user where extract(year from birthdate);-- extract()用于对日期进行year提取
select name,major from student where extract(year from current_date)-extract(year from birthdate) between 20 and 30;

select name from student where major not in (math,english);

分组查询(order by,group by)

select id,name from user order by id,name desc-- 先安id顺序排列,如果id相同则安照name字典序逆序排列
select * from user group by gender,age;-- 按照gender分组,再按age分组,如果有重复的列组值,则将其合并为一行输出
select * from user group by teacher having avg(grade)>=90 limit 10;-- having 一般与order by同时使用,目的是筛选参与分组的元组

分页查询(limit)

limit<起始偏移量(可不写),行数>
select * from user where age >15 and age<20 limit 0,10;-- 从第0行开始查询10行,剩下的分给后续页

联合查询/集合查询(union)

select 查询结果是元组的集合,可用union进行结果的集合操作,相当于把多个查询结果进行==连接起来==输出

UNION规则

  • UNION必须由两条以上的SELECT语句组成,语句之间用关键字UNION分割。
  • UNION中的每个查询必须包含相同的列、表达式或聚集函数(各个列不需要以相同的次序列出)。
  • 列数据类型必须兼容:类型不必完全相同,但必须是DBMS可以隐含地转换的类型。
  • 如果取出来的数据不需要去重,使用UNION ALL。
SELECT column1, column2 FROM table1  
UNION  
SELECT column1, column2 FROM table2;

假设我们有两个表:employeescontractors,它们都有 nameemail 字段。我们希望获取所有人的名字和电子邮件。

SELECT name, email FROM employees  
UNION  
SELECT name, email FROM contractors;

如果我们希望包括所有的电子邮件(即当它们重复时也要显示),我们可以使用 UNION ALL

SELECT name, email FROM employees  
UNION ALL  
SELECT name, email FROM contractors;

模糊查询(like)

select * from user where name like 'Sun%'-- %替换多个字
select * FROM USER where name like 'S__'-- _替换一个字
select * from user where teacher not like 'Dr\_Smith' escape '\';-- 用\_来匹配_ <escape '\'>表示换码符

子查询(嵌套查询)

select count(*),name-- 父查询
from user where age in
(select age from user where -- 子查询teacher='joe');--  父查询的限制对象应与子查询的查询对象一致都是age
 select * from student where major=(select major from student where name='Tom');
 select Sno from student x where grade>=(select avg(grade) from student y where y.Sno=x.Sno); 

 -- 带有any/all的子查询
select name from student where birthdate 
 > any(select birthdate from student where major='math')
and grade>90;
 -- 带有exists的子查询,exists代表'存在'返回true或false true就执行前面语句

查询顺序

(8)Select
(9)distinct 字段名1,字段名2,
(6)[fun(字段名)]  
(1)from 表1
(3)<join类型>join 表2 
(2)on <join条件> 
(4)where <where条件> 
(5)group by <字段> 
(7)having <having条件> 
(10)order by <排序字段> 
(11)limit <起始偏移量,行数>
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6天前
|
SQL 关系型数据库 MySQL
mysql 简单的sql语句,入门级增删改查
介绍MySQL中的基本SQL语句,包括数据的增删改查操作,使用示例和简单的数据表进行演示。
mysql 简单的sql语句,入门级增删改查
|
3月前
|
JavaScript 关系型数据库 MySQL
创建nodejs项目并接入mysql,完成用户相关的增删改查的详细操作
创建nodejs项目并接入mysql,完成用户相关的增删改查的详细操作
48 0
|
19天前
|
SQL 关系型数据库 MySQL
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
课程分类查询、课程新增、统一异常处理、统一封装结果类、JSR303校验、修改课程、查询课程计划、新增/修改课程计划
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
|
6天前
|
SQL 关系型数据库 MySQL
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
本文介绍了在ThinkPHP6框架中如何连接和使用数据库进行增删改查操作。内容包括配置数据库连接信息、使用Db类进行原生MySQL查询、find方法查询单个数据、select方法查询数据集、save方法添加数据、insertAll方法批量添加数据、insertGetId方法添加数据并返回自增主键、delete方法删除数据和update方法更新数据。此外,还说明了如何通过数据库配置文件进行数据库连接信息的配置,并强调了在使用Db类时需要先将其引入。
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
|
2月前
|
JavaScript 关系型数据库 MySQL
node连接mysql,并实现增删改查功能
【8月更文挑战第26天】node连接mysql,并实现增删改查功能
44 3
|
2月前
|
SQL 数据库连接 API
ThinkPHP6实现增删改查接口
ThinkPHP6实现增删改查接口
33 1
|
2月前
|
XML 数据库 数据格式
Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】
这篇文章是Spring5框架的实战教程的终结篇,介绍了如何使用注解而非XML配置文件来实现JdbcTemplate的数据库操作,包括增删改查和批量操作,通过创建配置类来注入数据库连接池和JdbcTemplate对象,并展示了完全注解开发形式的项目结构和代码实现。
Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】
|
2月前
|
SQL XML Java
Spring5入门到实战------12、使用JdbcTemplate操作数据库(增删改查)。具体代码+讲解 【上篇】
这篇文章是Spring5框架的实战教程,详细讲解了如何使用JdbcTemplate进行数据库的增删改查操作,包括在项目中引入依赖、配置数据库连接池、创建实体类、定义DAO接口及其实现,并提供了具体的代码示例和测试结果,最后还提供了完整的XML配置文件和测试代码。
Spring5入门到实战------12、使用JdbcTemplate操作数据库(增删改查)。具体代码+讲解 【上篇】
|
2月前
|
关系型数据库 MySQL 大数据
C#使用SqlSugar操作MySQL数据库实现简单的增删改查
C#使用SqlSugar操作MySQL数据库实现简单的增删改查
160 2
|
2月前
|
开发工具 数据安全/隐私保护 索引
LDAP学习笔记之二:389-DS(RHDS) 增删改查基本操作
LDAP学习笔记之二:389-DS(RHDS) 增删改查基本操作
下一篇
无影云桌面