做轮播海报的网站,个性定制网站有哪些,详情页设计思路,企业网站的建设报价文章目录 MySQL表的增删查改1. Create#xff08;创建#xff09;1.1 单行插入1.2 多行插入1.3 替换 2. Retrieve#xff08;读取#xff09;2.1 select查看2.2 where条件2.3 结果排序2.4 筛选分页结果 3. Update#xff08;更新#xff09;3.1 更新单个数据3.2 更新多个… 文章目录 MySQL表的增删查改1. Create创建1.1 单行插入1.2 多行插入1.3 替换 2. Retrieve读取2.1 select查看2.2 where条件2.3 结果排序2.4 筛选分页结果 3. Update更新3.1 更新单个数据3.2 更新多个数据 4. Delete删除 MySQL 表的增删查改 CURD是一个数据库技术中的缩写词它代表Create创建Retrieve读取Update更新Delete删除操作。这四个基本操作是数据库管理的基础用于处理数据的基本原子操作。
1. Create创建 在MySQL中Create操作是十分重要的它帮助用于创建数据库对象如数据库、表、索引等并且允许用户定义新的数据结构和存储方式。我们常使用create databases [库名]; 创建数据库create table [表名]; 创建数据表insert into [表名] values(数据); 创建单条数据。
1.1 单行插入 insert 语句在 MySQL 中用于向数据库表中插入新的记录。
insert into 表名 (列1, 列2, 列3, ...)
values(值1, 值2, 值3, ...);如果你想要为表中的每一列都插入值即列的顺序与表中的定义一致我们直接省略列名
insert into 表名
values(值1, 值2, 值3, ...);创建一张学生数据表包括学号姓名电话等基本信息
mysql create table test1(- id int unsigned primary key auto_increment,- num int not null,- name varchar(20) not null,- tele varchar(20)- );对于上面的表中id代表学号每一个学生有且只有唯一的一个所以我们设计为主键同时设置为自增长下面的num和name设置为不为空类型。 查看表的结构
desc test1;连续插入三个单条数据并且打印查看
mysql insert into test1 values(1,101,张三,15811);
mysql insert into test1 values(2,102,李四,NULL);
mysql insert into test1(num,name,tele) values(103,王五,18888);select * from test1;1.2 多行插入 insert语句可以一次性插入多行数据。通常我们只需要在values子句中列出多组值来实现的每组值之间用逗号分隔。
insert多行插入并且打印
mysql insert into test1 (num,name,tele) values- (104,赵六,12345),- (105,小七,54321);select *from test1;确保我们插入的数据和列的数据匹配如果列中not null我们需要提供值除非有默认值我们要注意由于插入的数据是否会因为主键或者唯一键对应的值已经存在而导致插入失败。
对应主键已经有唯一值导致插入失败
mysql insert into test1 values(1,106,老八,null);
ERROR 1062 (23000): Duplicate entry 1 for key PRIMARY1.3 替换 replace 语句在 SQL 中是一个特殊的语句它结合了 insert 和 update 的功能。既可以插入数据也可以替换数据。 插入数据如果 replace 语句中指定的数据在表中不存在它会执行一个插入操作将数据添加到表中。 替换数据如果数据已经存在于表中通常是因为主键或唯一键冲突replace 语句会先删除原有的数据行然后插入新的数据行。
replace into 表名 (列1, 列2, 列3, ...)
values(值1, 值2, 值3, ...);总而言之主键或者唯一键没有冲突则直接插入主键或者唯一键如果冲突则删除后再插入。 替换原有的主键数据并插入新的数据
mysql replace into test1 values(1,106,老八,null);2. Retrieve读取 Retrieve操作在数据库应用中主要用于从数据窗口或数据存储Datastore中检索数据。常用的有select进行数据的显示或者其他如where等进行数据的筛选。
2.1 select查看 SELECT是SQL语言中的一个核心命令用于从数据库表中检索数据。
[distinct]{* | {column[,column]...}
[from table_name]
[where...]
[order BY column[ASC|DESC],...]
limit...distinct这个关键字用于去重。 * 或 {column[,column]…}这部分指定了要检索的列。* 表示选择所有列而 {column[,column]…} 则允许您指定一个或多个列名。 from table_name这部分指定了要从哪个表中检索数据。 where…这是一个可选的子句用于过滤结果集只返回满足指定条件的行。 order BY column[ASC|DESC],…这部分用于对结果集进行排序。 您可以指定一个或多个列以及排序的方向升序 ASC 或降序 DESC。 limit…这个子句用于限制返回的记录数。 它通常与分页查询一起使用。 创建学生成绩表
mysql create table test2(- id int unsigned primary key auto_increment,- name varchar(20) not null,- chinese float default 0.0 comment 语文成绩,- math float default 0.0 comment 数学成绩,- english float default 0.0 comment 英语成绩- );查看表结构
desc test2;向表中插入数据并且打印
mysql insert into test2(name,chinese,math,english) values- (张三,70,80,59),- (李四,72,90,65),- (王五,60,65,90),- (赵六,64,77,80),- (刘七,77,82,78),- (小红,90,43,90),- (李华,79,75,52);通常情况下不建议使用 * 进行全列查询查询的列越多意味着需要传输的数据量越大可能会影响到索引的使用。
select * from test2;指定列打印信息id,name,chinese
select id,name,chinese from test2;打印的字段可以是一个表达式
select id,name,chinesemathenglish from test2;给打印字段的表达式重新命名
select id,name,chinesemathenglish 总分 from test2;将打印出来的英文成绩去重
select distinct english from test2;2.2 where条件 在MySQL的select语句中where子句用于指定查询条件只有满足这些条件的记录才会出现在结果集中。where子句的主要目的是从数据表或查询结果中过滤出符合条件的行。 where子句后面可以跟随一个或多个条件这些条件可以是算术表达式、逻辑表达式或比较运算符的组合。 比较运算符
运算符说明,, , 大于大于等于小于小于等于等于NULL 不安全例如 NULL NULL 的结果是 NULL等于NULL 安全例如 NULL NULL 的结果是 TRUE(1)!, 不等于between a0 and a1范围匹配[a0, a1]如果 a0 value a1返回 TRUE(1)in (option, …)如果是 option 中的任意一个返回 TRUE(1)is null是 NULLis not null不是 NULLlike模糊匹配。% 表示任意多个包括 0 个任意字符_ 表示任意一个字符 逻辑运算符
运算符说明and多个条件必须都为 TRUE(1)结果才是 TRUE(1)or任意一个条件为 TRUE(1), 结果为 TRUE(1)not条件为 TRUE(1)结果为 FALSE(0) 输出所有英语成绩小于60分的信息
select name,english from test2 where english60;输出所有英语成绩大于等于60小于等于89的成绩
select name,english from test2 where english60 and english89;select name,english from test2 where english between 60 and 89;输出数学成绩为80或90分的信息
select name,math from test2 where math80 or math90;select name,math from test2 where math in(80,90);找到所有的姓张的信息 % 匹配任意多个包括 0 个任意字符_ 匹配严格的一个任意字符。
select name,math from test2 where name like 张%;找叫 张、张X、张XX 的人员信息
select name,math from test2 where name like 张;select name,math from test2 where name like 张_;select name,math from test2 where name like 张__;找到所有总分小于210分的人员信息 select name,mathchineseenglish 总分 from test2 where chinesemathenglish210;2.3 结果排序 结果排序通常使用SQL中的order by子句来实现它允许用户指定一个或多个列作为排序依据并可以选择升序ASC或降序DESC排序。
asc 为升序从小到大
desc 为降序从大到小
//默认为 ASC
select ... from table_name [where ...]
order by column [asc|desc], [...];按照数学成绩的升序进行排序
select name,math from test2 order by math;按照英语成绩的降序进行排序
select name,math,english from test2 order by english desc按照英语成绩的降序、数学成绩的升序进行排序
select name,math,english from test2 order by english desc,math;按照总分进行降序排序
select name,chineseenglishmath
from test2
order by chineseenglishmath desc;order by 子句中可以使用列别名
select name,chineseenglishmath 总分 from test2 order by 总分 desc;2.4 筛选分页结果 MySQL对未知表进行查询时最好加一条 LIMIT 1避免因为表中数据过大查询全表数据导致数据库卡死。
//起始下标为 0
//从 s 开始筛选 n 条结果
select ... from table_name [where ...] [order by ...] limit s, n//从 0 开始筛选 n 条结果
select ... from table_name [where ...] [order by ...] limit n;//从 s 开始筛选 n 条结果比第二种用法更明确建议使用
select ... from table_name [where ...] [order by ...] limit n offset s;查看表中的信息从第0条数据开始筛选3条数据
select id,name,chinese,math,english
from test2
order by id
limit 3 offset 0;3. Update更新 update是一个数据库SQL语法用语主要用来更新表中原有的数据。 其基本的语法结构是update 表名称 set 列名称 新值 where 列名称 某值。这意味着当我们想要修改某个表中的特定数据时可以使用update语句并通过where子句来指定需要更新的行。
update table_name set column expr [, column expr ...]
[where ...] [order Bby ...] [limit ...]3.1 更新单个数据
将李华的英语成绩更改为70
select name,english from test2 where id7;update test2 set english70 where id7;select name,english from test2 where id7;3.2 更新多个数据
将张三的语文成绩更改为75英语成绩更改为65
select name,chinese,english from test2 where id1;update test2 set chinese75,english65 where id1;select name,chinese,english from test2 where id1;4. Delete删除 DELETE操作是数据库中的一种重要操作用于删除表中的记录。
delete from table_name [where ...] [order by ...] [limit ...]删除李华的成绩信息 delete from test2 where id7 ;