简而言之,数据库是一种用于管理数据的软件工具,其应用非常广泛,从个人电脑上的小型应用到大型企业级应用都可以使用数据库进行数据管理。数据库可以帮助用户更好地组织和管理数据,并提供快速、可靠、安全的数据访问。
其有多种类型,包括关系型数据库、非关系型数据库、面向对象数据库等。关系型数据库是最常见的类型,其中的数据以表格的形式组织,可以通过 SQL 查询语言进行操作和检索。非关系型数据库则更适合处理大量的非结构化数据,例如文本、图像和视频。
由于本文旨在记录mysql学习中一些基础操作,方便日后复习,这里就不再过多介绍其它类型的数据库,这儿先简单罗列几种,方便一些朋友查用:
1.常见的关系型数据库包括:
MySQL:开源的关系型数据库,广泛应用于各种Web应用程序中。
Oracle:一款商业级的关系型数据库,提供了强大的数据管理和分析功能。
Microsoft SQL Server:由微软开发的关系型数据库,常用于企业级应用中。
2.常见的非关系型数据库包括:
MongoDB:一种面向文档的数据库,可以存储和查询非结构化的数据。
Redis:一种基于内存的数据存储,用于快速地存储和检索键值对等简单数据结构。
Cassandra:一种高可用性、分布式的数据库,适用于大规模的数据存储和查询。
3.面向对象数据库(Object-Oriented Database)是一种特殊的数据库类型,它的数据存储方式与面向对象编程语言中的对象模型类似。常见的面向对象数据库包括:
db4o:一种基于Java和.NET平台的面向对象数据库,支持对象存储、索引和查询。
ObjectStore:一种商业级的面向对象数据库,支持多种编程语言和平台。
MySQL的历史可以追溯到1995年,当时由瑞典开发者创建。MySQL最初是一个轻量级的开源数据库,但随着时间的推移,它变得越来越流行,逐渐成为企业级应用程序的首选数据库之一。在其发展过程中,MySQL不断增加新功能、提高性能和稳定性,以适应不断增长的数据需求和用户需求。2010年,Oracle收购了MySQL,并将其纳入了自己的产品线。MySQL仍然是最受欢迎的关系型数据库之一,拥有庞大的用户群和强大的社区支持。
废话不多说,直接记录我学习了解的一些基础操作,首先,对于初学者,这里推荐大家在安装mysql时,顺便安装上MySQL Workbench。下面斜体是MySQL Workbench的一些简单介绍,可以简单里了解一下,总结起来就是,这个工具特别适合初学者学习,因为它有图形化界面。
MySQL Workbench是一个免费的数据库设计和管理工具,由MySQL AB开发。它提供了一个图形界面,用于设计、管理和维护MySQL数据库。MySQL Workbench允许用户通过可视化界面创建、修改和删除表、视图、存储过程、函数和触发器等数据库对象,还可以执行查询和管理数据库用户权限。MySQL Workbench支持多种操作系统,包括Windows、macOS和Linux。它是一个非常流行的MySQL数据库工具,被广泛用于开发和管理MySQL数据库。
前言:在使用MySQL Workbench中,一般来说,习惯上会将系统命令大写,当然小写也可以,在命名自己所要创建的表以及表的属性时,一半会在命名时加上``符号,就是键盘ESC下面英文状态下的输入。
CREATE DATABASE school;
这里就创建了名为school的数据库,可以看到在schemas栏当中就会出现school的数据库
当然,有创建必然伴随着删除,删除语法如下:
DROP DATABASE database_name;
database_name换成自己创建的数据库名字就行了。
通过上面的命令,我们已经有了一个名为school的数据库,那么,接下来,就通过这一个数据库去记录数据库的一些基础操作。
在开始使用之前,这儿先简单介绍一下数据库的一些数据类型,以及语法,为后面学习创建表时作铺垫:
INT -- 整数
DECIMAL(3,2) -- 有小数点的数,3表示该数总共几位,2表示小数点后的位数
VARCHAR(10) -- 字串,10表示字串位数
BLOB -- 图片,影片,档案等
DATE -- 'YYYY-MM-DD',日期,例如2023-04-04
TIMESTAMP -- 'YYYY-MM-DD HH:MM:SS'记录时间
注意,在你操作数据库之前,你先要决定要用哪一个数据库,一个命令搞定:
USE school;
既然数据库以school命名 ,这里先做一个简单假设,学校里面有学生和老师,这是最主要的,那么,不妨以此为基础,去创建这个数据库,首先创建学生表和老师表,以学生表为例,包含的信息主要有学号、姓名、性别、年龄、班级。在操作之前,可以考虑一下,以上哪一种信息是独一无二的,很明显,那就是学号,那这个信息有什么用,这里暂且不谈。
先创建学生的表:
create table `student`(
`student_id` int ,
`name` varchar(20),
`sex` varchar(1),
`age` int,
`class` varchar(20)
);
和数据库一样,创建也伴随着删除,那如何删除这个表,命令大同小异:
drop table `student`;
现在,存在一个学生表,那么,我们就可以向里面存数据了,注意和上述表中类型对应,具体操作如下:
insert into `student` values(23004,'小黄','F',16,'高一一班');
insert into `student`(`student_id`,`name`,`sex`,`age`,`class`) values(23004,'小黄','F',16,'高一一班');
上述两个语句等价,按照同样的方式,修改不同的信息,就可以添加学生的信息了。
现在,假设我们已经创建好了这个表,并且,已经录入了学生的信息,以两个学生为例,查看数据表的所有内容:
select *from `student`;
这里已经简单的用到了数据的查询功能,展示如下:
同样,假设学生小红毕业,要将其数据删除,可以利用下面命令实现:
delete from `student`
where `name`='小红';
这时,突然要求添加一列学生家庭住址信息:address,当然,这个表数据少,可以删除后,重新创建新表,加上这个信息,但是,当数据比较多时,明显行不通,这时,可以用下面这个命令,为表添加新属性:
alter table `student` add `address` varchar(30);
同样,伴随增加项也会有删除项,比如,我们不需要学生信息中的年龄信息,如何删除,操作命令如下:
alter table `student` drop column `age`;
这时,再用上面的select命令,你会发现,age项已经被删除,出现了address项,但值为null,为此,我们需要将null值改为所需的信息,这儿其实就是涉及到数据库数据的改的功能,操作方法如下:
update `student`
set `address`='火星'
where `student_id`=23005;
该语句看英文字母的字面意思就可以理解,解释为:更新student表中的student_id为23005的address值为火星。
其实,可以发现,通过这一个简单例子,就可以大致熟悉数据的增删查改的一些基础操作,增加数据总是伴随着删除和修改功能,查的功能即从数据库中取得想要的数据,该操作稍多一点,在后面再总结,这一节就先总结到这里。
1.主要介绍数据的查询功能,比如聚合函数aggregate function、万用字元wildcard以及联集union等;
2.创建表时可添加的一些约束条件;
3.数据表中primary key以及foreign key;
后面的总结也还是会围绕school这个数据库展开。