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

存储过程

相关推荐
砚边数影1 小时前
数据可视化入门:Matplotlib 基础语法与折线图绘制
数据库·信息可视化·matplotlib·数据可视化·kingbase·数据库平替用金仓·金仓数据库
orange_tt1 小时前
Djiango配置Celery
数据库·sqlite
云小逸2 小时前
【nmap源码学习】 Nmap网络扫描工具深度解析:从基础参数到核心扫描逻辑
网络·数据库·学习
·云扬·2 小时前
MySQL Binlog落盘机制深度解析:性能与安全性的平衡艺术
android·mysql·adb
肉包_5112 小时前
两个数据库互锁,用全局变量互锁会偶发软件卡死
开发语言·数据库·c++
霖霖总总2 小时前
[小技巧64]深入解析 MySQL InnoDB 的 Checkpoint 机制:原理、类型与调优
数据库·mysql
此刻你3 小时前
常用的 SQL 语句
数据库·sql·oracle
それども4 小时前
分库分表的事务问题 - 怎么实现事务
java·数据库·mysql
·云扬·4 小时前
MySQL Binlog 配置指南与核心作用解析
数据库·mysql·adb
天空属于哈夫克34 小时前
Java 版:利用外部群 API 实现自动“技术开课”倒计时提醒
数据库·python·mysql