第一讲 检索系统与数据库编程

  • 准备工作
  • 1 检索系统
    • 1.1 检索系统初识
      • 1.1.1 什么是检索系统
      • 1.1.2 从认知心理学看待检索系统
    • 1.2 检索系统的四大法宝
      • 1.2.1 检索的工具——结构化查询语言(SQL)
      • 1.2.2 检索的环境——MySQL
      • 1.2.3 发出请求和接收结果——PHP
      • 1.2.4 接触用户——HTML
  • 2. WampServer
    • 2.1 WampServer初识
    • 2.2 WampServer的三种状态
  • 3. 数据库的创建和管理
    • 3.1 phpMyAdmin
    • 3.2 创建数据库
    • 3.3 创建数据表
    • 3.4 导入数据
  • 4. SQL查询
    • 4.1 简单的精确检索
    • 4.2 简单的模糊检索

准备工作

  • 下载安装WampServer
  • 检查localhost是否能正常
    单击任务栏的WampServer图标,点击localhost,若能打开页面且没有报错则正常
  • 检查phpMyAdmin是否正常
    单击任务栏的WampServer图标,点击phpMyAdmin,若能打开页面且没有报错则正常
  • 修改PHP上传文件大小限制
    单击任务栏的WampServer图标,点击PHP,点击php.ini,找到upload_max_filesize,将等号后面改成200M
  • 下载唐诗数据表
    从群文件中下载tangshiutf8_2.txttangshiutf8-7300.txt

1 检索系统

1.1 检索系统初识

1.1.1 什么是检索系统

所谓检索系统,是指图书情报档案工作者和其他学者按某种方式方法建立起来的供读者查检图书情报档案资料等信息的某种有层次的体系。

这是图情专业的定义,我们看着似乎云里雾里不是很懂。

1.1.2 从认知心理学看待检索系统

认知心理学角度出发,基于西蒙和纽厄尔的观点,我们把人的认知系统比作计算机或信息加工系统。

假设别人问你,你们的心理语言学的老师是哪位?你肯定会毫不犹豫地回答宋老师。

那么这个过程经历了什么呢?
第一步,言语知觉;第二步,信息加工;第三步,言语产出

我们知道,对于人脑而言,从知觉了语言信息,到做出反馈,中间经历了复杂的认知过程,这里为了方便理解,简单地概括为信息加工。

我们把人脑比喻成计算机,则对应了计算机的输入信息加工信息输出信息三个过程。

我们进一步把人脑具体地比作一个检索系统,我们就可以发现,一个检索系统需要哪些部分?
输入请求——进行查询——输出结果

1.2 检索系统的四大法宝

1.2.1 检索的工具——结构化查询语言(SQL)

根据以上的理解,整个检索系统的最关键的部分是哪个部分?
必然是进行查询
那我们进行查询需要一个工具,这个工具就是一种在数据结构(Structure)清晰的数据表中进行查询(Query)的语言(Language),简称SQL(Structured Query Language),它是一门编程语言。这就是我们非常熟悉的SQL。

此章节只是阐述检索系统的结构,SQL会在后文详细展开讲解。

1.2.2 检索的环境——MySQL

我们有了进行检索的工具之后,接下来就面临着一个问题:在哪里查询呢?
答案就是MySQL。
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

在某种程度上,可以将MySQL理解为一个类似于Access的网页版的数据库管理平台。在这个平台里,可以存放我们的数据库。

1.2.3 发出请求和接收结果——PHP

我们有了检索工具,有了检索环境,那谁来向MySQL发出这个请求呢?
是用户吗?
当然不是,用户没有写SQL语句,用户也没有用SQL语句在MySQL里进行查询,真正完成从用户检索词到把SQL语句放入MySQL的是PHP。
同理,把查询的结果从MySQL拿到用户面前的,也是PHP。
PHP就像是在帮你跑腿一样!

当然PHP并不只是一个用于向MySQL发出请求和接受结果的工具,只是在我们这里讲到的检索系统中,PHP姑且屈才扮演了这样的一个角色。
所以之前自学过PHP的同学可以将之前的知识暂且放到一边。

1.2.4 接触用户——HTML

PHP从哪里获取需要搜索的内容,又要把搜索的结果放到放到哪里呢?
答案就是用户所接触到的HTML,也就是我们俗称的网页。

一个标准的检索系统往往由两个HTML页面组成,分别是检索框页面和检索结果页面。

因此可以将以上的4个法宝按照实际的顺序画出来。

为了更加形象地理解,我们可以把整个查询过程比作外卖小哥的跑腿买奶茶的过程:
第一步,你想喝不太甜的量又不多的奶茶,正好旁边有个外卖小哥,你拍了拍外卖小哥,说去给我买一杯不太甜又少量的奶茶。
第二步,外卖小哥将你的要求翻译成“一杯半糖小杯奶茶”,然后找到了奶茶店,提出了要求。
第三步,奶茶店根据要求做出了奶茶。
第四步,外卖小哥取走奶茶给你送回来。
第五步,你喝上了奶茶。

2. WampServer

2.1 WampServer初识

从上面的内容来看,检索框页面和检索结果页面肯定是在用户的浏览器里完成显示的,那别的过程是在哪里完成的呢?这就涉及到我们的软件:WampServer

WampServer是Windows下的Apache+Mysql/MariaDB+Perl/PHP/Python,一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。

WampServer是一个Windows Web开发平台,用于使用Apache服务器,PHP脚本语言和MySQL数据库的动态Web应用程序。它还具有PHPMyAdmin,可以更轻松地管理数据库。

2.2 WampServer的三种状态

这三种状态分别对应了启动成功正在上线在线上

3. 数据库的创建和管理

3.1 phpMyAdmin

phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。

3.2 创建数据库

创建数据库的时候一定要注意编码的选择,否则会造成乱码,我们一般使用UTF-8编码。
点击整理,选择utf8_unicode_ci

输入名称,创建数据库

3.3 创建数据表

选中数据库,在新建的区域输入名称,字段数(列数),然后点击执行

针对每个字段输入名称并选择类型,注意选择编码格式。
本次使用到的唐诗数据表的字段名称类型可参考下表

字段 类型 长度
vol varchar 20
title varchar 50
author varchar 20
poem text

3.4 导入数据

选中数据库,点击菜单栏的导入,点击选择文件,在文件窗口里选择你需要导入的数据表

导入文件的格式里点选CSV。根据数据表设置字段分隔符
唐诗数据表的字段分隔符是|,所以就设置为|

之后点击执行即可。

数据文件较大时可能会上传较慢,处于假死状态,此时万万不能再点击执行,否则会造成数据重复上传。

4. SQL查询

上面我们已经了解了SQL是干什么用的,那么这节我们就来学习两种基本的SQL语句。

对于文科生而言,可能听到编程二字都会头皮发麻,但其实我们从其本质来看,编程语言说到底还是一门语言。我们是汉语言的同学,我们不妨从语言学角度来看待。语言学界把语言分为了自然语言、人工语言和设计语言。设计语言是人们设计出来的用于完成一系列程式的机器语言,那我们便可以从语言学的角度来学习编程语言。

我们常见的编程语言是以英语词汇为基础的,所以我们不妨以英语为切入点,来学习SQL,这个时候你会发现编程是多么的简单!

4.1 简单的精确检索

我们以一个例子来感受一下这个角度入手学习SQL的简单程度。

假设我们有一个需求:从唐诗数据表中找出李白的诗的题目
我们首先根据数据表的信息来重新描述一下:

从唐诗中选出作者是“李白”的题目

接下来,我们把它翻译成英文:

select title from tang_poem where author is "李白"

在编程中,为了体现逻辑性,经常用数学符号来表示,所以,我们把is换成=

select title from tang_poem where author = "李白"

这就形成了一句完整经典的SQL语句。

我们将它粘贴在MySQL里的SQL输入框中,点击运行,就查找出了我们所需要的数据结果。
是不是非常简单?

我们继续尝试,要求升级为:从唐诗数据表中找出李白以“【怨情】”为题写的诗文
根据数据表重新描述:

从唐诗中选出作者是“李白”并且题目是“【怨情】”的诗文

接下来,我们把它翻译成英文:

select poem from tang_poem where author = "李白" and title = "【怨情】"

这就形成了一句完整经典的SQL语句。
我们将它粘贴在MySQL里的SQL输入框中,点击运行,就查找出了我们所需要的数据结果。

至于题目是“李白”或题目是“【怨情】”这种的大家自行发挥。

因此,我们汉语言的同学学习计算机编程语言,要充分发挥自身的优势,从语言学的角度入手,把人类思维到代码的转换借助语言的词汇系统,语法系统的理论来完成,这时候,编程语言将非常有趣和简单。

4.2 简单的模糊检索

假设我们有一个需求:从唐诗数据表中找出含有“李白”的题目
我们首先根据数据表的信息来重新描述一下:

从唐诗中选出题目中包含“李白”的题目

接下来,我们把它翻译成英文

select title from tang_poem where title is like "…李白…"

在编程中,为了体现逻辑性,我们把is省掉,用通配符%来替换省略号

通配符%和省略号的含义一样,代表任意文字

select title from tang_poem where title like "%李白%"

我们将它粘贴在MySQL里的SQL输入框中,点击运行,就查找出了我们所需要的数据结果。

但是,这结果里只有题目,如果需求改成:从唐诗数据表中找出含有“李白”的题目,并显示对应的诗文
我们首先根据数据表的信息来重新描述一下:

从唐诗中选出题目中包含“李白”的题目,诗文

接下来,我们把它翻译成英文

select title,poem from tang_poem where title is like "…李白…"

再处理一下:

select title,poem from tang_poem where title like "%李白%"

我们将它粘贴在MySQL里的SQL输入框中,点击运行,就查找出了我们所需要的数据结果。

声明
本讲义仅用于文科教学,讲解深度较浅。为了便于文科生理解,一些举例可能和计算机专业领域有些微出入,还请各位大咖多多包涵!
本人资历尚浅,欢迎各位博主批评指正!

第一讲 检索系统与数据库编程相关推荐

  1. 第一讲 Linux系统简介

    第一讲 Linux系统简介 一.Unix与Linux发展史 二.开源软件简介 三.Linux应用领域 四.Linux学习方法 一.Unix与Linux发展史 Unix与Linux如同父子关系,Linu ...

  2. 第一讲 用Django创建在线编程网站项目

    用django写了一个网站,在信息技术课上学生学习python用的,现在把整个过程写成教程展现出来.先看几个截图: python编程练习 代码编译界面 知识测试界面 这个网站是ubuntu21.10, ...

  3. 第一讲 嵌入式系统需求分析与体系结构设计

    好啦,大家时间都很宝贵,废话不多说,正式进入今天的主题,讲讲嵌入式系统需求分析与体系结构设计 1.1软件需求分析 描述了系统做什么的问题.主要完成以下要求: 确定软件系统的功能需求和非功能需求: 分析 ...

  4. 数据库编程入门培训(一)

    最近刚刚对团队的新队员进行了数据库编程的入门培训,我把培训资料整理了一下,发布在这里,希望能够对更多的数据库初学者有所帮助.本文作为第一讲,主要讲述数据库的一些基本概念,具体的数据库编程将在下一篇文章 ...

  5. 戴戴戴师兄-数据分析课程笔记(第一讲)

    总目录 课程地址https://www.bilibili.com/video/BV1ZM4y1u7uF/?spm_id_from=333.337.search-card.all.click&v ...

  6. 在计算机检索系统中常用的检索技术有,计算机检索技术有哪些

    计算机检索技术:1.布尔逻辑检索:利用布尔逻辑算符进行检索词或代码的逻辑组配.2.截词检索:截词检索是计算机检索系统中应用非常普遍的一种技术.3.位置检索.4.字段限定检索.5.加权检索.6.聚类检索 ...

  7. iOS基础_C语言第一讲

    C语言第一讲  Mac系统使用 截图:         shift+com+3 全屏截图     shift+com+4 区域截图 输入法切换:    com+空格键 应用程序切换:   com+ta ...

  8. java数据库编程中查询结果的表格式输出_Java数据库编程中查询结果的表格式输出...

    派性劳拉德高顺价老僧水牌电烫,湟中胜利财大不恤名花抹胸,果儿四坝风冈普基挡车关掉临池,脑死愀然草荐木笼电能.公话理念湮没不讳公使难看! 摄氏欠安宣和拉道开封关掉明洁名贵.不名滑膜俊美盲女长虹火主乐律超 ...

  9. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第38讲:PHP数据库编程mysql

    陈力:传智播客古代 珍宝币 泡泡龙游戏开发第38讲:PHP数据库编程mysql php程序设计语言为我们提供了mysql扩展库.mysqli扩展库.Pdo三种方式来操作mysql数据库.本文为贵阳网站 ...

最新文章

  1. 多个互相有联系的checkbox的单选逻辑
  2. Day2 : iOS第三方框架MBProgressHUD学习笔记
  3. 【错误记录】Android Studio 编译报错 ( This Gradle plugin requires a newer IDE able to request IDE model leve )
  4. mysql二: 常用命令
  5. DataURL:实现原理及优缺点分析
  6. 【数据库学习笔记】——创建数据库文件
  7. rs232读取智能电表_三相电表怎么看度数 怎么计算总电量
  8. python对列求和_对单个列求和的最快方法
  9. Jsoup实现java模拟登陆
  10. Ubuntu学习日记--Lesson10:gcc、make、makefile、cmake、cmakelists区别
  11. sql注入之——sqlmap教程
  12. 五款常见的bt磁力下载软件
  13. 联想H61主板BIOS刷新(启天M7100系列)
  14. 高考试题管理系统出题模块——C语言课程设计
  15. TensorFlow Lite(实战系列一):TFLite Android 迁移训练构建自己的图像识别APP
  16. open-vot:PyTorch 实现 Siamese-FC
  17. MTU MSS 设置对网络环境的影响
  18. 2022年道路运输企业主要负责人操作证考试题及答案
  19. Atom 下载、安装
  20. CNC手工编程视频教程 电脑锣加工中心G M代码格式讲解

热门文章

  1. JavaScript 的三座大山
  2. java随机数抽奖系统_Java实现游戏抽奖的算法
  3. 【精】HDFS短路读原理详解
  4. Java字符串查找(3种方法)
  5. 看解放军练车,想想自己的技术也该提高下了。
  6. i9300刷recovery 手机天堂-软件世界 | 手机天堂-软件世界
  7. mysql各种索引名称_MySQL索引类型大汇总
  8. Maven打包太慢??
  9. 苹果手机怎么把照片拼在一起_简单有效的苹果手机照片恢复技巧分享
  10. Python对IP地址列表排序、对列表进行去重、IP地址与MAC地址组合的多个元组的列表排序,对列表内的元组升序和降序排序