Mysql 增删查改等sql语句

本文详细介绍了SQL语言在数据库操作中的应用,包括插入、更新、删除记录,批量操作,字段管理,以及如何修改用户密码等实用技巧。同时,通过具体案例展示了左连接查询和条件筛选的方法。
插入一条记录
insert into user(ITCode, UserName, Password, Salt, province) values('name', 8000000, 31, 1, '河北')

插入多条记录
INSERT INTO record (name) VALUES ('a'),('b'),('c');
insert into pj_tester(ProjectID,InProject,Tester,JoinDate,LeaveDate) values('1','1','1','1','1'),('1','1','1','1','1')

删除多条记录
DELETE FROM record WHERE name IN ('a', 'b');

DELETE FROM record WHERE name = 'a' or name = 'b';

更新一条记录
update user set ITCode = \"{uf.ITCode}\", UserName = \"{uf.UserName}\", EmailAddress= \"{uf.EmailAddress}\",Gender = \"{uf.Gender}\"," +
        //$"Location = \"{uf.Location}\",Department = \"{uf.Department}\",Labour = \"{uf.Labour}\",Role = \"{uf.Role}\" where ITCode=\"{itCode}\";

获取搜索个数
select count(*) from user where UserName like '%a%'

时间段查询,一定要加DATE_FORMAT

select * from project where Brand like '%%' and ProjectMode like '%%' and Status like '%%' and TestSite like '%%'   and DATE_FORMAT(StartDate,'%Y-%m-%d') >= '2020-06-01' and DATE_FORMAT(EndDate,'%Y-%m-%d') <= '2020-06-19' order by Status Asc LIMIT 0,10

批量更新一条记录中的单个字段
UPDATE user
    SET name = CASE id
        WHEN 1 THEN 'update_name1'
        WHEN 2 THEN 'update_name2'
    END
WHERE id IN (1, 2);
 
# 批量更新一条记录中的多个字段
UPDATE user
    SET name = CASE id
        WHEN 3 THEN 'update_name3'
        WHEN 4 THEN 'update_name4'
    END,
    pwd = CASE id
        WHEN 5 THEN 'update_pwd5'
    END
WHERE id IN (3, 4, 5);

update machine set Status='Waiting', Owner='wuxx10'  Where MachineID IN('Knowckout2-1','MOFUSHI_M710TS_B250_KT1-1','Pippen1-1')


添加字段:
   默认在最后添加:`alter table user add age int(3);`
   在指定字段后添加:`alter table user add email varchar(60) after password;`
   在开头添加字段:`alter table user add id int(11) first;
删除字段:`alter table user drop age;


如何修改密码(V8.0.18)
控制台输入指令:
mysql -uroot -p

输入旧密码
Enter password: *********

输入语句NewPassword处为你要修改的密码
mysql>  ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
Query OK, 0 rows affected (0.02 sec)


联合查询

这种场景下得到的是A的所有数据,和满足某一条件的B的数据;B中补存在数据则自动填充null

select a.*, b.* from user a left join pj_tester b on a.ITCode = b.Tester

 

一些需要注意的坑:

Window下查询语句不区分大小写,需要加binary来区分大小写       

string strQueryCmd = $"select * from {strTable} where ITCode=\"{itCode}\""; //不区分大小写
string strQueryCmd = $"select * from {strTable} where binary ITCode=\"{itCode}\"";//区分大小写

 

### 基本的 DELETE 语句MySQL 中,`DELETE` 语句用于从数据库表中移除一条或多条记录。执行 `DELETE` 操作时需要非常小心,因为一旦数据被删除,就无法恢复(除非有备份)[^1]。 #### 删除单个记录 ```sql -- 删除 id 为 1 的学生信息 DELETE FROM students WHERE id = 1; ``` #### 删除多个记录 ```sql -- 删除所有性别为男 (gender=1) 且已标记为删除 (is_delete=1) 的学生 DELETE FROM students WHERE gender = 1 AND is_delete = 1; ``` ### 查询数据(SELECT) 查询是 SQL 中最常见的操作之一,它允许你从数据库中检索数据。 #### 查询未删除的学生信息并按名称升序排列 ```sql -- 查询未删除的学生信息,按名称升序 SELECT * FROM students WHERE is_delete = 0 ORDER BY name ASC; ``` #### 查询未删除的男生信息并按学号降序排列 ```sql -- 查询未删除的男生信息,按学号降序 SELECT * FROM students WHERE gender = 1 AND is_delete = 0 ORDER BY id DESC; ``` #### 多条件排序 ```sql -- 显示所有学生信息,先按年龄从大到小排序,年龄相同时按身高从高到矮排序 SELECT * FROM students ORDER BY age DESC, height DESC; ``` ### 插入数据(INSERT INTO) 插入语句用于向表中添加新记录。 #### 插入单条记录 ```sql -- 向 students 表中插入一条新的学生记录 INSERT INTO students (name, age, gender, height, is_delete) VALUES ('张三', 20, 1, 175, 0); ``` #### 插入多条记录 ```sql -- 向 students 表中插入多条学生记录 INSERT INTO students (name, age, gender, height, is_delete) VALUES ('李四', 22, 0, 165, 0), ('王五', 21, 1, 180, 0); ``` ### 更新数据(UPDATE) 更新语句用于修改表中的现有记录。 #### 更新单个字段 ```sql -- 将 id 为 2 的学生的年龄更新为 23 UPDATE students SET age = 23 WHERE id = 2; ``` #### 更新多个字段 ```sql -- 更新 id 为 3 的学生的姓名和身高 UPDATE students SET name = '赵六', height = 178 WHERE id = 3; ``` ### 分页查询 分页查询常用于处理大量数据时,限制每次返回的结果数量。 #### 使用 LIMIT 和 OFFSET 实现分页 ```sql -- 获取第一页的学生信息,每页显示 5 条记录 SELECT * FROM students ORDER BY id LIMIT 5 OFFSET 0; -- 获取第二页的学生信息,每页显示 5 条记录 SELECT * FROM students ORDER BY id LIMIT 5 OFFSET 5; ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值