无论是运维、开发、测试,还是架构师,数据库技术都是加薪的必备神器。MySQL由于其免费和强大的性能,是目前应用最广泛的数据库产品,也是入门门槛最低的数据库产品之一。更重要的
无论是运维、开发、测试,还是架构师,数据库技术都是加薪的必备神器。
MySQL由于其免费和强大的性能,是目前应用最广泛的数据库产品,也是入门门槛最低的数据库产品之一。更重要的是,掌握MySQL会为你以后学习其他数据库产品打下坚实的基础。
今天给大家带来的是MySQL数据库高级实用课程,将重点介绍MySQL的一些高级特性以及数据库查询的性能优化。学完本课程的学生将掌握数据库操作与维护、多表联合查询、日志使用等数据库高级知识。
课程地址:文章底部“了解更多”
我们来学习一下MySQL数据库和数据表的基本操作:
实验导论在本节中,您将学习如何启动和连接服务器,如何操作数据库,如何创建数据并向数据表中添加数据,以及如何检索表中的数据。
学习点MySQL 的安装与启动MySQL 的连接与断开数据库的操作数据表的操作
MySQL简介MySQL是一个关系数据库管理系统,由瑞典的MySQLAB公司开发,现在属于Oracle公司。MySQL是最流行的关系数据库管理系统,MySQL是Web应用中最好的RDBMS(关系数据库管理系统)应用软件之一。
由于配置不同,在安装MySQL的过程中可能会出现一些问题。所以,我就不解释安装过程了。需要本地安装的同学可以在Windows和Linux的官方页面安装。
开始连接服务器。实验用的IDE已经给大家安装了MySQL,不需要自己安装。请打开桌面环境,点击桌面上的Xfce终端。
如果觉得终端窗口太小,可以在视图中设置全屏模式。在编辑中,您可以根据自己的喜好设置字体大小、背景颜色和代码颜色。
首先启动服务器,输入如下所示的命令。
sudo service mysql start
运行结果如下图所示,表明服务器启动成功。
然后连接到服务器。为了连接到服务器,在调用mysql时,通常需要提供一个MySQL用户名,可能还需要一个密码。这里我们使用root连接服务器(密码环境设置为空,所以不需要输入密码),输入以下命令连接服务器。
mysql -u root
下图显示服务器成功启动。
成功连接服务器后,可以在MySQL >中下载:在提示符下输入QUIT或EXIT断开连接。
数据库操作首先,使用create database:的语法格式创建一个数据库。
例如,我们创建一个名为mysql_test的数据库。
CREATE DATABASE mysql_test;
创建后的输出如下,表明创建是成功的。
使用显示数据库查看所有现有数据库。
SHOW DATABASES;
我们可以在数据库表中看到mysql_test的名字。
当创建成功后,我们需要利用:只有在执行该命令后,才能使用数据库。
USE mysql_test
如果不想要这个数据库,可以使用drop database:删除指定的数据库。
例如,删除刚刚创建的名为mysql_test的数据库。
DROP DATABASE mysql_test;
数据表的操作
数据库就像一个衣柜,衣柜里的小隔间就像空的数据表。不同类型的衣服放在每个隔间里,就像我们给数据表添加数据一样。接下来,我们来学习如何使用数据表。
现在,我们使用create table:在数据库中创建一个数据表。
创建数据表的语法格式如下。
CREATE TABLE <表名>(<字段名1> <数据类型>(<数据长度>),<字段名2> <数据类型>(<数据长度>),....<字段名n> <数据类型>(<数据长度>));
例如,我们创建一个名为gradesystem的数据库。在这个数据库中,我们创建了一个名为student的数据表,其中包含学号、学名和性别信息。
# 创建名为 student 的数据表,包含 id,stu_name,genderCREATE TABLE student(id int(10),stu_name char(20),gender char(10));
如下图所示,表示创建成功。
然后创建一个名为mark的表,其中包含学号、课程名称和分数。为了让代码看起来更整洁美观,可以分行输入,如下图。
# 创建名为 mark 的数据表CREATE TABLE mark( id int(10), # 学生 id name char(20), # 课程名 grade int(10) # 课程分数);
创建数据表后,使用SHOW TABLES查看它,我们可以看到刚刚创建的两个数据表的名称。
SHOW TABLES; # 查询所有数据表
使用describe:查看创建数据表的完整信息。
比如我们来看看数据表学生的完整信息。
DESCRIBE student;
从上图中,我们可以看到刚刚创建的三个字段名称。int和char是MySQL的两种数据类型。MySQL的数据类型有很多。不熟悉的可以看看MySQL的数据类型。
在图中,所有的Null都是YES,因为我们没有指定列名不是空。如果我们指定列名不为NULL,将显示NO,如下所示。
到目前为止,我们已经在数据库中建立了两个数据表。然后我们需要向表中添加数据。向表中添加数据有两种方法:加载数据和插入。
LOAD DATA 是一次可以添加多条数据,可以把文本文件中的数据直接加载到数据表中。INSERT 是一次增加一条新的数据。
使用LOAD DATA加载数据,语句格式为:
LOAD DATA INFILE '加载数据文件的路径' INTO TABLE 表名;
使用INSERT语句将数据插入表中。该语句的格式为:
INSERT INTO 表的名字(字段名1,字段名2,字段名3) VALUES(值1,值2,值3);
例如,我们使用INSERT语句分别向student和mark表添加数据。
四条完整的学生信息数据被插入到学生表中,如下所示。
INSERT INTO student(id,stu_name,gender) VALUES(01,'Jack','male');INSERT INTO student(id,stu_name,gender) VALUES(02,'Candy','male');INSERT INTO student(id,stu_name,gender) VALUES(01,'Rose','Female');INSERT INTO student VALUES(04,'Ann','Famale');
值得注意的是,当我们插入的数据不完整时,列名的相应位置会显示为NULL。我们尽量不在表中留下空值,因为空值会降低查询的性能。我们可以用数字0代替NULL,对空值的处理会在后面的实验中说明。
插入数据后,我们使用SELECT语句查看表中的完整信息。格式为:select * from
:。
然后将数据插入标记表,如下所示。
INSERT INTO mark(id,name,grade) VALUES(01,'C++',90);INSERT INTO mark VALUES(02,'C++',80);INSERT INTO mark VALUES(03,'JAVA',90);INSERT INTO mark VALUES(04,'JAVA',50);
从代码中我们可以知道,我们需要使用引号来修饰CHAR数据,就像名字一样。除了CHAR类型,VARCHAR、TEXT、DATE、TIME、ENUM等类型的数据也需要用单引号修饰。
使用SELECT语句查看数据是否成功添加到数据表中。
数据表的查询操作
检索特定行的数据。检索特定行的数据就是通过条件限制查询一行或多行符合设定条件的数据。
我们使用select * from
:其中& lt条件>:查询特定行的数据。
例如,让我们在学生表中查询名为Ann的学生的信息。
SELECT * FROM student WHERE stu_name = 'Ann';
检索特定列的数据。
检索特定列的数据就是通过指定字段名来查询表中某些列的数据。我们可以使用select
:FROM & ltTable name >:要进行查询,可以在这里写多个列名,用逗号分隔。
例如,让我们在学生表中查找所有学生的姓名。
SELECT stu_name FROM student;
同时检索特定行和列的数据。
同时检索特定行和列的数据相当于前两者的组合。我们可以使用select:FROM <表名>:其中& lt条件>:同时选择特定行和列的数据。
比如我们可以查询分数线表中分数低于90分的学生的分数。
SELECT grade FROM mark WHERE grade < 90;
检索数据
我们可以对数据进行分类和搜索。比如在搜索学生成绩的时候,我们可以对学生成绩进行排序,这样查询结果更清晰。
使用order by
:它可以对一列或多列数据进行排序。默认情况下,这种排序是升序的,之后我们可以添加关键字DESC将其改为降序。
例如,在分数表中对学生的成绩进行排序。
SELECT grade FROM mark ORDER BY grade;
最后,我们可以删除不需要的数据表。您可以使用drop table:删除整个表,包括表的数据和结构。
例如,我们删除学生表。
如果想保留表的结构,只清除空表中的数据,那么我们可以使用truncate table:。
您也可以使用delete from:WHERE <段名>:删除指定行的数据。
实验总结在本节中,我们学习了如何启动和连接MySQL服务器,创建和使用数据库,创建数据表并向其中添加数据,以及一些查询表中数据的SELECT语句,包括行检索、列检索、排序检索等等。