‘’数据库基础、MariaDB服务部署、库表基本管理、数据类型‘’经典案例

案例1:部署MariaDB服务器
案例2:使用mysql连接工具
案例3:库的基本操作
案例4:表格创建及查询
案例5:删除表
案例6:复制表
案例7:字符型字段应用
案例8:数值型字段应用

1 案例1:部署MariaDB服务器
1.1 问题

本例要求在CentOS 7虚拟机上部署MariaDB数据库服务器,完成下列任务:

1)安装mariadb-server、mariadb软件包

2)启动mariadb服务,并设置开机自启,确认服务状态

3)将数据库管理用户 root 的密码设为 [email protected]

4)将默认字符集设为utf8,以支持中文
1.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:安装 mariadb-server、mariadb 软件包

[[email protected] ~]# yum  -y  install  mariadb-server  mariadb      //安装
.. ..

步骤二:启动 mariadb 服务,并设置开机自启,确认服务状态

1)启动服务

[[email protected] ~]# systemctl  restart  mariadb              //启动数据库服务
[[email protected] ~]# systemctl  enable  mariadb                 //设置开机自启

2)查看服务状态

[[email protected] ~]# systemctl  status  mariadb
● mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; .. .. )
   Active: active (running) since 日 2018-09-23 15:54:57 CST; 2min 29s ago
 Main PID: 82899 (mysqld_safe)
.. ..

3)检查监听端口

[[email protected] ~]# netstat  -nl  |  grep  :3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*        LISTEN      83061/mysqld

步骤三:将数据库管理用户 root 的密码设为 [email protected]

[[email protected] ~]# mysqladmin  -uroot  password  ‘[email protected]‘
                                            //因旧密码为空,可以省略 -p旧密码
[[email protected] ~]# 

步骤四:将默认字符集设为utf8,以支持中文

[[email protected] ~]# vim  /etc/my.cnf
[mysqld]
character_set_server=utf8                          //默认字符集utf8
.. ..
[[email protected] ~]# systemctl  restart  mariadb          //重启以生效

2 案例2:使用mysql连接工具
2.1 问题

本例要求以案例1的结果为基础,使用mysql命令工具连接本机的MariaDB数据库服务器,完成下列任务:

1)以管理用户root登入

2)列出有哪些库

3)退出MariaDB>交互界面,返回Linux命令行
2.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:以管理用户root登入

[[email protected] ~]# mysql  -uroot  [email protected]
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
MariaDB [(none)]>                                     //交互式管理界面

步骤二:列出有哪些库

MariaDB [(none)]> SHOW DATABASES;                      //列出有哪些库
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| zabbix             |
+--------------------+
5 rows in set (0.00 sec)
MariaDB [(none)]>

步骤三:退出MariaDB>交互界面,返回Linux命令行

MariaDB [(none)]> QUIT;                                 //退出管理
Bye
[[email protected] ~]#                                          //已返回命令行

3 案例3:库的基本操作
3.1 问题

本例要求熟悉MariaDB库的基本管理操作,完成下列任务:

1)列出MariaDB服务器上有哪些库

2)选择mysql库,列出此库中有哪些表,找到 user 表

3)创建名为 studb 的库,确认结果

4)删除名为 test 的库,确认结果
3.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:列出MariaDB服务器上有哪些库

MariaDB [(none)]> SHOW  DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
| zabbix             |
+--------------------+
5 rows in set (0.00 sec)
MariaDB [(none)]>

步骤二:选择mysql库,列出此库中有哪些表,找到 user 表

MariaDB [(none)]> USE  mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [mysql]> SHOW  TABLES;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| servers                   |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |                              //用户账号表
+---------------------------+
24 rows in set (0.00 sec)
MariaDB [(none)]>

步骤三:创建名为 studb 的库,确认结果

MariaDB [(mysql)]> CREATE  DATABASE  studb;
Query OK, 1 row affected (0.00 sec)
MariaDB [(mysql)]> SHOW  DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| studb              |
| test               |
| zabbix             |
+--------------------+
6 rows in set (0.00 sec)
MariaDB [mysql]> 

步骤四:删除名为 test 的库,确认结果

MariaDB [mysql]> DROP  DATABASE  test;
Query OK, 0 rows affected (0.00 sec)
MariaDB [mysql]> SHOW  DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| studb              |
| zabbix             |
+--------------------+
5 rows in set (0.00 sec)
MariaDB [mysql]> 

4 案例4:表格创建及查询
4.1 问题

本例要求学会在MariaDB数据库中创建及查询表格,参考如图1所示表格及数据,

完成下列任务:

1)在 studb 库中创建 base 表

2)检查表格的列设置

3)向表格 base 中录入前3条数据记录

4)确认表格 base 的内容
4.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:在 studb 库中创建 base 表

MariaDB [mysql]> USE  studb;
Database changed
MariaDB [studb]> CREATE  TABLE  base(学号  char(13), 姓名  varchar(20), 性别  char(1), 手机号  char(13), 通信地址  varchar(48));
Query OK, 0 rows affected (0.00 sec)
MariaDB [studb]> 

步骤二:检查表格的列设置

MariaDB [(studb)]> DESC  base;
+--------------+-------------+------+-----+---------+-------+
| Field        | Type        | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| 学号         | char(13)    | YES  |     | NULL    |       |
| 姓名         | varchar(20) | YES  |     | NULL    |       |
| 性别         | char(1)     | YES  |     | NULL    |       |
| 手机号       | char(13)    | YES  |     | NULL    |       |
| 通信地址     | varchar(48) | YES  |     | NULL    |       |
+--------------+-------------+------+-----+---------+-------+
5 rows in set (0.01 sec)
MariaDB [studb]> 

步骤三:向表格 base 中录入前3条数据记录

MariaDB [studb]> INSERT  INTO  base  VALUES(‘NTD2020110001‘, ‘郭靖‘, ‘男‘, ‘13145201314‘, ‘东海桃花岛‘);
Query OK, 1 row affected (0.00 sec)
MariaDB [studb]> INSERT  INTO  base  VALUES(‘NTD2020110002‘, ‘黄蓉‘, ‘女‘, ‘13145201413‘, ‘东海桃花岛‘);
Query OK, 1 row affected (0.00 sec)
MariaDB [studb]> INSERT  INTO  base  VALUES(‘NTD2020110003‘, ‘华筝‘, ‘女‘, ‘13705666777‘, ‘蒙古大营‘);
Query OK, 1 row affected (0.00 sec)
MariaDB [studb]>

步骤四:确认表格 base 的内容

MariaDB [(studb)]> SELECT  *  FROM  base;
+---------------+--------+--------+-------------+-----------------+
| 学号          | 姓名   | 性别   | 手机号      | 通信地址        |
+---------------+--------+--------+-------------+-----------------+
| NTD2020110001 | 郭靖   | 男     | 13145201314 | 东海桃花岛      |
| NTD2020110002 | 黄蓉   | 女     | 13145201413 | 东海桃花岛      |
| NTD2020110003 | 华筝   | 女     | 13705666777 | 蒙古大营        |
+---------------+--------+--------+-------------+-----------------+
3 rows in set (0.00 sec)
MariaDB [studb]> 

    5 案例5:删除表

5.1 问题

本例要求学会在MariaDB数据库中删除表数据、删除表,完成下列任务:

1)删除 base 表中的所有数据记录,确认结果

2)删除整个 base 表,确认结果

3)重新建立 base 表,并录入全部5条数据记录

表格数据如图-2所示。


5.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:删除 base 表中的所有数据记录,确认结果

MariaDB [studb]> DELETE  FROM  base;
Query OK, 3 rows affected (0.00 sec)
MariaDB [studb]> SELECT  *  FROM  base;
Empty set (0.00 sec)
MariaDB [studb]> 

步骤二:删除整个 base 表,确认结果

MariaDB [studb]> DROP  TABLE  base;
Query OK, 0 rows affected (0.00 sec)
MariaDB [studb]> SELECT  *  FROM  base;
ERROR 1146 (42S02): Table ‘studb.base‘ doesn‘t exist
MariaDB [studb]>

步骤三:重新建立 base 表,并录入全部5条数据记录

MariaDB [studb]> CREATE  TABLE  base(学号  char(13), 姓名  varchar(20), 性别  char(1), 手机号  char(13), 通信地址  varchar(48));
Query OK, 0 rows affected (0.00 sec)
MariaDB [studb]> INSERT  INTO  base  VALUES(‘NTD2020110001‘, ‘郭靖‘, ‘男‘, ‘13145201314‘, ‘东海桃花岛‘);
Query OK, 1 row affected (0.00 sec)
MariaDB [studb]> INSERT  INTO  base  VALUES(‘NTD2020110002‘, ‘黄蓉‘, ‘女‘, ‘13145201413‘, ‘东海桃花岛‘);
Query OK, 1 row affected (0.00 sec)
MariaDB [studb]> INSERT  INTO  base  VALUES(‘NTD2020110003‘, ‘华筝‘, ‘女‘, ‘13705666777‘, ‘蒙古大营‘);
Query OK, 1 row affected (0.00 sec)
MariaDB [studb]> INSERT  INTO  base  VALUES(‘NTD2020110004‘, ‘洪七公‘, ‘男‘, ‘13888888888‘, ‘太湖北丐帮总舵‘);
Query OK, 1 row affected (0.01 sec)
MariaDB [studb]> INSERT  INTO  base  VALUES(‘NTD2020110005‘, ‘欧阳锋‘, ‘男‘, ‘18777777777‘, ‘西域白驼山庄‘);
Query OK, 1 row affected (0.00 sec)
MariaDB [studb]> 

6 案例6:复制表
6.1 问题

本例要求学会在MariaDB数据库中复制表格,完成下列任务:

1)复制studb库中的base表,建立新表sd(包括原base表中的所有数据)

2)从mysql库中复制user表,建立新表dbusers

新表dbusers存放到studb库中
只需要复制表结构,不要包括原表users中的数据

6.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:复制studb库中的base表,建立新表sd(包括原base表中的所有数据)

1)复制表格

MariaDB [studb]> CREATE  TABLE  studb.sd  SELECT  *  FROM  studb.base;
Query OK, 5 rows affected (0.00 sec)
Records: 5  Duplicates: 0  Warnings: 0
MariaDB [studb]>

2)确认结果

MariaDB [studb]> SELECT  *  FROM  studb.sd;                  //检查表数据
+---------------+-----------+--------+-------------+-----------------------+
| 学号          | 姓名      | 性别   | 手机号      | 通信地址              |
+---------------+-----------+--------+-------------+-----------------------+
| NTD2020110001 | 郭靖      | 男     | 13145201314 | 东海桃花岛            |
| NTD2020110002 | 黄蓉      | 女     | 13145201413 | 东海桃花岛            |
| NTD2020110003 | 华筝      | 女     | 13705666777 | 蒙古大营              |
| NTD2020110004 | 洪七公    | 男     | 13888888888 | 太湖北丐帮总舵        |
| NTD2020110005 | 欧阳锋    | 男     | 18777777777 | 西域白驼山庄          |
+---------------+-----------+--------+-------------+-----------------------+
5 rows in set (0.00 sec)
MariaDB [studb]> 

步骤二:从mysql库中复制user表,建立新表mysql.dbusers的结构

1)复制表格

MariaDB [studb]> CREATE  TABLE  studb.dbusers  LIKE  mysql.user;
Query OK, 0 rows affected (0.00 sec)
MariaDB [studb]>

2)确认结果

MariaDB [studb]> CREATE  TABLE  studb.dbusers  LIKE  mysql.user;
Query OK, 0 rows affected (0.00 sec)
MariaDB [studb]> SELECT  *  FROM  studb.dbusers;              //检查表数据
Empty set (0.00 sec)
MariaDB [studb]> DESC  studb.dbusers;                          //检查表结构
+------------------------+-----------------------------------+------+-----+---------+-------+
| Field                  | Type                              | Null | Key | Default | Extra |
+------------------------+-----------------------------------+------+-----+---------+-------+
| Host                   | char(60)                          | NO   | PRI |         |       |
| User                   | char(16)                          | NO   | PRI |         |       |
| Password               | char(41)                          | NO   |     |
.. ..
| authentication_string  | text                              | NO   |     | NULL    |       |
+------------------------+-----------------------------------+------+-----+---------+-------+
42 rows in set (0.00 sec)
MariaDB [studb]> 

7 案例7:字符型字段应用
7.1 问题

本例要求熟悉在MariaDB数据库中创建表格时字符型字段的应用,完成下列任务:

1)在 studb 库中新建表格ntd,包含字段 id char(4) 和name varchar(4)

2)为表格 ntd 插入以下数据记录

0001,张无忌
0002,柳如花似玉
03,南宫啸天

3)列出表格 ntd 中的所有数据内容,观察结果
7.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:在studb库中新建表格 ntd

包含字段 id char(4),name varchar(4)

MariaDB [(none)]> USE  studb;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [studb]> CREATE  TABLE  ntd(id char(4), name varchar(4));
Query OK, 0 rows affected (0.01 sec)
MariaDB [studb]> 

步骤二:为表格ntd插入数据记录

MariaDB [studb]> INSERT  INTO  ntd  VALUES(‘0001‘, ‘张无忌‘);
Query OK, 1 row affected (0.00 sec)
MariaDB [studb]> INSERT  INTO  ntd  VALUES(‘0002‘, ‘柳如花似玉‘);
Query OK, 1 row affected, 1 warning (0.00 sec)
MariaDB [studb]> INSERT  INTO  ntd  VALUES(‘03‘, ‘南宫啸天‘);
Query OK, 1 row affected (0.00 sec)
MariaDB [studb]> 

步骤三:列出表格ntd中的所有数据内容,观察结果

MariaDB [studb]> SELECT  *  FROM  ntd;
+------+--------------+
| id   | name         |
+------+--------------+
| 0001 | 张无忌       |
| 0002 | 柳如花似     |
| 03   | 南宫啸天     |
+------+--------------+
3 rows in set (0.00 sec)
MariaDB [studb]> 

8 案例8:数值型字段应用
8.1 问题

本例要求熟悉在MariaDB数据库中创建表格时数值型字段的应用,完成下列任务:

1)在 studb 库中新建表格 gongzi,包含字段 工号 int 和本月实发 float(8,2)

2)为表格 gongzi 插入以下数据记录

1001,48750.85
1002,36500
1005,28850.6070

3)列出表格 gongzi 中的所有数据内容,观察结果
8.2 步骤

实现此案例需要按照如下步骤进行。

步骤一:新建表格stuinfo.gongzi,包含字段 工号 int和本月实发 float(8,2)

MariaDB [studb]> CREATE  TABLE  gongzi(工号 int, 本月实发 float(8,2));
Query OK, 0 rows affected (0.01 sec)
MariaDB [studb]>

步骤二:为表格gongzi插入以下数据记录

MariaDB [studb]> INSERT  INTO  gongzi  VALUES(1001, 48750.85);
Query OK, 1 row affected (0.00 sec)
MariaDB [studb]> INSERT  INTO  gongzi  VALUES(1002, 36500);
Query OK, 1 row affected (0.00 sec)
MariaDB [studb]> INSERT  INTO  gongzi  VALUES(1005, 28850.6070);
Query OK, 1 row affected (0.01 sec)
MariaDB [studb]> 

步骤三:列出表格gongzi中的所有数据内容,观察结果

MariaDB [studb]> SELECT  *  FROM  gongzi;
+--------+--------------+
| 工号   | 本月实发     |
+--------+--------------+
|   1001 |     48750.85 |
|   1002 |     36500.00 |
|   1005 |     28850.61 |
+--------+--------------+
3 rows in set (0.00 sec)
MariaDB [studb]>

原文地址:https://blog.51cto.com/14315231/2405592

时间: 2024-08-01 01:04:30

‘’数据库基础、MariaDB服务部署、库表基本管理、数据类型‘’经典案例的相关文章

rhel6.3 vsftp服务部署 虚拟用户权限管理

公司用TM FTP作为发版工具 好久弄过FTP,今天花了20分钟给弄完了...有点坑 凑合实现了.一个用户可写(可以上传文件),另一个用户只读 1.安装 yum -y install vsftpd db4-utils 2.配置文件注释 3.设置用户 因为虚拟用户是映射到本地得一个用户可以看到配置文件中写到guest_username=vsftpd,所以就要撞见一个系统作为 useradd vsftpd -s /bin/false 创建完成了系统用户之后接下来就可以创建虚拟用户啦~ 例如:qiuq

MySQL数据库:SQL语句基础、库操作、表操作、数据类型、约束条件、表之间的关系

数据库相关概念: 1. 数据库服务器:运行数据库管理软件的计算机 2. 数据库管理软件:MySQL.Oracle.db2.slqserver 3. 库:文件夹,用来组织文件/表 4. 表:文件(类似于excel),用来存放多行内容/多条记录 5. 记录:事物一系列典型的特征 6. 数据:描述事物特征的符号 MySQL数据库就是一个套接字软件,用来管理其他机器上的数据文件 MySQL介绍: MySQL是一个关系型数据库管理系统:就是一个基于socket编写的C/S架构胡软件 客户端软件 mysql

3.22数据库基础知识:①数据类型②基本规则③数据库基本操作,增删改库,表

数据库:①数据类型②基本规则③数据库基本操作,增删改库,表 DATABASE 数据库Relational Database 关系型数据库column 列 row行Primary Key 主键 Foreign Key 外键DBMS 数据库管理系统 Database Management SystemRDBNS 关系型数据库管理系统SQL Structured Query Language 结构化查询语言SQL 分为:DDL DQL DML DCL 一.数据类型:1.整数型:INT BIGINT2.

第二十二天 IO模型理论、数据库基础、LAMP平台基础理论及MySQL安装部署

一.I/O模型理论 http或https都是基于tcp协议完成通讯.在tcp中使用socket通讯模型,在domain中界定socket是如何定义.                           domain有三种工作类型:                                        unix domain:每个socket地址是个文件路径                                        ipv4 domain:每个socket是ipv4:p

mysql基础之对库表操作

原文:mysql基础之对库表操作 查看一下所有的库,怎么办? Mysql>Show databases; 选库语句: Use 库名 创建一个数据库: create database 数据库名 [charset 字符集] 删除一个数据库: drop database 数据库名; 把数据库改改名? Mysql中,表/列可以改名,database不能改名. phpMyAdmin似乎有这功能? 他是建新库,把所有表复制到新库,再删旧库完成的. 当选了库之后,我们面对的是表 查看库下面的所有表: show

DBA:多方式建库表数据库表

提醒: 创建 MySql 的表时,表名和字段名外面的符号 ` 不是单引号,而是英文输入法状态下的反单引号,键盘左上角 esc 按键下面的那一个 ~ 按键. 在每一条语句的终止符都是':' 一.命令行建库表 [[email protected] ~]# mysql -uroot -pEnter password:Welcome to the MariaDB monitor. Commands end with ; or \g.Your MySQL connection id is 36Server

数据库初识 用户创建授权 库与表内容的增删改查

初识数据库 为什要用数据库 第一,将文件和程序存在一台机器上是很不合理的. 第二,操作文件是一件很麻烦的事 数据库的优势 1.程序稳定性 :这样任意一台服务所在的机器崩溃了都不会影响数据和另外的服务. 2.数据一致性 :所有的数据都存储在一起,所有的程序操作的数据都是统一的,就不会出现数据不一致的现象 解决了多个服务同时使用数据的一致性间题 3.并发 :数据库可以良好的支持并发,所有的程序操作数据库都是通过网络,而数据库本身支持并发的网络操作,不需要我们自己写socket 解决了并发问题 4.效

(转)数据库表分割技术浅析(水平分割/垂直分割/库表散列)

数据库表分割技术包含以下内容:水平分割/垂直分割/库表散列.接下来将对以上分割进行详细介绍,感兴趣的朋友可以了解下,对你日后维护数据库是很有帮助的 一.水平分割 什么是水平分割?打个比较形象的比喻,在食堂吃饭的时候,只有一个窗口,排队打饭的队伍太长了,都排成S型了,这时容易让排队的人产生焦虑情绪,容易产生混乱,这时一个管理者站出来,增加多个打饭窗口,把那条长长的队伍拦腰截断成几队.更形象一点的理解,你拿一把“手术刀”,把一个大表猛的切了几刀,结果这个大表,变成了几个小表. 水平分割根据某些条件将

Sqlite嵌入式数据库的安装、建库、建表、更新表结构以及数据导入导出等等详细过程记录

简介: SQLite 是实现了SQL 92标准的一个大子集的嵌入式数据库.其以在一个库中组合了数据库引擎和接口,能将所有数据存储于单个文件中而著名.我觉得SQLite的功能一定程度上居于MySQL 和PostgreSQL之间.尽管如此,在性能上面,SQLite常常快2-3倍 (甚至更多).这利益于其高度调整了的内部架构,因为它除去了服务器端到客户端和客户端到服务器端的通信. 而令人印象深刻的特点是你可将你的整个数据库系统放在其中.利用非常高效的内存组织,SQLite只需在很小的内存中维护其很小的