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

存储过程

相关推荐
我是一只小青蛙8882 小时前
Python实战:Kingbase数据库高效操作指南
数据库·oracle
龙亘川2 小时前
【课程5.7】代码编写:违建处置指标计算(违建发现率、整改率SQL实现)
数据库·oracle·智慧城市·一网统管平台
松涛和鸣2 小时前
55、ARM与IMX6ULL入门
c语言·arm开发·数据库·单片机·sqlite·html
这儿有一堆花2 小时前
Linux 内网环境构建与配置深度解析
linux·数据库·php
Codeking__3 小时前
Redis——事务
数据库·redis·缓存
Codeking__3 小时前
Redis——认识持久化、RDB、AOF
数据库·redis·缓存
Funky_oaNiu3 小时前
Oracle在没有dba权限和表空间对不上和不能用数据泵的情况下迁移
数据库·oracle·dba
阳光九叶草LXGZXJ3 小时前
达梦数据库-报错-06-[-502]OUT OF TEMPORARY DATABASE SPACE(临时表空间不足)
linux·运维·数据库·sql·学习
+VX:Fegn08953 小时前
计算机毕业设计|基于springboot + vue校园跑腿系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计