一.库操作
1.show
show是使用于看本地数据库中的databases(数据库集合)也就是查看本地数据库,红色箭头的数据库,是系统自带的数据库:
show还能看表里面有几张表,通过show tables来进行查看,但是在进行查表的过过程中需要使用use先来选中你想要看的那张表所在的数据库:
也能查看警告信息show warnings;
2.create
创建一个数据库(表)使用create database; 在一个MySQL服务器上数据库名必须是唯一的,并且,数据库的名字不能和MySQL中的关键字重复(如果非要使用关键字作为数据库的名字,可以使用反引号 `` ,表名和变量名都是同理),到这里还没完,创建数据库还需要指定一个字符集,因为计算机中都是存储的01进制的数字,当我们需要表示中文的时候就需要一个表来进行表示中文的字节大小和表示形式,故就需要指定一个字符集,来表示你所需要的表示的语言。中文的话主要使用GBK(一个汉字是2个字节)和UTF8(变长编码,不同的符号,可能在1~4个字节,汉字一般3个字节)来进行表示。
if not exists的作用
创建时,创建的数据库或者表存在,则不进行操作,如果不存在则进行创建:
3.drop
删除数据库drop database 数据库名:
还可以通过drop table 表名删除表。
需要注意的是,数据库(表)给删除后是无法找回的,所以删库的操作一定要慎重。
4.comment注释
还可以使用-- 或者#都是注释。
二.表操作
1.变量介绍

2.describe
desc是describe的简写,此处的desc功能就是查看表的详细情况,通俗可以理解为查看文件的属性,这样的内容被称为“元数据”(Meta Data):
Field是字段,Type是类型,int(11)中的(11)代表位宽,int在硬盘上仍为4个字节,但是在控制台上显示的时候做多显示11个字符宽度,varchar(20)代表最大长度是20个字符。
Null代表是否能为空,Default代表默认值。Extra就是额外的属性,key代表是否存在外建。
3.alter
alter可以修改表结构,语法是:alter table 表名。
4.Insert
(i)insert into 表名 values(变量1,变量2,...)向某个表中插入数据:
(ii)指定列表插入数据:
插入多行:
插入时间(输入的值可以为一个时间的字符串,还能使用方法now()调用):
5.select
(1)全列查询
select * from 表名(*称为通配符,*代表全部列):
select *是一个危险操作,如果表的数据比较大,千亿级别的数据量,此时就会产生大量的硬盘IO和网络IO,硬盘和网卡读写速度都是存在上限的,一旦触发大规模的select *会把你的硬盘/网卡带宽吃满,就会导致其他客户端访问数据库时,访问操作无法正常进行了。
(2)指定列查询
(3)指定表达式查询
这样查询的表只是临时表,并没有对硬盘上的数据进行更改。
表的数据类型是规定存储硬盘上的数据的,类似于这样的临时表数据是可以不根据数据进行标识,并且它会尽量让临时表获得数据正确,也不会影响硬盘的数据正确。
(4)as
(5)distinct去重查询
当指定查询是多个参数时,只有当两个参数的值都重复了,才会进行去重操作,且此处的去重操作都是基于临时表进行操作的,并未对硬盘上的数据进行修改。
(6)排序查询
select * from 表名 order by 排序的规则 asc/desc其中一个
asc是升序排列
desc是降序排序
asc可以默认不写。
需要注意的是,查询信息时的顺序是无法保证的,并没有明确规定是通过什么来进行排序的,只有通过order by才能保证通过哪种排序规则来进行排序的。
使用desc进行降序排序,desc是descend的简写
order by也可以进行多列排序,先按照第一个排序规则进行排序,如果在第一个排序规则中它们的值相同,则进行第二个排序规则进行排序,以此类推。
(7)条件查询
> >= < <=同一类:
and:
between and:
in:
like:
以孙%开头的模糊查询:
以%孙结尾的模糊查询:
包含%孙%字的模糊查询:
_的使用:
NULL的查询,不能用=要用is/is not或<=>:
(8)分页查询
使用limit的时候也可以搭配offset进行使用,offset就是从指定下表作为起始位置查询:
6.update
需要注意的是,update后面没有跟上where等条件限制的语句时,就会将这个列的所有数据进行修改。
7.delete
当直接写delete from 表名 会直接将表里面的数据全部删除。