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 视图名;

存储过程

相关推荐
星云低代码开发平台6 小时前
AI 连接器运行健康度:指标、异常恢复和联调清单
大数据·运维·网络·数据库·人工智能·mcp
鱼宵6 小时前
LangChain4j 生产化改造:记忆落 Redis、向量落 ES,重启再也不丢
数据库·redis·elasticsearch·langchain4j
星云API技术笔记7 小时前
企业微信外部群机器人实战:多人同时咨询时,如何准确匹配消息与回复对象
数据库
ClouGence7 小时前
开源数据库管理工具 CloudDM 4.4.0 发布,新增 Kafka、SAP HANA 数据源
数据库·kafka
瀚高PG实验室7 小时前
业务无法通过hgproxy访问数据库
数据库·postgresql·瀚高数据库
鱼很腾apoc7 小时前
【MySQL】 第1期 从核心概念到表约束全解析
linux·c语言·数据库·学习·mysql
10mAh7 小时前
【SQL】NOT IN 遇到 NULL 为什么返回空集?三值逻辑与反关联实战
jvm·数据库·sql
Alinket7 小时前
毫米波雷达 vs 摄像头 vs 手环:养老跌倒监测三类方案怎么选
网络·数据库·健康医疗·信息与通信·iot
七夜zippoe8 小时前
Agent 权限边界:别让 AI 误删你的生产库(安全设计)
数据库·人工智能·安全·ai·权限边界·安全设计
泡海椒8 小时前
JQuickExcel 批量导入:用 importDataInBatch 控制大文件消费边界
数据库·oracle