《信息安全系统设计与实现》第十三周学习笔记
第十四章 MySQL数据库系统
MySQL简介
- MySQL是一个关系数据库系统在关系数据库中,在关系数据库中,数据存储在表中。每个表由多个行和列组成。表中的数据相互关联。表也可能与其他表有关联。关系结构使得可在表上运行查询来检索信息并修改数据库中的数据。MySQL是一个开源数据库管理系统,由服务器和客户机组成。在将客户机连接到服务器后,用户可向服务器输入SQL命令,以便创建数据库,删除数据库,存储、组织和检索数据库中的数据。MySQL有广泛的应用。除了提供标准的数据库系统服务外,MySQL 和PHP已成为大多数数据管理和在线商务网站的主干网。
安装MySQL
- Ubuntu Linux
 Ubuntu Linux 可通过以下命令安装
 sudo apt-get install mysql-server
 mysql_secure_installation
- Slackware Linux
 (1)设置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
 (2)安装所需数据库:MySQL需要一个所需数据库集,用于用户识别等。要安装它们, 可使用mysql用户作为超级用户,并使用以下命令安装所需的初始数据库。
 mysql_install_db
 (3)设置所需的系统权限:该步骤确保mysql用户拥有mysql系统的所有权。
 chown -R inysql.mysql /var/lib/mysql
 (4)通过以下操作使Zetc/rc.d/rc.mysqld可执行:
 chmod 7S5 /etc/rc.d/rc.mysqld
 这将在后续系统引导上自动启动MySQL守护进程mysqld。
使用MySQL
- 连接MYSQL服务器
mysql -u root -p
Enter password:
mysql>
- 显示数据库
 SHOW DATABASES命令可显示MySQL中的当前数据库
- 新建数据库
 如果数据库dbname还不存在,CREATE DATABASE dbname创建一个名为dbname的数据库,如果数据库已经存在,则可以使用IF NOT EXISTS子句对命令限定。
- 删除数据库
 DROP DATABASE dbname删除已存在的命名数据库,该命令可以用一个可选的IF EXISTS 子句限定。注意,该操作不可逆,需谨慎使用。
- 选择数据库
 为了操作特定的数据库,用户必须通过USE dbname命令选择一个数据库
- 创建表
 CREATE TABLE table_name命令回在当前数据库中创建一个表
 DESCRIBE或DESC命令显示表格式和列属性。
- 删除表
 DROP TABLE table_name命令可删除表
- MySQL中的数据类型
- 数值类型:
 INT:整数(4字节)
 TINYINT:(1字节)
 S,MALLINT:(2字节)
 FLOAT:浮动指针数。
- 字符串类型:
 CHAR(size):固定长度字符串,长度为1~255字符。
 VARCHAR(size):可变长度字符串,但不能使用任何空格。
 TEXT:可变长度的字符串。
- 日期和时间类型:
 DATE:日期格式为YYYYMM-DD。
 TIME:以HHMMSS格式保存时间.
 
- 数值类型:
- 插入行
 要在表中添加行,可使用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命令用于添加、删除或修改当前表中的列。它还用于添加和删除当前表中的各种约束条件。
 1.修改表名
 如需修改表名,可使用以下命令:
 ALTER TABLE table name renAme To new_name;
 2.添加列
 要在表中添加列,可使用以下命令:
 ALTER TABLE table name ADD column name datatype;
 3.删除行
 可使用以下命令删除列:
 ALTER TABLE table name DROP column name datatype;
 4.更改/修改行
 可使用以下命令修改表中某列的数据类型:
 ALTER TABLE table name ALTER COLUNN column_name datatype;
- 关联表
 一个真正的数据库可以能包含多个相互关联的表,使用主键-外键约束条件来定义表关系。
 1.一对一(1-1)关系
 2.一对多(1-M)关系
 3.多对多(M-M)关系
 4.自引用关系
- 连接操作
- 在MySQL中,可使用连接操作在多个表中检索数据。连接操作有4种不同的类型。
- (INNER)JOIN tablel,table2:检索两个表中共有的项。
- LEFT JOIN tablel,table2:检索表1中的项以及两个表中共有的项。
- RIGHT JOIN tablel,table2:检索表2中的项以及两个表中共有的项。
- OUTER JOIN tabell, table2:检索两个表中非共有以及没有用的项。
 
- 对于正则集运算,MySQL中的连接操作可以解释如下。+表示两个集合的并集,^表示两个集合的交集。则有
 
- 在MySQL中,可使用连接操作在多个表中检索数据。连接操作有4种不同的类型。
(INNER) JOIN t1, t2 = t1 ^ t2
LEFT JOIN t1, t2 m t1 + (t1 ^ t2)
RIGHT JOIN t1, t2 = t2 +(t1 ^ t2)
OUTER JOIN t1, t2 = t1 + t2;
实践
安装并使用MySQL




遇到的问题及解决
问题:在运行代码进行实践的时候遗忘了root密码,不能使用MySQL
解决:


苏格拉底挑战
1.新建数据库





2.删除数据库






 
                    
                 
