20201322学习笔记12

第十四章 MySQL数据库系统

14.1Mysql简介

MySQL是一个关系数据库系统。在关系数据库中,数据存储在表中。每个表由多个行和列组成。表中的数据相互关联。表也可能与其他表有关联。关系结构使得可在表上运行查询来检索信息并修改数据库中的数据。关系数据库系统的标准查询语言是SQL,包括MySQL。 MySQL是一个开源数据库管理系统,由服务器和客户机组成。在将客户机连接到服务器后,用户可向服务器输入SQL命令,以便创建数据库,删除数据库,存储、组织和检索数据库中的数据。

MySQL有广泛的应用。除了提供标准的数据库系统服务外,MySQL 和PHP已成为大多数数据管理和在线商务网站的主干网。

14.2 安装MySQL

ubuntu linux

sudo apt-get install mysql-server

mysql-server包括一个Mysql服务器和一个客户机。

安装后Mysql后,可通过运行脚本对其进行配置以获得更好的安全性。

mysql_secure_installation

Slackware Linux在Slackware 14.0

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。

14.3 使用MySQL

为了简单起见,我们将在同一台机器(即默认本地主机)上运行服务器和客户机。

1、连接到MySQL服务器

mysql -u root -p #specify the root user with password
Enter password:
mysql>

连接到MySQL服务器后,即可访问MySQL shell。然后他只接受MySQL命令或MySQL脚本,而不接受普通sh命令。在输入命令时,要注意以下几点

  • 所有的MySQL命令行末尾必须是分号。对于长命令,可在单独行中输入命令短语(按下ENTER键)。

  • MySQL命令行不区分大小写。但为了清楚和更容易识别,通常使用大写编写MySQL命令,使用小写编写数据库、表、用户名或文本。

2、显示数据库

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

3、新建数据库

CREATE DATABASE dbname #创建一个名为dbname的数据库

如果数据库已经存在,则可以使用IF NOT EXISTS子句对命令限定。

4、删除数据库

DROP DATABASE dbname #删除已存在的命名数据库

该命令可以用一个可选的IF EXISTS 子句限定。

5、选择数据库

USE dbname命令选择一个数据库

6、创建表

CREATE TABLE table_name 命令回在当前数据库中创建一个表。

DESCRIBE 命令显示表格式和列属性

7、删除表

DROP TABLE table_name

8、MySQL中的数据结构

  • 数值类型:

INT:整数(4字节),TINYINT:(1字节)S,MALLINT:(2字节)等。

FLOAT:浮动指针数。

  • 字符串类型:

CHAR(size):固定长度字符串,长度为1~255字符。

VARCHAR(size):可变长度字符串,但不能使用任何空格。

TEXT:可变长度的字符串。

  • 日期和时间类型:

DATE:日期格式为YYYYMM-DD。

TIME:以HHMMSS格式保存时间。

9、插入行

要在表中添加行,可以使用INSERT命名:

INSERT INTO table_name VLAUES()

由于单个命令插入多个条目非常繁琐,因此我们可以创建一个包含多个插入命令行的MySQL脚本文件,并将其用作MySQL的输入源文件。

SOURCE insert.sql

10、删除行

DELETE FROM table_name; #dellte all rows of a table
DELETE FROM table_name WHERE condition; #delete row by condition

11、更新表

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

12、修改表

  • 如需修改表名,可使用以下命令: 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;

13、关联表

一个真正的数据库肯能包含多个相互关联的表。在mysql中,使用主键-外键约束条件来定义表关系。

(1)一对一(1-1)关系
(2)一对多(1-M)关系
(3)多对多关系(M-M)关系
(4)自引用关系

14、连接操作

  • 在MySQL中,可使用连接操作在多个表中检索数据。连接操作有4种不同的类型。

    • (INNER)JOIN tablel,table2:检索两个表中共有的项。

    • LEFT JOIN tablel,table2:检索表1中的项以及两个表中共有的项。

    • RIGHT JOIN tablel,table2:检索表2中的项以及两个表中共有的项。

    • OUTER JOIN tabell, table2:检索两个表中非共有以及没有用的项。

  • 对于正则集运算,MySQL中的连接操作可以解释如下。+表示两个集合的并集,^表示两个集合的交集。则有

    • (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

 

连接数据库修改初始密码

显示数据库

 

新建数据库

 

删除数据库

 

posted @ 2022-11-19 17:41  20201322陈俊池  阅读(18)  评论(0编辑  收藏  举报