当前位置: 代码网 > it编程>数据库>Mysql > MYSQL指令合集一文详解

MYSQL指令合集一文详解

2025年11月17日 Mysql 我要评论
一、基础 crud(增删查改)1. 查询(select)select * from table_name;select name, age from users;select * from users

 一、基础 crud(增删查改)

1. 查询(select)

select * from table_name;
select name, age from users;
select * from users where id = 1;
select * from users where name = 'elias';

2. 插入(insert)

insert into users(name, age) values ('jack', 20);
insert into users(id, name, age) values (1, 'lily', 22);

插入多条:

insert into users(name, age)
values ('a', 10), ('b', 20), ('c', 30);

3. 更新(update)

update users set age = 25 where id = 1;
update users set name = 'mike', age = 18 where id = 2;

4. 删除(delete)

delete from users where id = 1;
delete from users where age < 10;

二、表的创建与修改

1. 创建表(包含主键)

create table users (
    id int primary key auto_increment,
    name varchar(50) not null,
    age int
);

2. 删除表

drop table users;

3. 修改表(add / drop / modify)

增加字段:

alter table users add email varchar(100);

删除字段:

alter table users drop column email;

修改字段类型:

alter table users modify age int not null;

修改表名:

alter table users rename to members;

三、条件查询(where)

常用条件:

select * from users where age >= 18;
select * from users where age between 18 and 30;
select * from users where name like 'a%';   -- a 开头
select * from users where name like '%abc%'; -- 包含 abc
select * from users where age in (18, 20, 25);
select * from users where age is null;
select * from users where age is not null;

复合条件:

select * from users where age > 18 and name = 'jack';
select * from users where age < 18 or age > 60;

四、排序(order by)

select * from users order by age desc;
select * from users order by age asc, name asc;

五、分页(limit)

select * from users limit 10;        -- 前 10 条
select * from users limit 5 offset 10;

前端常用分页:

select * from users limit (page-1)*size, size;

六、连接查询(join)

1. 内连接(常用)

select u.name, o.order_id
from users u
join orders o on u.id = o.user_id;

2. 左连接(主表全部 + 匹配)

select u.name, o.order_id
from users u
left join orders o on u.id = o.user_id;

3. 右连接

select u.name, o.order_id
from users u
right join orders o on u.id = o.user_id;

七、分组统计(group by + having)

求每个年龄段人数:

select age, count(*) 
from users 
group by age;

统计后过滤(having):

select age, count(*) as cnt
from users
group by age
having cnt >= 2;

求平均值:

select avg(age) from users;
select sum(age), min(age), max(age) from users;

八、子查询

select * from users 
where age > (select avg(age) from users);
select name from users 
where id in (select user_id from orders);

九、索引(提高查询速度)

1. 创建索引

create index idx_name on users(name);

2. 删除索引

drop index idx_name on users;

3. 唯一索引

create unique index idx_email on users(email);

十、约束(提高数据可靠性)

主键

primary key (id)

唯一

unique(email)

外键

constraint fk_user
foreign key(user_id) references users(id)

十一、事务(保证数据一致性)

开启事务:

start transaction;

修改:

update users set age = age - 1 where id = 1;
update users set age = age + 1 where id = 2;

提交:

commit;

回滚:

rollback;

十二、数据库/表管理

切换数据库:

use dbname;

查看所有数据库:

show databases;

查看所有表:

show tables;

查看表结构:

desc users;

十三、字符集(防止中文乱码)

set names utf8mb4;

或 c++ 设置:

mysql_options(conn, mysql_set_charset_name, "utf8mb4");

一个“真实项目常用 sql 组合”

创建用户表 + 插入用户 + 查询用户 + 登录验证

create table user(
    id int primary key auto_increment,
    name varchar(50) unique,
    password varchar(100),
    create_time timestamp default current_timestamp
);
insert into user(name, password) values ('elias', '123456');
select id, name from user where name='elias' and password='123456';

到此这篇关于mysql指令合集一文详解的文章就介绍到这了,更多相关mysql指令大全内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com