首页 > 其他分享 >《信息安全系统设计与实现》学习笔记12

《信息安全系统设计与实现》学习笔记12

时间:2023-12-01 20:11:51浏览次数:30  
标签:12 name mysql 数据库 信息安全 笔记 命令 表中 MySQL

《信息安全系统设计与实现》学习笔记12

第十四章 MySQL数据库系统

MySQL简介

  • MySQL(MySQL2018)是一个关系数据库系统(Codd 1970)。在关系数据库中,数据存储在表中。每个表由多个行和列组成。表中的数据相互关联。表也可能与其他表有关联。关系结构使得可在表上运行查询来检索信息并修改数据库中的数据。关系数据库系统的标准查询语言是SQL(结构化查询语言),包括MySQL。
  • MySQL是一个开源数据库管理系统,由服务器和客户机组成。在将客户机连接到服务器后,用户可向服务器输入SOL命令,以便创建数据库,删除数据库,存储、组织和检索数据库中的数据。MySQL有广泛的应用。除了提供标准的数据库系统服务外,MySQL和PHP(PHP 2018)已成为大多数数据管理和在线商务网站的主干网。本章介绍了MySQL。我们将介绍MySQL的基础知识,包括如何在Linux中安装/配置MySQL,如何使用MySQL创建和管理简单数据库,以及如何在C语言和PHP编程环境中与MySQL交互。

安装MySQL

  • Ubuntu Linux
    sudo apt-get install mysql-server
    mysql_secure_installation

  • Slackware Linux

    • 设置my.cnf : MySQL在启动时加载一个名为my.cnf的配置文件。该文件要在首次设置MySQL时创建。在/etc目录中,有几个示例my.cnf文件,文件名分别是my-small. cnf. my-large.cnf等。选择所需的版本来创建my.cnf文件,如
      cp /etc/my-small.cnf /etc/my.cnf

    • 安装所需数据库:MySQL需要一个所需数据库集,用于用户识别等。要安装它们, 可使用mysql用户作为超级用户,并使用以下命令安装所需的初始数据库。
      mysql_install_db

    • 设置所需的系统权限:该步骤确保mysql用户拥有mysql系统的所有权。
      chown -R inysql.mysql /var/lib/mysql

    • 通过以下操作使Zetc/rc.d/rc.mysqld可执行:
      chmod 7S5 /etc/rc.d/rc.mysqld
      这将在后续系统引导上自动启动MySQL守护进程mysqld。

使用MySQL

  • 连接到MySQL服务器

    mysql -u root -p
    Enter password:
    mysql>
    

    连接到MySQL服务器后,即可访问MySQL shell,如mysql>提示符所示。MySQLshell类似于普通的shell。它会显示一个mysql>提示符,要求用户输入可供MySOL服务器执行的SOL命令。与普通sh 类似,它还维护一个命令历史记录,允许用户通过箭头键回忆和修改先前的命令。

  • 显示数据库
    SHOW DATABASES命令可显示MySQL 中的当前数据库

  • 新建数据库
    如果数据库dbname还不存在,那么CREATE DATABASEdbname命令将创建一个名为dbname的新数据库如果数据已经存在则可以使用可选的IF NOT EXISTS子对该命令进行限定,以避免出现错误消息。

  • 删除数据库
    DROP DATABASE dbname 会删除已存在的命名数据库。该命令可以用一个可选的IFEXISTS 子句限定。注意,DROP 操作是不可逆的。一旦数据库被删除,就无法撤销或恢复因此,须谨慎使用。

  • 选择数据库
    假设MySOL已经有几个数据库。为了操作特定的数据库,用户必须通过USE dbname命令选择一个数据库。

  • 创建表

    CREATE TABLE table_name 命令回在当前数据库中创建一个表
    DESCRIBEDESC命令显示表格式和列属性

  • 删除表
    DROP TABLE table_name 命令可删除表

  • MySQL中的数据类型

    • 要了解 MySQL 中使用的基本数据类型,主要有三类:数字、字符串、日期和时间。我们只显示每个类别中一些常用的数据类型。

    • 数值类型:

      • INT:整数(4字节),TINYINT:(1字节),SMALLINT:(2字节)等。
      • FLOAT:浮动指针数。
    • 字符串类型:

      • CHAR(size):固定长度字符串,长度为1255 字符
      • VARCHAR(size):可变长度字符串,但不能使用任何空格
      • TEXT:可变长度的字符串
    • 日期和时间类型:

      • DATE:日期格式为YYYY-MM-DD
      • TIME:以HH:MM:SS格式保存时间
  • 插入行
    要在表中添加行,可使用INSERT命名,具有语法形式:

    INSERT INTO table_name VLAUES(columnValuel,columnValue2,....);

  • 删除行
    使用DELETE命令从表中删除行,语法形式如下:

    DELETE FROM table_name;
    DELETE FROM table_name WHERE condition;

  • 更新表
    UPDATE命令用于修改表中的现有记录(列),语法形式如下:

    UPDATE table_name SET coll = value1, col2 = value2,…… WHERE condition;

  • 修改表:
    ALTER TABLE命令用于添加、删除或修改当前表中的列。它还用于添加和删除当前表中的各种约束条件。

    • 修改表名
      如需修改表名,可使用以下命令:
      ALTER TABLE table name renAme To new_name;
    • 添加列
      要在表中添加列,可使用以下命令:
      ALTER TABLE table name ADD column name datatype;
    • 删除行
      可使用以下命令删除列:
      ALTER TABLE table name DROP column name datatype;
    • 更改/修改行
      可使用以下命令修改表中某列的数据类型:
      ALTER TABLE table name ALTER COLUNN column_name datatype;
  • 关联表

    • 一对一(1-1)关系
      对一(1-1)关系是指两个表仅基于一个匹配行相互关联的关系。可以使用主键-外键约束条件创建这类关系。假设在 cs360数据库中,每个学生都有一个唯一的电子邮箱地址。我们可在 students 表中添加每个学生的电子邮箱地址,但这需要在学生表中新增一列相反,我们可以创建一个只包含学生电子邮箱地址的单独email表并通过email 表中的唯一外键定义两个表之间的1-1关系,该外键引用students 表中的主键。

    • 一对多(1-M)关系
      在数据块中,一对多或1-M关系比1-1关系更常见,也更有用。一对多关系是指一个表中的一行在另一个表中有多个匹配行的关系。可以使用主键-外键关系来创建这种关系。

    • 多对多(M-M)关系
      如果一个表中的多条记录与另一个表中的多条记录相关,则两个表具有多对多(M-M)关系。例如,每名学生可以上几门课,每门课通常有多名学生。所以,students 表与课程注册表之间是 M-M关系。处理M-M 关系的标准方法是在两个表之间创建一个连接表。连接表使用外键来引用两个表中的主键,从而在两个表之间创建连接。

    • 自引用关系
      表可以通过某些列自我关联。

  • 连接操作

    • 在MySQL中,可使用连接操作在多个表中检索数据。连接操作有4种不同的类型。
      • (INNER)JOIN tablel,table2:检索两个表中共有的项。
      • LEFT JOIN tablel,table2:检索表1中的项以及两个表中共有的项。
      • RIGHT JOIN tablel,table2:检索表2中的项以及两个表中共有的项。
      • OUTER JOIN tabell, table2:检索两个表中非共有以及没有用的项。
    • 对于正则集运算,MySQL中的连接操作可以解释如下。+表示两个集合的并集,^表示两个集合的交集。则有

实践

安装MySQL

使用MySQL

创建表

苏格拉底挑战

使用MySQL的苏格拉底挑战

MySQL中的数据类型的苏格拉底挑战

遇到的问题

问题:安装MySQL时没设置password,未能进入数据库

解决:问gpt,先删除MySQL,再重装MySQL,然后按照GPT的步骤设置password



标签:12,name,mysql,数据库,信息安全,笔记,命令,表中,MySQL
From: https://www.cnblogs.com/wjdnmx/p/17869426.html

相关文章

  • C++学习笔记——函数探幽
    C++内联函数内联函数是一种用空间换时间的技术,是C++提高程序运行速度做的改进。运行程序时操作系统将指令载入计算机内存中,并逐条执行这些指令,遇到循环或分支时向前或向后跳转到特定的地址(每条指令都有特定的内存地址)。常规函数也是如此,在调用常规函数时立即存储该指令的地址......
  • 《深度学习入门——自制框架》读书笔记
    1.自动微分step2创建变量的函数#箱子类,存放一个变量数据classVariable: def__init__(self,data): self.data=data#函数类的基类classFunction:#__call__方法是一个特殊的Python方法。#定义了这个方法后,当f=Function()时,就可以通过编写f(...)来......
  • 计算机网络笔记第一章
    计算机网络一、计网体系结构计算机网络概述计算机网络:是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。计算机网络是互连的,自治的计算机集合。互连:通过通信链路互联互通。自治:无主从关系计算机网络功能......
  • 12.01每日总结
    packageorg.example;importjavax.swing.*;importjava.awt.*;publicclassMainextendsJFrame{publicstaticJFramejFrame;publicstaticJPaneljPanel=newJPanel();publicstaticJScrollPanejScrollPane=newJScrollPane(jPanel,ScrollPaneConstant......
  • Codeforces Round 912 (Div. 2) E - Geo Game
    考虑什么时候会改变答案的奇偶,显然可以根据\(x\oplusy\)的奇偶性分组,在组内进行跳跃不会改变,只有当组间跳跃的时候才会改变。打表观察先手什么时候必胜,其中:\(u\)是当前获胜目标为奇/偶(1/0),\(v\)是位于哪一组,\(a,b\)代表两组还剩多少,\(st\)代表当前答案的奇偶性。intdfs(intu,......
  • 2023.12.1日报
    今日继续开发ERP但是今日需要反思为什么呢因为今天犯了一个致命的错误老师上课其实总是强调重新写一个页面的效率要高于修改原来的页面今天算是亲自体会了一把之前写的一个原材料的页面感觉已经很完善了树形结构检索排序分页等等于是想基于这个页面进行修改实现发票......
  • 2023年11月30日阅读笔记
    《白帽子讲web安全》为何要了解Web安全不遵守整洁代码之道和安全系统之道的系统就像一颗定时炸弹,你不知道它什么时候就会爆炸又或者是虚晃一枪,又让我想起整洁代码之道一书的封面这张图是M104:草帽星系,其核心是一个质量超大的黑洞,有100万个太阳那么重,环绕着M104的光环就......
  • Vulnhub-DevGuru-1(靶机玩乐2023-12-1_已完成)
    靶机下载地址:https://www.vulnhub.com/entry/devguru-1,620/第一步:NMAPmap-p--sV-sC-A192.168.177.131-oAnmap_devguru 扫描结果显示目标开放了22、80、8585端口  得到backend为OctoberCMS后台登录界面 第二步:.git源码泄露分析git信息泄露分析:https://g......
  • [LeetCode Hot 100] LeetCode128. 最长连续序列
    题目描述思路将数组所有点映射到一个数轴上,可以发现问题变为求每段区间首元素到尾元素的长度的最大值。区间的长度:区间尾元素值-区间首元素值+1方法一:超出时间限制这个方法是最初自己想到的,但是超时了,主要原因是程序会有冗余的遍历过程,增加了开销。思路:(时间复杂度太高)......
  • LLM 入门笔记-Tokenizer
    以下笔记参考huggingface官方tutorial:https://huggingface.co/learn/nlp-course/chapter6下图展示了完整的tokenization流程,接下来会对每个步骤做进一步的介绍。1.Normalizationnormalize其实就是根据不同的需要对文本数据做一下清洗工作,以英文文本为例可以包括删除......