MySQL---增删改查命令

MySQL—增删改查命令

一、基本命令

在这里插入图片描述
【注意:下面的 []里面的内容可写可不写,具体看实际需要

二、数据库

1、查看数据库
show databases;

2、使用数据库
use 数据库名称;

3、创建数据库
create database [if not exits] 数据库名称;

4、删除数据库
drop database [if exits] 数据库名称;

三、表

1、查看表格
show tables;

2、创建表格
create table 表名(
字段名1 数据类型[完整性约束条件][索引][注释],
字段名2 数据类型[完整性约束条件][索引][注释],

)[表类型][表字符集][注释];

3、删除表
drop table 表名;

4、查看表结构
desc 表名;

建表那里提一下:
【注意:完整性约束条件可以是:not null,primary key,auto_increment等
表类型:ENGINE=MYISAM/InnoDB…;
表字符集:charset=utf8;
注释:comment ‘注释内容’】

数据类型引伸一下下
数据类型可以是以下几种
在这里插入图片描述
1.数值类型
在这里插入图片描述
2.字符串类型
在这里插入图片描述
3.日期类型
在这里插入图片描述
4.NULL类型
在这里插入图片描述

表类型再引伸一下下
在这里插入图片描述
MYISAM 和 InnoDB 区别
在这里插入图片描述

四、修改表结构

1、修改表名
alter table 旧表名 rename 新表名;

2、添加字段
alter table 表名 add 字段名 列类型 [属性];

3、修改字段
alter table 表名 modify 字段名 列类型 [属性];
alter table 表名 change 旧字段名,新字段名 列类型 [属性];

4、删除字段
alter table 表名 drop 字段名;

5、外键
创表时增加外键
create table 表名(字段列表… ,[constraint 索引名] foreign key (本表的字段名) references 外表名(外表的字段名));

表已经存在时修改外键
alter table 表名 add [constraint 索引名] foreign key (本表的字段名) references 外表名(外表的字段名);

删除外键
alter table 表名 drop foreign key 索引名;

五、表内容的增删改查

1.插入
insert into 表名 (字段名1,字段名2…) values (字段名1,字段名2…);

2.修改
update 表名 set 列名=value where condition;
【condition :为筛选条件】

3.删除
delete from 表名 where condition;
truncate 表名;
二者区别:
truncate只删除表的内容,不删除表结构,索引,约束等,速度更快,恢复难
而delete删除所有,将删除的内容全部置空

4.查询
在这里插入图片描述
【as】:起别名
SELECT StudentNo AS “学号” FROM student;
SELECT a.StudentNo FROM student AS a;
SELECT Phone+1 AS Tel FROM student;
在这里插入图片描述
例如:select stu_id id,stu_name 名字 from student [where condition];

【distinct】:去重
select distinct 字段名1,字段名2… from 表名 [where condition];

【select语法】:
在这里插入图片描述

逻辑操作符

在这里插入图片描述
在这里插入图片描述
【between…and…】:范围
select 字段1,字段2…from 表名 where 字段 between 值1 and 值2;
【注意:左右都是闭区间】

【like】:模糊查询
like “正则表达式”
在这里插入图片描述
【in】:在.中间,多替换or
select 字段1,字段2…from 表名 where 字段 in (值1,值2,…);

【group by 】:分组
group by 字段 [having 条件]:按照什么字段进行分组,如果想加条件,请在having语句后面写,不能随意写在where语句里

【order by】:排序
严格按照查询语句书写顺序
默认升序:asc,降序:desc

【limit】:限制显示个数
limit n:显示前n条数据
limit (m,n):显示从第m条数据往后数的n条数据
limit (m,n) 等价于 limit n offset m
在这里插入图片描述

关联

内关联

join 或 inner join :展示多个表能连接得上的数据(共同有的)

外关联

左连接:left join:会展示左表所有数据,右表能链接上的数据
右连接:right join:会展示右表所有数据,左表能链接上的数据
全连接:full join(mysql 5.8以后才有),相当于 左连接 union all 右连接
在这里插入图片描述
在这里插入图片描述

union和 union all区别:

使用union all 会把数据纵向拼接起来
union 是在union all的基础上去重

自连接

典型例子:
有一个category表,注意看这个是【拉链表:pid指向categoryId】
在这里插入图片描述
为了让它们自动分类,使用如下查询语句:

select a.categoryName 分类,b.categoryName 专业 from category a join category b on a.categoryId = b.pid;
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43288259/article/details/113984722