Mysql短课题全手稿

鉴于内容比较杂乱,基础内容和简短课题统一发布在这里,繁杂且长的适合单开的再开单篇,后续会整合在这里

mysql语句

crud

sql 复制代码
#基本添加
#如果不声明field_name前后对应  需要和数据库字段顺序一致(不推荐) []代表可选
insert into table_name [(field_name,...)]values(val,...)

#基本删除
delete from table_name where where_sql

#基本修改
update table_name set field_name=value,... where where_sql

#基本查询
# *表示全部字段
select */field_name,.../函数 from table_name

#模糊查询
#左侧原则 左侧原则能够更大限度使索引生效
where field_name like 'string%';


#排序  desc降序大->小  asc升序默认小->大  where后limit前
order by field_name [desc/asc][,...]


#分页查询  start符合条件的数据开始条数位置  num需要条数
limit  start,num


#分组查询
group by field_name

#列别名   表别名  可+as 或直接空格
select field_name as as_name from table_name t_name

#联表查询
#inner join/left join/right join
#inner join 保留两侧全部数据  left/right保留一侧数据为准
select * from tab1 left join tab2 ON where tab1.field1=tab2.field1


#子查询  in/not in  可以嵌套  最大嵌套层数18
select * from tab1 where in (select * from tab2 where ...)

系统操作

sql 复制代码
#创建数据库 并制定字符集
#在mysql目录下会生成对应文件夹 文件夹下有db.opt文件
create database db_name character set utf8 collate utf8_general_ci;

#查看全部数据库
show databases;

#使用数据库
use db_name;

#删除数据库
drop database db_name;



#显示当前数据库所有表和视图
show tables;

#显示创建表的语句
show create table tab_name;

#查看表结构
describe/desc table_name;

#创建表
#会在对应数据库目录下创建table_name.frm文件
create table table_name (field_name data_type(lenght),...);

#修改表
alter table table_name
     ADD field_name data_type;#新增字段 data_type=数据类型
     drop field_name;#删除字段
#删除数据表
drop table table_name;

#退出mysql
exit;



#登录命令
mysql -h 主机ip -u 用户名  -p 密码

mysql函数

|-------------|--------------------------------------------------|------------------|---------------------------------------------------------------------|
| 函数名 | 参数 | 返回值 | 注意事项 |
| FIND_IN_SET | str, strlist str:搜索内容字符串 strlist:指定搜索列名 格式 a,b,c | 返回从1开始位置,未匹配到返回0 | 关联表不重复使用,但必须关联,建立关联表冗余,且匹配数据最好是整型如:1,2,3这种 效果类似于字符串分割然后匹配,不适合大数据集搜索 |
| NOW | | | 当前时间 |
| sum | int | | |
| count | int | | |
| max | int | | |
| min | int | | |
| avg | int | | |

mysql数据类型

|---------|---------------------|
| varchar | 最大 255 |
| char | |
| text | 不定长 *无法存储表情 需要改字符集 |
| int | |
| decimal | |
| | |

索引

主键索引

不能重复,不能null,空只能有一个

sql 复制代码
#添加主键
alter table tab_name add constraint 主键名 primary key(key_field_name);

#删除主键
#有自增时先去除自增
alter table tab_name change key_field_name key_field_name int(11);
alter table tab_name drop primary key;

#创建表时添加主键自增  忽略其他语法
id int(11) auto_increment not null primary key,

外键索引

sql 复制代码
#添加外键 一张表的外键必须是另外一张表的主键
alter table 外键表 add constraint 外键名 foreign key(外键列名) references 主键表(主键表主键列名);

#删除外键
alter table tab_name drop foreign key 外键名;

普通索引

sql 复制代码
#创建索引 
create index 索引名称 on 表名(列名);
alter table 表名 add index 索引名(列名);

#删除索引  除主键索引无法直接删除  可以删除其他类型的索引
drop index 索引名 on 表名;
alter table 表名 drop index 索引名;

唯一索引

sql 复制代码
#创建索引
create unique index 索引名 on 表名(列名);
alter table 表名 add unique 索引名(列名);

check约束

sql 复制代码
#添加
alter table tab_name add constraint 外键名 check(field_name=value or field_name=value);
alter table tab_name add constraint 外键名 check( field_name in(value,...);

非空约束

sql 复制代码
#修改字段为非空
alter table tab_name change 列名 列名 字段类型 default 默认值 not null;

视图(逻辑表)

sql 复制代码
#创建视图
create view 视图名 as select_sql;

#查询视图  能正常查询  但不能有改动操作
select * from 视图名 [where_sql];

#修改视图
alter view 视图名 as select_sql;

#删除视图
drop view 视图名;

存储过程

相关推荐
李广坤8 小时前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
Turnip12021 天前
深度解析:为什么简单的数据库"写操作"会在 MySQL 中卡住?
后端·mysql
爱可生开源社区1 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1772 天前
《从零搭建NestJS项目》
数据库·typescript
加号32 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏2 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
李慕婉学姐2 天前
Springboot智慧社区系统设计与开发6n99s526(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
百锦再2 天前
Django实现接口token检测的实现方案
数据库·python·django·sqlite·flask·fastapi·pip
WeiXin_DZbishe2 天前
基于django在线音乐数据采集的设计与实现-计算机毕设 附源码 22647
javascript·spring boot·mysql·django·node.js·php·html5
tryCbest2 天前
数据库SQL学习
数据库·sql