MYSQL基础,复习走两波!

在这里插入图片描述

本文接着上一篇进行复习,内容较基础,基础扎实还是重要的!

一. DML操作

用于对表中的记录进行增删改操作

1.1 插入记录

INSERT [INTO] 表名 [字段名] VALUES (字段值) 

INSERT INTO 表名:表示往哪张表中添加数据
(字段名 1, 字段名 2, …):要给哪些字段设置值
VALUES (值 1, 值 2, …):设置具体的值

1.1.1 插入全部记录

所有的字段名都写出来

INSERT INTO 表名 (字段名 1, 字段名 2, 字段名 3) VALUES (1,2,3); 

不写字段名

INSERT INTO 表名 VALUES (1,2,3); 

1.1.2 插入部分数据

INSERT INTO 表名 (字段名 1, 字段名 2, ...) VALUES (1,2, ...); 

1.2 更新表记录

UPDATE 表名 SET 列名=[WHERE 条件表达式];

UPDATE: 需要更新的表名
SET: 修改的列值
WHERE: 符合条件的记录才更新
你可以同时更新一个或多个字段。
你可以在 WHERE 子句中指定任何条件。

1.2.1 不带条件修改数据

UPDATE 表名 SET 字段名=;  -- 修改所有的行 

1.2.2 带条件修改数据 UPDATE

UPDATE 表名 SET 字段名=值 WHERE 字段名=; 

1.2.3 具体操作

-- 不带条件修改数据,将所有的性别改成女 
update student set sex = '女'; 
 
-- 带条件修改数据,将id号为2的学生性别改成男 
update student set sex='男' where id=2; 
 
-- 一次修改多个列,把id为3的学生,年龄改成26岁,address改成北京 
update student set age=26, address='北京' where id=3; 

1.3 删除表记录

DELETE FROM 表名 [WHERE 条件表达式] 

如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。
你可以在 WHERE 子句中指定任何条件

1.3.1 不带条件删除数据

DELETE FROM 表名; 

1.3.2 带条件删除数据

DELETE FROM 表名 WHERE 字段名=

1.3.3 使用truncate删除表中所有记录

 TRUNCATE TABLE 表名; 

truncate 相当于删除表的结构,再创建一张表

二. DQL查询表中的数据

查询不会对数据库中的数据进行修改.只是一种显示数据的方式

SELECT 列名 FROM 表名 [WHERE 条件表达式]  
  1. SELECT 命令可以读取一行或者多行记录。
  2. 你可以使用星号(*)来代替其他字段,SELECT 语句会返回表的所有字段数据
  3. 你可以使用 WHERE 语句来包含任何条件。

2.1 简单查询

2.1.1 查询表所有行和列的数据

使用*表示所有列

 SELECT * FROM 表名; 

2.1.2 查询指定列

SELECT 字段名 1, 字段名 2, 字段名 3, ... FROM 表名; 

2.2 指定列的别名进行查询

使用关键字
使用别名的好处: 显示的时候使用新的名字,并不修改表的结构。
语法

对列指定别名

 SELECT 字段名 1 AS 别名, 字段名 2 AS 别名... FROM 表名;

对列和表同时指定别名

   SELECT 字段名 1 AS 别名, 字段名 2 AS 别名... FROM 表名 AS 表别名; 

具体操作

-- 使用别名 
select name as 姓名,age as 年龄 from student; 
-- 表使用别名 
select st.name as 姓名,age as 年龄 from student as st 

2.3 清除重复值

查询指定列并且结果不出现重复数据

 SELECT DISTINCT 字段名 FROM 表名; 

具体操作

 查询学生来至于哪些地方 
 -- 查询学生来至于哪些地方 select address from student; 
 
-- 去掉重复的记录 select distinct address from student; 

2.4 查询结果参与运算

  1. 某列数据和固定值运算 SELECT 列名 1 + 固定值 FROM 表名;
  2. 某列数据和其他列数据参与运算 SELECT 列名 1 + 列名 2 FROM 表名;
    注意: 参与运算的必须是数值类型

具体操作
准备数据:添加数学,英语成绩列,给每条记录添加对应的数学和英语成绩,查询的时候将数学和英语的成绩相 加

select * from student; 
 
-- 给所有的数学加 5 分 select math+5 from student; 
 
-- 查询 math + english 的和 select * from student; 
 
select *,(math+english) as 总成绩 from student; -- as 可以省略 select *,(math+english) 总成绩 from student; 

2.5 条件查询

如果没有查询条件,则每次查询所有的行。实际应用中,一般要指定查询的条件。对记录进行过滤
条件查询的语法
SELECT 字段名 FROM 表名 WHERE 条件;
流程:取出表中的每条数据,满足条件的记录就返回,不满足条件的记录不返回

2.5.1 准备数据

创建一个学生表,包含如下列:

CREATE TABLE student3 (  
 id int,  -- 编号  
  name varchar(20), -- 姓名  
   age int, -- 年龄   
   sex varchar(5),  -- 性别   
   address varchar(100),  -- 地址   
   math int, -- 数学   
   english int -- 英语 ); 
 
INSERT INTO student3(id,NAME,age,sex,address,math,english) VALUES (1,'马云',55,'男', ' 杭州',66,78),(2,'马化腾',45,'女','深圳',98,87),(3,'马景涛',55,'男','香港',56,77),(4,'柳岩 ',20,'女','湖南',76,65),(5,'柳青',20,'男','湖南',86,NULL),(6,'刘德华',57,'男','香港 ',99,99),(7,'马德',22,'女','香港',99,99),(8,'德玛西亚',18,'男','南京',56,65); 

2.5.2运算符

在这里插入图片描述比较运算符
具体操作:

 -- 查询math分数大于80分的学生
  select * from student3 where math>80; 
 
-- 查询english分数小于或等于80分的学生 
select * from student3 where english <=80; 
 
-- 查询age等于20岁的学生 
select * from student3 where age = 20; 
 
-- 查询age不等于20岁的学生,注:不等于有两种写法 
  
select * from student3 where age <> 20; 
select * from student3 where age != 20;

in 关键字

SELECT 字段名 FROM 表名 WHERE 字段 in (数据 1, 数据 2...);

in 里面的每个数据都会作为一次条件,只要满足条件的就会显示.
具体操作

-- 查询id是135的学生 
 select * from student3 where id in(1,3,5); 
 
-- 查询id不是135的学生 
select * from student3 where id not in(1,3,5); 

范围查询
BETWEEN 值 1 AND 值 2 表示从值 1 到值 2
范围,包头又包尾
比如:age BETWEEN 80 AND 100 相当于: age>=80 && age<=100

具体操作:

查询 english 成绩大于等于 75,且小于等于 90 的学生 
select * from student3 where english between 75 and 90; 

like 关键字
LIKE 表示模糊查询

SELECT * FROM 表名 WHERE 字段名 LIKE '通配符字符串'; 

MySQL 通配符

在这里插入图片描述
具体操作:

-- 查询姓马的学生 
select * from student3 where name like '马%'; 
 
select * from student3 where name like '马'; 
  33 / 33  
 
-- 查询姓名中包含'德'字的学生 
select * from student3 where name like '%德%'; 
 
-- 查询姓马,且姓名有两个字的学生 
select * from student3 where name like '马_'; 

END!!! 如果对你有帮助的话,不胜感激!!!
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值