导图社区 MySQL基础操作大全
阐述如何使用数据库、数据表、union、全相乘、连接、及介绍。整理MySQL的基础掌握方法,欢迎大家使用。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
MySQL
数据库
展示所有数据库
show database;
使用数据库
use 数据库名;
展示数据库中所有表
show tables;
删除库
drop database 库名;
修改库名
无现成语句
数据表
表结构
创建表
create table 表名( 列名 字段类型 声明,...);
字段类型
in,tinyint
varchar()
char
date,datetime
txt
primary key,foreign key
not null default 0/''
auto_increment
查看表结构
desc 表名;
删除数据库
drop table 表名
修改表名
alter table 旧表名 rename to 新表名;
增添列
alter table 表名 add 新列名 字段类型(参数) 声明;
表明位置可用first/last/after 列名
删除列
alter table 表名 drop 列名;
修改列类型
修改类型参数: alter table 表名 modify 列名 新类型 新参数;
修改列名,类型参数: alter table 表名 change 旧列名 新列名 新类型 新参数;
表数据
插入数据
每个列都插入数据:insert into 表名 values(),(),……();
个别列插入数据: insert into 表名(列1,列2,……) values(),(),……;
字段和插入数据需保持一致
删除数据
全表:delete from 表名;
全表:turncate table 表名;
部分:delete from 表名 where 查询条件;
修改数据
update 表名 set 列名=值 where 查询条件;
覆盖数据
replace into 表名(列名) values(值);
replace into 表名 set 列1=值1,列2=值2,……;
replace 语句没有where条件
replace是先插入新行,后删除旧行;如果没有重复数据,旧当作新行插入
如果不指定列的值,将使用默认值
查询语句
全部列:select * from 表名 where 条件;
部分列:select 列名,列名 from 表名 where 条件;
select字句介绍
按照发生顺序排序:where>group by>having>order by>limit
where 条件查询
group by 分组查询,查询列中必须包含分组列,查询列互相无法一一对应时,默认返回第一行数据,不会报错
having 筛选,是对查询出的结果集进行筛选,筛选列并未出现在原表中
order by 排序,asc 升序,desc 降序,默认升序
limit x,y x指从第几个开始,y指取的个数,如果从第一个开始,x为0,默认不写
运算符
比较运算符:>,<,=,!=,<>,in(),between...and...,and,or
逻辑运算符:not,not in()
模糊查询:like,%,_
关键字:distinct/asc/desc/auto_increment
公式:max(),min(),avg(),sum(),count(*)绝对行数,count(列名)不含空的行数
子查询
where 子查询
将内层查询结果作为外层查询条件
from 子查询
将查询结果集作为表来进行二次查询
exist 子查询
true为1,false为0。使用exist,条件为真返回1,条件为假返回0。可以对1进行加和。
union
查询语句1 union 查询语句2,拼接两个查询语句
2个查询语句取的列数需一致,列名不需一致,以第一张表的列名为准,但是列字段类型不一致的话,查询意义不大
union后的结果集可以使用order by 排序。使用order by 的注意事项:当内层使用order by时,如果对最终结果没有影响,将被优化掉,不进行操作。
如果结果集有重复行出现的话,union 默认去重操作,如果不想去重,用union all 代替union即可
全相乘
select * from 表1, 表2;
表1的每行数据和表2的每行数据相匹配,共有m*n条数据
可以针对性的取列,如果在多表联查时,某一列名在2张或2张以上的表出现时,则需要在列名前,指定表名,即表名.列名
两表相乘查询效率比较低,缓存数据量大,导致服务器压力大,尽量避免使用
连接
左连接
表1 left join 表2 on 条件;条件为真,表2对应的行取出,条件为假,则对应null
null是一种类型,比较时只能用is或is not,不方便比较。null就相当于没有银行账号,空值是指银行账户没有钱。
查询形成的结果集形成一张新表,可以进行查询,可以查询的列包含表1和表2的所有列
右连接
和左连接相似,表1和表2左连接,等价于表2和表1右连接。
内连接
表1 inner join 表2 on 条件;
只有表1和表2都有互相匹配的数据行才能出现在结果中