MySQL笔记
登录操作
mysql -u username -p
-u:指定登录用户
数据库
一、查看数据库
show database;
二、创建数据库
create database database_name;
database_name:数据库名
三、删除数据库
drop database database_name;
database_name:数据库名
四、选择(使用)数据库
use database_name;
database_name:数据库名
数据表
一、查看表结构
describe table_name;(简版命令:desc)
table_name:表名
二、创建数据表(前提:选择数据库之后)
create table table_name(
col_name1 data_type[Constraints],
col_name2 data_type[Constraints],
... ...
col_name5 data_type[Constraints]
)[engine=engine_name];
table_name:数据表名
col_name: 字段名
data_type: 数据类型
Contraints:约束条件 --> 了解约束条件
[engine=engine_name]:可选项(设置存储引擎),当不使用默认存储引擎时需手动指定
三、查看表的建表语句、存储引擎以及主键
show create table table_name [/G]
table_name:数据表的名称
[/G]:可选项
四、查看已有的数据表
show tables;
五、修改数据表的名称
alter table old_table_name rename new_table_name;
old_table_name:数据表的现名称
new_table_name:修改后的数据表名称
六、删除数据表
1.删除没有被关联的表
drop table [if exists] table_name;
[if exists]:可选项,若表存在则删除,不存在则不报错
table_name:数据表的名称
2.删除被其他表关联的主表
先删关联再删表
alter table table_name drop foreign key key_name;
key_name:表示外键
字段
一、查看表的字段
describe table_name;(简版命令:desc)
table_name:表名
二、修改字段数据类型
alter table table_name modify col_name new_data_type;
table_name:数据表名称
col_name:字段名称
new_data_type:新数据类型
三、修改字段名
alter table table_name change old_col_name new_col_name data_type;
table_name:数据表名称
old_col_name:旧的字段名称
new_col_name:新的字段名称
data_type:数据类型
四、添加字段
1.在表的最后一列添加字段
alter table table_name add col_name data_type;
table_name:数据表的名称
col_name:添加的字段名
data_type:数据类型
2.在表的第一列添加字段
alter table table_name add col_name data_type first;
table_name:数据表的名称
col_name:添加的字段名
data_type:数据类型
3.在表的指定列之后添加字段
alter table table_name add col_name1 data_type after col_name2;
table_name:数据表的名称
col_name1:添加的字段名
data_type:数据类型
col_name2: 指定的列
五、修改字段顺序
alter table table_name modify col_name data_type first|after col_name2;
table_name:数据表的名称
col_name1:添加的字段名
data_type:数据类型
|:二选一
col_name2: 指定的列
六、删除字段
alter table table_name drop col_name;
table_name:数据表的名称
col_name:字段的名称
数据
一、插入数据
1.向表中所有字段插入数据
1)指定字段及其值
insert into table_name(col_name1,col_name2,... ..,col_namen) values(value1,value2,... ...,valuen);
table_name:数据表的名称
col_name:字段名
value:添加的值
2)不指定字段只列出字段值
insert into table_name values(value1,value2,... ...,valuen);
table_name:数据表的名称
value:添加的值
注:value的个数必须与字段的个数一致且按对应的顺序赋值
2.向表中的指定字段插入数据
insert into table_name(col_name) values(value);
table_name:数据表的名称
col_name:字段名
value:插入的值
3.同时插入多条数据
insert into table_name(col_name1,col_name2,... ..,col_namen) values(value1,value2,... ...,valuen),(value1,value2,... ...,valuen),(value1,value2,... ...,valuen);
table_name:数据表的名称
col_name:字段名
value:添加的值
4.将其他表中的数据插入到表中
insert into table_name1(col_name1,col_name2,... ...,col_namen) select (col_name1,col_name2,... ...,col_namen) from table_name2
table_name:数据表的名称
col_name:字段名
二、修改数据
1.修改所有数据
update table_name set col_name1=value1,col_name2=value2,... ...,col_namen=valuen;
table_name:数据表的名称
col_name:字段名
value:值
2.修改指定数据
update table_name set col_name1=value1,col_name2=value2,... ...,col_namen=valuen where condition;
table_name:数据表的名称
col_name:字段名
value:值
condition:限定范围的条件
三、删除数据
1.删除所有数据
delete from table_name;
table_name:数据表的名称
2.删除指定数据
delete from table_name where condition;
table_name:数据表的名称
condition:限定范围的条件
单表查询
语法:
select {*|col_list} from table_name [where <表达式> [group by <group by definition>] [having<expression>[{<operator><expression}...]] [order by <order by definition>] [limit [<offset>,]<row count>] ] ;
一、查询所有字段和值
select {*|col_list} from table_name;
二、查询指定字段和值
select col_name,[col_name1,....] from table_name;
三、查询指定记录
select {*|col_name} from table_name where condition;
condition:条件限制
注:多个col_name使用,号隔离
四、多条件查询
select * from table_name where condition not|and|or|{[not] in condition;
and:逻辑与
or:逻辑或
not:逻辑非(与in使用)
in:(例:查询id值为1和3的字段列表值)
select * from table_name where id in(1,3); == select * from table_name where id=1 or id=3;
优先级:and>or
五、查询空值
select * from table_name where col_name is null;
六、查询结果不重复
select distinct col_name from table_name;
七、范围查询
select {*|col_name} from table_name where col_name [not] between value1 and value2;
八、字符匹配查询
select {*|col_name} from table_name where col_namea like valueb;
1.通配符"%"
匹配任意长度的字符
2.通配符"_"
匹配任意单个字符
九、排序查询
select {*|col_name} from table_name order by col_namea1[asc|desc],col_namea2;
asc:升序(不设默认)
desc:降序
十、限制查询结果的数量
select {*|col_name} from table_name limit [offset_start,]row_count;
offset_start:起始位置,默认0
row_count:查询出来的记录条数
存储引擎
一、查看MySQL的存储引擎
show engines [\G]
[/G]:可选项
Engine:表示存储引擎的名称
Support:表示MySQL是否支持此引擎
Comment:表示关于此存储引擎的评论
Transactions:表示此存储引擎是否支持事务
二、查看MySQL默认存储引擎
show variables like 'default_storage_engine';
三、修改MySQL默认存储引擎
... ...
四、修改已创建的数据表的存储引擎
alter table table_name engine=e_name;
e_name:存储引擎名称
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!