一,前言
作者是一名双非本科大二在校学生,因为闲得无聊就自学了数据库,从软件领域来说吧,无论是C/S、B/S架构的软件,只要涉及存储大量数据,一般后台都需要数据库支撑;无论你是做前端还是后端,考虑到后台存储数据的问题,都会用到数据库,Oracle,MySQL,SqlServer是目前常用的的数据库。目前已经出现了很多的图形化的数据库,这些图形化的数据库简单易学易操作,没什么可以讲的,读者想学的话,可以自行下载百度研究即可。本文将从最基础的开始,讲的全部是在DOS环境下的操作。
二,初步了解MySQL
我们时常听说MySQL,它是一个关系型数据库管理系统。关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。这样说可能比较抽象,简单来说,MySQL是众多数据库的集合,里面有很多不同的数据库,而不同的数据库里面又包含很多叫做数据表的储存单元,数据就是存放在数据表里面。打个比方就是,MySQL就是图书馆这个大房子,里面的不同的图书存放区就是一个个的数据库,而不同存放区里面的书架就是数据表,书架上面的图书就是存储的数据。用数学中集合的思想来说就是:数据⊂数据表⊂数据库⊂MySQL.接下来将从最大的MySQL开始逐步进行讲解。
三,登录MySQL
学习数据库的前提是你的PC端必须安装了MySQL,读者可以自行百度安装,接下来我们就要在DOS的环境下进入到MySQL
1)首先,找到你MySQL的安装路径,然后找到"bin"文件夹下的"mysql.exe",记住这个路径,然后在DOS环境下进入到这个路径当中
2)输入命令:mysql -uroot -p
,回车,输入密码再回车就登录成功了。这里解释一下,因为MySQL是需要账号密码进行登录的,上面命令中的root是用户名,默认的账号密码都是root(如果你安装MySQL的时候自己设置了账号和密码就输入你设置的账号和密码,例如:你名字设置为666,那么你要输入的命令是:mysql -u666 -p
,回车)
登录成功界面如下:
倘若,你在很久之前就安装了MySQL,但是密码早已忘记,不用慌,丝毫不用慌。下面我教给你如何免密码登录:
在你的MySAL的安装路径下找到一个名字是my.ini的一个配置文件,通过记事本的方式打开,找到
[mysqld]
这一句代码,在其下面加上:skip-grant-tables
,然后重启MySQL服务,当你再次进入到需要你输入密码的界面的时候,直接回车就OK了。(当然还有其他方法可以免密码登录,读者可自行百度)
四,数据库的相关操作
1)查询数据库
show databases;
作用就是显示出你当前PC中有哪些数据库,下图就是我PC中的数据库,因为我之前创建过数据库,图片上的个别数据库你没有很正常。注意!:databases
不要忘了s
,我就在这里吃了不少亏。
2)创建一个数据库
create database **(数据库名);
我在这里呢,创建一个名为“lol”的数据库,显示为"OK"即为创建成功。
另外,需要注意的是我们平时用的中文的字符编码是utf-8,在python中也是这样的,但是在MySQL中的编码是utf8,请加以区分。再另外,我们创建数据库的时候,默认字符编码是"latin",也就是拉丁文,两者是不同的,Latin:一个中文占两个字符,utf8:一个中文一个字符。所以我们在创建数据库的时候可以设置字符编码格式为utf8,命令为:
create database **(数据库名) charset = (字符编码,例如utf8);
编码问题解决了,但是如果我们创建一个已经存在的数据库,他就会报错,并告诉你该数据库已经存在,如下图(wm是我之前就创建好的数据库)
所以我们可以在创建数据库的时候判断一下,判断该数据库是否已经存在,命令如下;
create database if not exists **(数据库名);
这样就可以避免报错,会显示"OK"但会出现一个警告,这个警告就是告诉我们该数据库已经存在。如下图:
这个好处在我们这里看不出来,但是在做一些大型项目的时候会有非常多的数据库,这条命令就可以直接在众多数据库中检验是否已经被创建,并且不会报错。
3)显示数据库相关信息
show create database **(数据库名);
这里就可以看到我们刚才创建数据库的时候的编码设置为utf8。
4)更改已经创建数据库的字符编码
alter database **(数据库名) character set utf8;
5)删除数据库
drop database **(数据库名);
同样的问题,和创建的时候一样,假如我删除一个不存在的数据库,他会报错吗?答案是会的,读者可以自行验证。所以我们可以在删除的时候判断一下,和创建的时候类似:
drop database if exists ** (数据库名字);
6)选择数据库
意思就是,你如果要创建数据,保存数据,就要选择在哪一个数据库里面进行一系列操作。命令如下:
use **(数据库名);
五,数据表的相关操作
在上面选择特定数据库之后才可以进行操作,下面的例子中我们将在上文中创建的lol数据库进行演示
1)创建表格
create table **(表名)(字段1名 数据类型,字段2名 数据类型,.......字段n名 数据类型);
代码的意思和我们平常在office中做表格一样,需要标题,例如创建标题为“班级成员”的列表,要有学号,姓名,性别,身高等信息:
上图代码包括MySQL数据类型的相关知识,可以点击
进行学习,其实没必要全部掌握,了解常用的就OK了,如下:
数据类型: int 整型 tinyint 整型(0-256) decimal 浮点型(总位数,小数位数) 例如 decimal(3,1) char(X) 定长字符型 例如 char(10) varchar(X) 可变长度字符型 例如varchar(10) text 大段文本 binary 二进制(存储照片等)
2)查看所有表格
show tables;
一个数据库中可能包含很多表格,这条命令就是查看数据库中有哪些表格
3)显示创建的表格
show create table **(表名);
4)显示表结构
describe(或desc) **(表名);
显示表结构,我们可以看出表格有哪些字段是什么类型,有无默认值等
5)删除表
drop table **(表名);drop table **,**,**...;
第一条是删除一个表格,第二条是删除多个表格
六,数据的相关操作
数据的操作和我们操作excle差不多就是,增加,删除,查询,修改数据。但是每一个操作又包含很多内容,尝试找到规律就可以很好的掌握
1)插入数据(增加数据)
insert into **(表名) (字段1,字段2,字段3......) values (值1,值2,值3.......);
例如:我在上面创建的student表格中增加信息:
这里我插入了三条信息,注意其中两个同学的学号相同,两个人的身高相同下面会用到,(补充:定义id,name,sex的时候都为字符类型,所以赋值的时候要用“”
)
2)查询数据
select * from **(表名);
这条命令是查询表格中的所有信息,*
就代表所有。
1>查询该表内某字段的所有数据
select 字段1,字段2,字段3......(或用*代替所有字段) from **(表名);
如图我是查询表格中字段为name的所有数据
2>查询某条件的所有数据
select * from **(表名)where 字段1 = 值1 and 字段2 = 值2 and ......;
代码意思就是查询同时满足两个条件的数据,例如我们查询学号都为2020101的两位同学时:
同理查询身高都为176的同学时:
或者是身高大于180的同学:
查询功能很灵活我就不再一一举例。
3>由低到高排序
select * from **(表名) order by 字段x asc;(默认就是升序)
4>由高到低排序
select * from **(表名) order by 字段x desc;
5>按某条件排序
select * from **(表名) where 字段x = 值x oreder by 字段x asc(desc);
6>取前n条数据
select * from **(表名) limit n;
7>从第n条开始(起始位置是0)取m条
select * from **(表名) limit n,m;
8>查询某排序下的前n条数据
select * from **(表名) order by 字段x asc(desc) limit n;
上面几条命令都较为简单,稍微思考一下就可以理解,自己动手敲一敲代码,看看结果就学会了。
3)删除数据
delete from **(表名) where 字段x = 值x;
4)修改数据
update **(表名) set 字段1 = 值1,字段2 = 值2 where 条件;update **(表名) set 字段1 = 值1;
第二条是修改某一字段下的所有值
5)常用数据处理函数
sum(); 求和 select sum(字段x) from **(表名);avg(); 求平均值 select avg(字段x) from **(表名);max(); 求最大值 select max(字段x) from **(表名);min(); 求最小值 select min(字段x) from **(表名);count(); 记录数 select count(字段x) from **(表名);/select max(*) from **(表名);在某字段条件下使用函数 select 函数名() from **(表名) where 字段x = 值x;
**
7.总结
**
以上就是我所学的全部操作,本人能力有限,可能有很多地方未提及,读者可以自行百度学习。学习是一个循循渐进的过程,是靠慢慢积累的。目前,众多企业所用的都是利用拥有可视化界面的图形化工具去操作数据库,使用DOS来操作的已经不多见了,但这是基础,只有掌握好了基础才能学到更深的东西。MySQL使用 C和 C++编写,并使用了多种编译器进行测试,其源代码的具有很好的可移植性,并且他为Python(我的所爱), C、C++,Java,PHP等多种编程语言提供了 API,支持多线程,可以充分的利用 CPU 资源。俗话说,“技多不压身”,学好数据库这一门技术没有坏处,带给我们的只有好处。路漫漫其修远兮,吾将上下而求索。学习是永无止境的,加油!
来源地址:https://blog.csdn.net/qq_51208442/article/details/122543146