• linux系统环境下mysql安装和基本命令学习


    此篇文章为蓝桥云课--MySQL的学习记录

    块引用部分为自己的实验部分,其余部分是课程自带的知识,链接如下:

    MySQL 基础课程_MySQL - 蓝桥云课

    本课程为 SQL 基本语法及 MySQL 基本操作的实验,理论内容较少,动手实践多,可以快速上手 SQL 及 MySQL 服务。

    一、基础安装和介绍

    1.1 实验内容

    本次课程对数据库、SQL、MySQL 做了简单介绍,并介绍了 Ubuntu Linux 下 MySQL 的安装。完成本实验,可以对这门课程和 MySQL 有了简单的了解,接下来的实验也将在此基础上进行。

    1.2 实验知识点
    • 数据库的概念
    • MySQL 的安装
    1.3 实验环境

    课程使用的实验环境为 Ubuntu Linux 16.04 64 位版本。实验中会用到程序:

    • Mysql 5.7.22
    • Xfce 终端
    • Gedit
    2.1 数据库和 SQL 概念

    数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它的产生距今已有六十多年。随着信息技术和市场的发展,数据库变得无处不在:它在电子商务、银行系统等众多领域都被广泛使用,且成为其系统的重要组成部分。

    数据库用于记录数据,使用数据库记录数据可以表现出各种数据间的联系,也可以很方便地对所记录的数据进行增、删、改、查等操作。

    结构化查询语言(Structured Query Language)简称 SQL,是上世纪 70 年代由 IBM 公司开发,用于对数据库进行操作的语言。更详细地说,SQL 是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,同时也是数据库脚本文件的扩展名。

    2.2 MySQL 介绍

    MySQL 是一个 DBMS(数据库管理系统),由瑞典 MySQLAB 公司开发,目前属于 Oracle 公司,MySQL 是最流行的关系型数据库管理系统(关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据)。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发者都选择 MySQL 作为网站数据库。MySQL 使用 SQL 语言进行操作。

    检查是否安装mysql

    先要检查 Linux 系统中是否已经安装了 MySQL,输入命令尝试打开 MySQL 服务:

    sudo service mysql start
    

    输入密码后,如果出现以下提示,则说明系统中已经安装有 MySQL:

    1-01

    如果提示是这样的,则说明系统中没有 MySQL,需要继续安装:

    mysql: unrecognized service

    我试了一下是这样的结果

    在 Ubuntu 上安装 MySQL,最简单的方式是在线安装。只需要几行简单的命令( # 号后面是注释):

    1. #安装 MySQL 服务端、核心程序
    2. sudo apt-get install mysql-server
    3. #安装 MySQL 客户端
    4. sudo apt-get install mysql-client

    在安装过程中会提示确认输入 YES,设置 root 用户密码(之后也可以修改)等,稍等片刻便可安装成功。

    安装结束后,用命令验证是否安装并启动成功:

    sudo netstat -tap | grep mysql
    

    如果出现如下提示,则安装成功:

    1-02

    此时,可以根据自己的需求,用 gedit 修改 MySQL 的配置文件(my.cnf),使用以下命令:

    sudo gedit /etc/mysql/my.cnf
    

    至此,MySQL 已经安装、配置完成,可以正常使用了。

    1). 打开 MySQL:

    使用如下两条命令,打开 MySQL 服务并使用 root 用户登录:

    1. # 启动 MySQL 服务
    2. sudo service mysql start
    3. # 使用 root 用户登录,实验楼环境的密码为空,直接回车就可以登录
    4. mysql -u root

    执行成功会出现如下提示:

    1-03

    我的运行

    2). 查看数据库:

    使用命令 show databases;,查看有哪些数据库(注意不要漏掉分号 ;):

    1-04

    可见已有三个数据库,分别是 “information-schema”、“mysql”、“performance-schema”。

    我的运行

    3). 连接数据库:

    选择连接其中一个数据库,语句格式为 use <数据库名>,这里可以不用加分号,这里我们选择 information_schema 数据库:

    use information_schema
    

    1-05

    4). 查看表:

    使用命令 show tables; 查看数据库中有哪些表(注意不要漏掉“;”):

    1-06

    5). 退出:使用命令 quit 或者 exit 退出 MySQL。 

     我的使用

     

    二、创建数据库并插入数据

    1.1 实验内容

    本次课程将介绍 MySQL 新建数据库,新建表,插入数据以及基本数据类型的相关知识。本节实验将创建一个名为 mysql_shiyan 的数据库,其中有两张表 employee 和 department

    1.2 实验知识点
    • 基本数据类型
    • 插入数据
    1.3 实验环境

    课程使用的实验环境为 Ubuntu Linux 16.04 64 位版本。实验中会用到程序:

    • Mysql 5.7.22
    • Xfce 终端

    实验准备

    在使用实验楼 Linux 环境进行本次实验之前,先用以下两条命令打开 MySQL 服务并使用 root 登录:

    1. # 打开 MySQL 服务
    2. sudo service mysql start
    3. #使用 root 用户登录,密码为空
    4. mysql -u root

    如果你理解了上述代码的含义, -u 和 root 之间可以不要空格

    后续的实验都在 MySQL 的控制台输入命令进行操作。

    3.1新建数据库

    首先,我们创建一个数据库,给它一个名字,比如 mysql_shiyan,以后的几次实验也是对 mysql_shiyan 这个数据库进行操作。 语句格式为 CREATE DATABASE <数据库名字>;,(注意不要漏掉分号 ;),前面的 CREATE DATABASE 也可以使用小写,具体命令为:

    CREATE DATABASE mysql_shiyan;
    

    创建成功后输入命令 show databases; (注意不要漏掉;)检查一下:

    01

    在大多数系统中,SQL 语句都是不区分大小写的,因此以下语句都是合法的:

    1. CREATE DATABASE name1;
    2. create database name2;
    3. CREATE database name3;
    4. create DAtabaSE name4;

    但是出于严谨,而且便于区分保留字(保留字(reserved word):指在高级语言中已经定义过的字,使用者不能再将这些字作为变量名或过程名使用。)和变量名,我们把保留字大写,把变量和数据小写。

    3.2 连接数据库

    接下来的操作,就在刚才创建的 mysql_shiyan 中进行,由于一个系统中可能会有多个数据库,要确定当前是对哪一个数据库操作,使用语句 use

    use mysql_shiyan;
    

    如图显示,则连接成功:

    02

    输入命令 show tables; 可以查看当前数据库里有几张表,现在 mysql_shiyan 里还是空的:

    03

    3.3 数据表

    数据表(table)简称表,它是数据库最重要的组成部分之一。数据库只是一个框架,表才是实质内容。

    而一个数据库中一般会有多张表,这些各自独立的表通过建立关系被联接起来,才成为可以交叉查阅、一目了然的数据库。如下便是一张表:

    IDnamephone
    01Tom110110110
    02Jack119119119
    03Rose114114114
    3.4 新建数据表 

    在数据库中新建一张表的语句格式为:

    1. CREATE TABLE 表的名字
    2. (
    3. 列名a 数据类型(数据长度),
    4. 列名b 数据类型(数据长度),
    5. 列名c 数据类型(数据长度)
    6. );

    我们尝试在 mysql_shiyan 中新建一张表 employee,包含姓名,ID 和电话信息,所以语句为:

    CREATE TABLE employee (id int(10),name char(20),phone int(12));
    

    然后再创建一张表 department,包含名称和电话信息,想让命令看起来更整洁,你可以这样输入命令:

    04

    这时候再 show tables; 一下,可以看到刚才添加的两张表:

    05

    3.5 数据类型

    在刚才新建表的过程中,我们提到了数据类型,MySQL 的数据类型和其他编程语言大同小异,下表是一些 MySQL 常用数据类型:

    数据类型大小(字节)用途格式
    INT4整数
    FLOAT4单精度浮点数
    DOUBLE8双精度浮点数
    ENUM--单选,比如性别ENUM('a','b','c')
    SET--多选SET('1','2','3')
    DATE3日期YYYY-MM-DD
    TIME3时间点或持续时间HH:MM:SS
    YEAR1年份值YYYY
    CHAR0~255定长字符串
    VARCHAR0~255变长字符串
    TEXT0~65535长文本数据

    整数除了 INT 外,还有 TINYINT、SMALLINT、MEDIUMINT、BIGINT。

    CHAR 和 VARCHAR 的区别: CHAR 的长度是固定的,而 VARCHAR 的长度是可以变化的,比如,存储字符串 “abc",对于 CHAR(10),表示存储的字符将占 10 个字节(包括 7 个空字符),而同样的 VARCHAR(12) 则只占用 4 个字节的长度,增加一个额外字节来存储字符串本身的长度,12 只是最大值,当你存储的字符小于 12 时,按实际长度存储。

    ENUM 和 SET 的区别: ENUM 类型的数据的值,必须是定义时枚举的值的其中之一,即单选,而 SET 类型的值则可以多选。

    想要了解更多关于 MySQL 数据类型的信息,可以参考下面两篇博客。

    3.6 插入数据

    刚才我们新建了两张表,使用语句 SELECT * FROM employee; 查看表中的内容,可以看到 employee 表中现在还是空的:

    06

    刚才使用的 SELECT 语句将在下一节实验中详细介绍

    我们通过 INSERT 语句向表中插入数据,语句格式为:

    INSERT INTO 表的名字(列名a,列名b,列名c) VALUES(值1,值2,值3);
    

    我们尝试向 employee 中加入 Tom、Jack 和 Rose:

    1. INSERT INTO employee(id,name,phone) VALUES(01,'Tom',110110110);
    2. INSERT INTO employee VALUES(02,'Jack',119119119);
    3. INSERT INTO employee(id,name) VALUES(03,'Rose');

    你已经注意到了,有的数据需要用单引号括起来,比如 Tom、Jack、Rose 的名字,这是由于它们的数据类型是 CHAR 型。此外 VARCHAR,TEXT,DATE,TIME,ENUM 等类型的数据也需要单引号修饰,而 INT,FLOAT,DOUBLE 等则不需要。

    第一条语句比第二条语句多了一部分:(id,name,phone) 这个括号里列出的,是将要添加的数据 (01,'Tom',110110110) 其中每个值在表中对应的列。而第三条语句只添加了 (id,name) 两列的数据,所以在表中 Rose 的 phone 为 NULL

    现在我们再次使用语句 SELECT * FROM employee; 查看 employee 表,可见 Tom 和 Jack 的相关数据已经保存在其中了:

    07

    总结

    经过本次实验,我们已经有了一个名为 mysql_shiyan 的数据库,其中有两张表,我们已经向其中插入了一些数据。务必完整地操作一遍,以熟练 SQL 语句的使用。下一节我们将进入 SQL 约束的学习。

    课后习题

    新建一个名为 library 的数据库,包含 book、reader 两张表,根据自己的理解安排表的内容并插入数据。保存截图。

    我的尝试

  • 相关阅读:
    rust学习(手动写一个线程池)
    SpringBoot-热部署
    LeetCode二叉树系列——144.二叉树的最大深度
    设置Oracle表空间只读
    【微机原理及接口技术】中断系统
    【COMP305 LEC 5】
    SwipeRefreshLayout和TextView滑动冲突的暴力解决方法
    Android中简单实现Spinner的数据绑定
    基于Xml方式Bean的配置-初始化方法和销毁方法
    mysql学习笔记1:忘记密码
  • 原文地址:https://blog.csdn.net/m0_69724592/article/details/134425823