第二阶段、数据库的使用

news2024/11/24 15:29:36

数据库:在这里一mysql为例

首先使用数据库就必须安装

请添加图片描述

安装数据库(mysql)

数据库的安装和下载

数据库的使用和命令

连接和断开服务器

启动mysql服务:

sudo service mysql start

停止mysql服务:

sudo service mysql stop

要连接到服务器,我们通常需要提供MySQL的用户名来触发mysql,很可能,还需要密码。如果你的服 务器运行在一个其他的机器上,你还需要指定主机名。联系管理员来找到连接参数(例如主机名,用户 名和密码),当你知道了正确的参数后,你可以像下面那样连接:

shell> mysql -h host -u user -p
Enter password: ********

host和user表示你的MySQL服务器所运行的主机名和你的mysql用户名。在使用时,请替换成你自己 设置的相关值。__** 表示你输完上面命令后回车后,需要继续输入密码。 如果工作正常,你应该可以看到mysql提示符的一些介绍信息:


 shell> mysql -h host -u user -p
 Enter password: ********
 Welcome to the MySQL monitor. Commands end with ; or \g.
 Your MySQL connection id is 25338 to server version: 5.7.15-standard
 Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 

 mysql>

mysql> 提示符告诉我们,mysql已经准备好了,等待我们输入SQL语句。 如果你正在登录MySQL运行的机器上,你可以忽略host,可以向以下这么简单地来使用:

shell> mysql -u user -p

当你在尝试登录的时候,你可能会出现错误信息,例如2002(HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2),这意味着你的MySQL服务 进程没有运行。咨询管理员或查看章节2,给你的操作系统安装和更新MySQL是比较合适的。 For help with other problems often encountered when trying to log in, see Section B.5.2, “Common Errors When Using MySQL Programs”. 有一些MySQL安装允许用来以匿名用户的方式连接到正在本地运行的MySQL服务。如果你是这种情况, 你在连接到服务器的时候,不加任何参数。如下。

shell> mysql

在你连接成功之后,你可以在mysql>命令提示符下输入QUIT(或\q)来断开连接。如下所示。

mysql> QUIT
Bye

查询

像前面章节讨论一样,请确保你已经连接到了服务器。連好之后,不要在里面查询任何数据庫,当然, 你也可以查。在这个时候,相比直接跳到创建表,加载数据到表,然后从中检索数据,在先对查询有一 定的了解,这是非常重要的,这部分描述了查询的基本原理,使用一些查询,你可以试着了解mysql是 如何工作的。 这里有一个简单的查询例子,查询的是版本号和当前日期。在mysql命令提示符中像如下一样输入:


1. mysql> SELECT VERSION(), CURRENT_DATE; 
2. +--------------+--------------+ 
3. | VERSION() | CURRENT_DATE | 
4. +--------------+--------------+ 
5. | 5.7.1-m4-log | 2012-12-25 | 
6. +--------------+--------------+ 
7. 1 row in set (0.01 sec) 8. mysql>
8. mysql>

这个查询描述了mysql的一些事情: 一个查询正常情况下包含一个SQL语句,然后跟上一个分号(;)(当然也有不输入分号的例外,如 QUIT,还有其他的,随后会了解到),。 当你执行一个查询,mysql会把它发送到服务器执行并显示结果,然后打印另一个mysql>命令提示 符,来为你的下一个查询作好准备。 mysql以表格(行和列)的方式显示查询结果。第一行包含列标签。接下来的行是查询结果。列标签是 你从数据庫表中提取的列的名字。如果你正在检索的不是一个表的列,而是一个表达式的值,mysql会 用表达式本身来标记列。 mysql会显示返回结果的行数和执行查询所消耗的时间,这可以给你一个服务性能的粗略显示。这些时 间值不是非常准确的,因为他们表示的是时钟时间(不是CPU或机器时间),因为他们会受到诸如加载 和网络延迟的因子影响。(简单起见,在接下来的例子中,“rows in set"有时没有显示) 关键詞不区别大小写,以下查询是等价的:

1. mysql> SELECT VERSION(), CURRENT_DATE; 
2. mysql> select version(), current_date; 
3. mysql> SeLeCt vErSiOn(), current_DATE;

以下是另一个查询,你可以使用mysql做一个简单的计算:

1. mysql> SELECT SIN(PI()/4), (4+1)*5; 
2. +------------------+---------+ 
3. | SIN(PI()/4) | (4+1)*5 | 
4. +------------------+---------+ 
5. | 0.70710678118655 | 25 | 
6. +------------------+---------+ 
7. 1 row in set (0.02 sec)

这些查询相对来说,比较短,也是单行语句。你可以在一行输入多条语句,仅仅需要在每一个语句后加 上一个分号:


1. mysql> SELECT VERSION(); SELECT NOW(); 
2. +------------------+ 
3. | VERSION() | 
4. +------------------+ 
5. | 5.7.10-ndb-7.5.1 | 
6. +------------------+ 
7. 1 row in set (0.00 sec) 
8. +---------------------+ 
9. | NOW() | 
10. 
11. 11. +---------------------+ 12. | 2016-01-29 18:02:55 | 13. +---------------------+ 14. 1 row in set (0.00 sec)


一个查询不需要把所有的都放一行,如此长的查询,需要放在多行不是问题,mysql决定你的语句是否 结束是查找分号,而不是查找输入行的结尾。(换言之,mysql接受自行格式输入:它可以一直接受输 入,直到看到分号) 以下是一个简单的多行语句:


1. mysql> SELECT 
2. -> USER() 
3. -> , 
4. -> CURRENT_DATE; 
5. +---------------+--------------+ 
6. | USER() | CURRENT_DATE | 
7. +---------------+--------------+
8. | jon@localhost | 2010-08-06 | 
9. +---------------+--------------+

在这个例子中,注意到在你输入多行的第一行然后回车后,提示符是如何从mysql> 改变成->的,这告 诉你,mysql还没有看到一个完整的语句,正在等待剩下的。提示符是你的朋友,因为他提供了有价值 的反馈。如果你使用这个反馈,你可以一直感知到mysql正在等待。 如果你打算取消正在输入的查询,你可以输入\c,像下面一样:

1. mysql> SELECT 
2. -> USER() 
3. -> \c 
4. mysql>

在这,可以注意到,在你输入\c之后,提示符切换回了mysql> 。以此提供了一个反馈,暗示已经为新 的查询做好了准备。 以下表格显示了每一个提示符所表示的含义:

提示符含义
mysql>已为新的查询作好准备
->正在等待多行的下一行
'>正在等待以单引号开头的字符串的下一行
">正在等待以双引号开头的字符串的下一行
`>正在等待以(`)号开头的字符串的下一行
/*>正在等待以注释符(/*)开头的字符串的下一行

1. mysql> select user()` 
2. `> ` 
3. -> /* 
4. /*> */ 
5. -> ' 
6. '> ' 
7. -> " 
8. "> " 
9. -> \c

创建和使用数据库


1、 Creating and Selecting a Database 
2 、Creating a Table 
3、 Loading Data into a Table 
4、 Retrieving Information from a Table 

一旦你知道如何输入SQL语句的时候,你就可以准备访问一个数据庫。 假设,在你家(你的menagerie)有一些宠物,并且你想对他们的信息保持一个跟踪。这时候,你可以 创建表来存储和加载你渴望的信息。然后你就可以通过检索数据庫里的表来回答各种各样的问题,这部 分展示如何执行以下操作

1、创建数据库
2、创建表
3、加载数据到表
4、以不同的方式从表中检索数据
5、使用多个表
menagerie数据库是简单的,但不难想像到,在真实世界中,这样相似的数据库会被使用。例 如,像这样的数据库可以被农夫用于跟踪牲畜的信息,兽医跟踪病号记录。 使用SHOW语句来找到服务器上当前存在数据库:


1. mysql> SHOW DATABASES; 
2. +----------+ 
3. | Database | 
4. +----------+ 
5. | mysql | 
6. | test | 
7. | tmp | 
8. +----------+

mysql数据库描述的是用户权限。test数据库通常是用于用户作为测试使用。
在你的机器上面,通过这条语句显示出的数据库列表可能是不同的,SHOW DATABASES只会显示当前用 户具有权限的数据库,不会显示你没有权限的数据库。

如果test数据庫存在,尝试访问它:

1. mysql> USE test 
2. Database changed

USE,就像QUIT一样,不需要加分号(如果你喜欢,你可以加上分号)。USE语句还有另外一个特殊的 地方:它必须出现在单行。 对于接下来的例子,你可以使用test数据庫(如果你能访问它),但是你创建的任何东西都可以被 能访问它的用户删除。对于这个原因,你可能应该找你的MySQL管理员要属于你的数据庫。假如你想使 用menagerie,管理员应该执行像下面这个一样的语句:

 mysql> GRANT ALL ON menagerie.* TO 'your_mysql_name'@'your_client_host';

your_mysql_name是MySQL分配给你的用户名,your_client_host是你连接到的服务器的主机 名。

创建和选择数据库

创建menagerie数据库:

 mysql> CREATE DATABASE menagerie;

如果想在创建数据库时,指定数据库的字符编码(这里使用GBK),可以使用以下方式:

 mysql> create database menagerie DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

或者使用utf8编码:

mysql> CREATE DATABASE menagerie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

或者直接修改配置文件

hadoop@node1:~/mysql_shell$ sudo vi /etc/mysql/my.cnf

然后在文件底部加入以下内容:

1. [mysqld] 2.3. character-set-server=utf8 4. collation-server=utf8_general_ci

接着重启MySQL服务:

1. hadoop@node1:~/mysql_shell$ sudo service mysql stop 
2. hadoop@node1:~/mysql_shell$ sudo service mysql start

通过 status 命令可以查看状态信息:

mysql> status

mysql Ver 14.14 Distrib 5.7.13, for Linux (x86_64) using EditLine wrapper

Connection id: 3 Current database: eduCloud Current user: root@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 5.7.13-0ubuntu0.16.04.2 (Ubuntu) Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 UNIX socket: /var/run/mysqld/mysqld.sock Uptime: 9 min 25 sec

Threads: 1 Questions: 62 Slow queries: 0 Opens: 128 Flush tables: 1 Open tables: 47 Queries per second avg: 0.109

使用(选择)menagerie数据库:

 1. mysql> USE menagerie 
 2. Database changed

还可以在连接到数据庫服务器的时候,指定要使用的数据庫menagerie:

1. shell> mysql -h host -u user -p menagerie 
2. Enter password: ********

默认情况下,登录mysql是无密码登录,可以通过以下方式修改密码:MySQL 5.7.6及之后的版本, 使用以下命令:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

MySQL 5.7.5及以前的版本,使用以下命令:

1. SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');

其中,MyNewPass是我们将要设置的新密码。

创建表

创建pet表(宠物表),包含列:宠物名字,拥有者,物种,性别,出生日期,死亡日期:

1. mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20), 
2.     -> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);

一旦你创建了表,你可以查看刚刚创建的表是否是想创建的表:

1. mysql> SHOW TABLES; 
2. +---------------------+ 
3. | Tables in menagerie | 
4. +---------------------+ 
5. | pet | 
6. +---------------------+
7. mysql> DESCRIBE pet; 
8. +---------+-------------+------+-----+---------+-------+ 
9. | Field | Type | Null | Key | Default | Extra | 
10. +---------+-------------+------+-----+---------+-------+  
11. | name | varchar(20) | YES | | NULL | | 
12. | owner | varchar(20) | YES | | NULL | | 
13. | species | varchar(20) | YES | | NULL | | 
14. | sex | char(1) | YES | | NULL | | 
15. | birth | date | YES | | NULL | | 
10.| death | date | YES | | NULL | | 
16. +---------+-------------+------+-----+---------+-------+

可以看到表pet的字段,类型,等数据。
我们也可以通过脚本的方式进行创建表,在一个文件中写创建表的脚本,然后在mysql>中使用source 命令或.运行,如下:

 1. mysql> source ./testCreateTable.txt; 
 2. Database changed 
 3. Query OK, 0 rows affected, 1 warning (0.00 sec) 
 4. Query OK, 0 rows affected (0.24 sec)
1. mysql> \. ./studentScore.txt 
2. Database changed 
3. Query OK, 0 rows affected (0.14 sec) 
4.
5. Query OK, 0 rows affected (0.24 sec)

其中,testCreateTable.txt是脚本文件,内容如下:

1. use test 
2. drop table if exists testTable; 
3. create table testTable(name varchar(50), 
4. address varchar(50), 
5. timestamp timestamp, 
6. primary key(name));

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/715328.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

加载Bert预训练模型时报错:huggingface_hub.utils._validators.HFValidationError

具体报错情况如下: huggingface_hub.utils._validators.HFValidationError: Repo id must be in the form repo_name or namespace/repo_name: ./bert/bert_base_cased_ICEWS14. Userepo_typeargument if needed. 很简单,我download下来的代码没有并没有…

Java中生成指定长度验证码

Java中生成指定长度验证码 1.方法一:执行效率高 /*** 生成指定位数验证码,纯数字运算效率最高** param maxSize* return*/public static Long generateRandomCode(int maxSize) {if (maxSize < 0) {throw new BizException(ErrorCodeEnum.PARAM_ERROR);}//小数点后16位的do…

Mysql内外连接的详细用法与示例

当处理关系型数据库时&#xff0c;连接操作是非常常见且重要的。MySQL提供了多种连接类型&#xff0c;其中包括内连接、外连接和交叉连接。在本篇博文中&#xff0c;我们将详细介绍MySQL中内连接和外连接的用法&#xff0c;并提供一些复杂的例子来帮助理解。 文章目录 1.内连接…

计网之运输层

因特网协议概述 常用协议应用层HTTP&#xff08;超文本传输协议&#xff09;、FTP&#xff08;文件传输协议&#xff09;、SMTP&#xff08;简单邮件传输协议&#xff09;、DNS&#xff08;域名系统&#xff09;、DHCP&#xff08;动态主机配置协议&#xff09;、SNMP&#xff…

Texlive2023安装过程中点击install-tl-windows.bat一直闪退

我安装了Texlive的镜像&#xff0c;因为数学建模会用到&#xff0c;在安装过程中我遇到了一个问题&#xff1a; install-tl-windows.bat一直闪退 当我解压完texlive.iso的时候,正常应该点击.bat文件就能出现页面&#xff0c;但是我cmd窗口一直闪退 怎样解决&#xff1f; 这个…

为什么从 MVC 到 DDD,架构的本质是什么?

作者&#xff1a;小傅哥 博客&#xff1a;https://bugstack.cn 沉淀、分享、成长&#xff0c;让自己和他人都能有所收获&#xff01;&#x1f604; 本文来自于小傅哥新编写的 《Java简明教程》 系列内容&#xff0c;本教程意在于通过简单、明了、清晰的成体系内容&#xff0c;教…

UE4/5用GeneratedDynamicMeshActor创建多个模型,并发生Boolean(两个网格体之间的,有3种模式)

目录 制作 只创建一个球&#xff1a; 效果&#xff1a; 制作多个效果&#xff1a; 制作&#xff1a; 效果&#xff1a; 代码&#xff1a; 一代码&#xff1a; 二代码&#xff1a; 制作 假如我们创建两个模型&#xff0c;第一个是之前就创建的正方体&#xff0c;而第二…

PHP:查询数据库,并将数据传给前端(在script中直接嵌套php语句)

例子&#xff1a;在php中定义数据&#xff0c; 并将数据通过js在控制台输出 <script><?php// 在这里插入你的PHP代码&#xff0c;例如执行查询操作获取数据$data array(array(name > Alice, age > 25),array(name > Bob, age > 30),array(name > Ch…

(7)深度学习学习笔记-卷积层

文章目录 前言一、实现二维互相关和卷积层二、用nn的Conv2d给定输入X和输出Y&#xff0c;生成核K1.引入库2.简单实现 来源 前言 在卷积层中&#xff0c;输入张量和核张量通过互相关运算产生输出张量。 阴影部分是第一个输出元素&#xff0c;以及用于计算输出的输入张量元素和…

【直播预告】HarmonyOS极客松赋能直播第四期:HarmonyOS开发经验分享

直播预约通道&#xff1a;【直播预告】HarmonyOS极客松赋能直播第四期&#xff1a;HarmonyOS开发经验分享

【数据库】使用DBever连接人大金仓数据库

下载安装DBever 首先需要下载并安装DBever&#xff0c;可以在DBever官网上下载最新版的安装程序&#xff0c;根据提示进行安装即可。 下载驱动程序 首先需要从人大金仓官方网站下载适用于DBever的驱动程序。下载完成后&#xff0c;将驱动程序保存到本地计算机上。 添加驱动…

docker deploy rancher

docker run --privileged -d --name rancher --restartunless-stopped -p 80:80 -p 443:443 rancher/rancher:latest docker ps docker logs 4d890c673011 2>&1 | grep “Bootstrap Password:”

LCD屏幕显示文字(含交叉编译freetype字体矢量库)

文章目录 字符的编码方式编码与字体ASCIIANSIUNICODEUNICODE 编码实现 ASCII 字符的点阵显示ASCII字符文件主要代码 中文字符的点阵显示指定编码格式汉字的点阵数据&#xff08;汉字区位码&#xff09; 交叉编译 freetype 矢量库程序运行的一些基础知识怎么确定“系统目录”&am…

【08】STM32·HAL库开发-HAL库介绍 | STM32Cube固件库介绍 | HAL库框架结构 | 如何使用HAL库及使用注意事项

目录 1.初识HAL库&#xff08;了解&#xff09;1.1CMSIS简介1.2HAL库简介 2.STM32Cube固件包浅析&#xff08;了解&#xff09;2.1如何获取STM32Cube固件包&#xff1f;2.2STM32Cube固件包文件夹简介2.3CMSIS文件夹关键文件2.3.1CMSIS标准规定软件包目录2.3.2Device和Include文…

背光图像增强论文调研

背光图像增强 M. Akai, Y. Ueda, T. Koga and N. Suetake, “A Single Backlit Image Enhancement Method For Improvement Of Visibility Of Dark Part,” 2021 IEEE International Conference on Image Processing (ICIP), Anchorage, AK, USA, 2021, pp. 1659-1663, doi: 10…

山西电力市场日前价格预测【2023-07-05】

日前价格预测 预测明日&#xff08;2023-07-05&#xff09;山西电力市场全天平均日前电价为168.88元/MWh。其中&#xff0c;最高日前电价为334.22元/MWh&#xff0c;预计出现在20: 30。最低日前电价为0.00元/MWh&#xff0c;预计出现在09: 45-17: 15。 以上预测仅供学习参考&a…

【Git】中文显示数字的问题的解决方案

目录 问题截图解决方案 问题截图 运行git status命令&#xff0c;会出现图片中不正常显示中文的问题 解决方案 设置终端: 右键窗口头部 -> Options...执行命令: git config --global core.quotepath false

电脑屏幕监控软件是什么?有哪些功能?

电脑屏幕监控软件是一种用于监视和记录电脑屏幕活动的工具。它可以捕捉屏幕上的所有操作&#xff0c;包括键盘输入、鼠标点击、应用程序使用等。这些软件通常被用于家庭、教育机构和企业等环境中&#xff0c;以确保电脑的安全和监督员工或孩子的活动。 为什么需要电脑屏幕监控软…

STM32实战项目—密码锁

该项目的完整工程可以在博主的资源里找到&#xff0c;仅供参考。 文章目录 一、任务要求二、实现方法2.1 输入密码判断2.2 管理员模式2.3 修改密码 三、程序设计3.1 输入密码判断3.2 进入管理员模式3.3 修改密码 四、问题总结4.1 输入内容一直提示Error4.2 密码判断一直错误 五…

Lua,不使用模块,解压文件

本来lua遍历文件夹下压缩包内容、路径可以通过加载模块&#xff1a; require(“lfs”) 和 require(“zip”) 来解决。 但是本人通过c调用lua时&#xff0c;只要lua脚本中使用require加载模块&#xff0c;就会出错。 因此为了能够让c通过lua&#xff0c;解压当前路径下压缩包&a…