需要软件及相应配置环境
特别注意:此处不提供任何软件的安装及配置信息,接下来的文章内容都是基于环境配置好了来进行的
此处我们会用到图形界面工具:SQLyog ,所谓图形界面工具就是将数据库的内容以一种可视化的形式显示出来,更容易人为手动操作
此处我们会用到数据库 MySQL 或者 phpStudy(一款集成了众多数据库的开发环境),最主要的也是下载数据库了,没有数据库做什么也是徒劳
我们将 Windows 端的 cmd 命令行 或者 图形界面工具 与 MySQL 数据库建立起某种关联,使在命令行中输入代码可以直接控制数据库,或者在图形界面工具里面进行人为操作以及输入代码能直接控制数据库,以上就实现了数据库与客户端的融合
命令行操作数据库
打开命令行
Windows + R 键打开运行程序后,输入 cmd 便可以打开命令行工具
注意:如果命令行命令太多,想要清理屏幕的话,在其中打 cls 后回车即可,但是一旦我们连接到了 MySQL 数据库,我们就不能进行清屏操作了,只能用鼠标滚轮的方法来清除我们不想要看到的部分
连接 MySQL 数据库
前景,下载了 MySQL 数据库后我们需要给数据库配置账户和密码,或者下载了 phpStudy 后,我们就已经知道了数据库的账户(root)和密码(root)(不需要自己配置)
具体操作: mysql -uroot -proot,-u 后面接的是用户名,-p 后面接的是密码(当然我们也可以暗文输入,命令为 mysql -uroot -p)

退出 MySQL 数据库
具体操作:exit 或 quit 命令

查看已经创建的数据库
具体操作:show databases;
此处注意带分号,意味着一个语句的结尾,否则控制台就会持续等待继续输入!MySQL 语句不严格区分大小写,所以写成 SHOW DATABASES; 也是对的

查看数据库版本
具体操作:select version();

创建数据库及查看创建数据库过程的命令
创建数据库具体操作:create database 数据库名 charset=utf8; ,charset=utf8 是指定数据库的编码格式为(utf-8)
查看创建过程的具体操作:show create database 数据库名;
特别注意:是在已经存在某数据库的情况下,才能使用查看创建过程的命令,如果查看创建过程的后面跟着的数据库是不存在的,那么就会报错

查看当前使用的数据库、切换使用的数据库以及删除数据库
查看当前使用的数据库的具体操作:select database();
切换使用的数据库的具体操作:use 数据库名;
删除数据库的具体操作:drop database 数据库名;

实例
创建新的数据库:create database susu;
查看创建的数据库:show databases;
查看当前使用的数据库:select database();
切换到新创建的数据库:use susu;
删除新创建的数据库:drop database susu

命令行操作数据表
前景:切换到想要使用的数据库
查看数据库里面所有的表、查看表的创建过程以及创建表
查看数据库里面的表的具体操作:show tables;
查看表的创建过程的具体操作:show create table 表名(此操作需要已经存在的表名)
创建表的具体操作:create table 表名(字段1 类型 约束,字段2 类型 约束);

如上:创建了一个表名为(xiaoke)的表格,赋予的第一个字段(id),类型为整型,约束为主键(primary key),非空值(not null),自动增量(auto_increment)

如上:在图形界面可以观察到我们在新建的数据库(mysql_2)里面创建了新的表格(xiaoke),以及赋予了其属性
添加表字段
具体操作:alter table 表名 add 字段 类型;
例如:alter table xiaoke add sex enum("man","woman") default "man";
对表格(xiaoke)里面新增了字段(sex),类型为(枚举),值为(man 或 woman),默认值为(man)

修改表字段及其属性
不重命名具体操作:alter table 表名 modify 字段 类型;
之前我们已经添加过表字段(sex),并且赋予了类型为枚举(enum),我们接下来改变该字段的类型及默认值
alter table xiaoke modify sex enum("woman","man","unknow") default "unknow";

我们可以发现到该命令只能改变字符的类型及约束,不能改变字段本身的表示
重命名具体操作:alter table 表名 change 原字段名 新字段名 类型及约束;
接下来我们来改变字段本身,即是又改变原字段的名字,也改变其属性
alter table xiaoke change sex love enum("apple","banana","unknow") default "unknow"

我们可以发现到该命令既能改变字符的类型及约束,又能改变字段本身的表示
删除表字段
具体操作:alter table 表名 drop 字段;
alter table xiaoke drop love;

我们可以发现,字段(love)已经被删除
命令行操作数据
前景:在前面的基础上,我们已经选择了一个数据库,也创建一个表格,并且表格里面有某些字段(id 和 name),我们先加入一个字段(age)
alter table xiaoke add age int default 18;

新增数据
整行插入:insert into 表名 values(值1,值2,值3...);
insert into xiaoke values(1,"su",19);

如上可以发现表中新增了一行数据,(id 为 1,name 为 su,age 为 19),特别注意,此种方法插入的数据需要和字段对应,可以称为全局对应插入
指定列中插入数据:insert into 表名 (字段1, 字段2,...) values (值1,值2,....);
insert into xiaoke (id,name) values(2,"xixi");

如上我们可以知道指定插入了表(xiaoke)的字段(id 和 name)数据(2 和 xixi)
指定列中插入多条数据:insert into 表名 (字段1, 字段2,...) values (值1,值2,....),(值1,值2,....);
insert into xiaoke (id,name) values(3,"zuzu"),(4,"wuwu");

如上我们可以发现同时插入了二行数据
修改数据
具体操作:update 表名 set 字段1=新值,字段2=新值 where 条件;
update xiaoke set id=100,name="keke" where id=4;

如上,我们把条件为(id=4)的一行数据进行了修改
删除数据
具体操作:delete from 表名 where 条件;
delete from xiaoke where id=100;

如上可以发现,id 为 100 的数据已被删除
查询数据
查询整个表数据:select * from 表名;
select * from xiaoke;

查询指定字段:select 字段1,字段2 from 表名;
select id,name from xiaoke;

查询指定字段数据,并给字段起别名:select 字段1 as 别名,字段2 as 别名 from 数据表名;
select id as "代号",age as "年龄" from xiaoke;

查询指定字段并去重:select distinct 字段1 from 表名;
前提我们是有我们需要去重的成分在其中,我们先新增一组数据
insert into xiaoke values(4,"zuzu",90);

接下来进行查询去重操作
select distinct name from xiaoke;

我们可以发现只查询出来了一个(name)为(zuzu)的数据
查询数据(where 子句)
where 条件判断语句结合比较运算符使用
select name from xiaoke where age > 80;

where 条件判断语句结合逻辑运算符使用
select name from xiaoke where age > 8 and age < 80;

查询数据(模糊查询)
如下语句的意思是,从表(xiaoke)内查询字段(name),当条件符合(age)模糊相似(%8)的时候查询出结果,此处的 % 可以代表多个字符,也就是查询 age 为 8 结尾的 name 值
select name from xiaoke where age like "%8";

如下语句的意思是,从表(xiaoke)内查询字段(age),当条件符合(name)模糊相似于二个字符的时候,查询出结果,此处的下划线代表一个字符
select age from xiaoke where name like "__";

查询数据(范围查询)
如下二句语句的意思是从表中查询字段(name),当分别符合条件(id 是 1 或 4),(id 在 1 到 3 的范围内)输出结果
select name from xiaoke where id in(1,4);
select name from xiaoke where id between 1 and 3;

常用聚合函数
count 代表求总数,如下语句代表求表的总数据项
max 代表求最大值,如下语句代表求满足条件的 age 的最大值
select count(*) from xiaoke;
select max(age) from xiaoke where id in (1,4);

min 代表求最小值,如下语句代表求满足条件的 age 的最小值
sum 代表求和,如下语句代表求满足条件的 age 的总和
avg 代表求平均值,如下语句代表求满足条件的 age 的平均值
select min(age) from xiaoke where id in (1,4);
select sum(age) from xiaoke where id in (1,4);
select avg(age) from xiaoke where id in (1,4);

注意:如果要求平均值的小数位数,我们可以进行如下操作,设置成了 2 位
select round(avg(age),2) from xiaoke where id in (1,4);


被折叠的 条评论
为什么被折叠?



