从0开始学习MySQL——01
Posted 奇盛测试攻城狮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从0开始学习MySQL——01相关的知识,希望对你有一定的参考价值。
前言
结合《数据库系统概论》_第五版,菜鸟教程mysql数据库,以及作者个人学习操作过程记录。
目录
数据库系统概述
数据库的4个基本概念
数据
数据库
数据库管理系统
数据库系统
关系数据库管理系统
关系数据库管理系统术语
MySQL数据库概述
Linux安装连接Mysql数据库
MySQL增删改查
增
删
改
查
Part_01 数据库系统概述
1.1 数据库系统的4个基本概念:
1.1.1 数据(Data)
描述事物的符号记录称为数据
数据的含义称为数据的语义,数据与其语义时不可分的。
1.1.2 数据库(DataBase,DB)
顾名思义,数据库是存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定格式存放的。
数据库是长期储存再计算机内、有组织的、可共享的大量数据的集合。
数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度(redundancy)、较高的数据独立性(data independency)和易扩展性(scalability),并可为各种用户共享。
概括:数据库具有永久存储、有组织和可共享三个基本特点
1.1.3 数据库管理系统(DataBase Management System,DBMS)
数据库管理系统是位于用户与操作系统之间的一层数据管理软件,可以科学地组织和存储数据,高效地获取和维护数据。
数据库管理系统和操作系统一样是计算机的基础软件,它包含以下几个方面的主要功能:
数据的定义功能
数据组织、存储和管理
数据操纵功能
数据库的事物管理和运行管理
数据库的建立和维护功能
其他功能
1.1.4 数据库系统(DataBase System,DBS)
数据库系统是由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员(DataBase Administrator,DBA)组成的存储、管理、处理和维护数据的系统
1.2 关系型数据库管理系统
关系型数据库管理系统(Relational DataBase Management System,RDBMS),是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
特点:
1.数据以表格的形式出现
2.每行为各种记录名称
3.每列为记录名称所对应的数据域
4.许多的行和列组成一张表单
5.若干的表单组成database
1.3 关系型数据库管理系统术语
数据库: 数据库是一些关联表的集合。
数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
列: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。
行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。
主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。
外键:外键用于关联两个表。
复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。
Part_02 MySQL数据库概述
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL 是开源的,目前隶属于 Oracle 旗下产品。
MySQL 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
MySQL 使用标准的 SQL 数据语言形式。
MySQL 可以运行于多个系统上,并且支持多种语言。这些编程语言包括 C、C++、Python、Java、Perl、php、Eiffel、Ruby 和 Tcl 等。
MySQL 对PHP有很好的支持,PHP 是目前最流行的 Web 开发语言。
MySQL 支持大型数据库,支持 5000 万条记录的数据仓库,32 位系统表文件最大可支持 4GB,64 位系统支持最大的表文件为8TB。
MySQL 是可以定制的,采用了 GPL 协议,你可以修改源码来开发自己的 MySQL 系统。
2.1 Linux/UNIX 上安装连接 MySQL
rpm -qa | grep mysql # 检测系统是否自带安装 MySQL
rpm -e mysql # 若系统自带执行,1.普通删除模式
rpm -e --nodeps mysql # 2.强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
# 安装
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum update
yum install mysql-server
# 权限设置
chown mysql:mysql -R /var/lib/mysql
# 初始化MySQL
mysqld --initialize
# 启动
systemctl start mysqld
# 查看运行状态、
systemctl status mysql
# 验证
mysqladmin --version
# 输出mysqladmin Ver 8.23 Distrib 5.0.9-0, for redhat-linux-gnu on i386说明安装运行成功(结果基于你的系统信息)
# 设置root用户密码
mysqladmin -u root password "new_password";
# 连接数据库
mysql -u root -p (密码)
Part_03 MySQL增删改查
3.1 查看所有的数据库
SHOW DATABASES;
3.2 创建数据库
CREATE DATABASE 数据库名;
# 例:创建一个admin1688的数据库
CREATE DATABASE admin1688;
3.3 删除数据库(root权限的用户,删库的时候所有数据将会消失,在执行删除命令的时候,一定要三思而后行!)
drop database <数据库名>;
3.4 选择数据库
USE admin1688;
执行以上命令后,你就已经成功选择了admin1688数据库,在后续的操作中都会在 admin1688 数据库中执行。
注意:所有的数据库名,表名,表字段都是区分大小写的。所以你在使用SQL命令时需要输入正确的名称。
3.5 建表(通用语法)
CREATE TABLE table_name (column_name column_type);
# 如创建一个学生表,包含名字、年龄、成绩
CREATE TABLE IF NOT EXISTS `students`(
`students_id` INT UNSIGNED AUTO_INCREMENT,
`students_name` VARCHAR(40) NOT NULL,
`students_age` VARCHAR(40) NOT NULL,
`students_scorce` VARCHAR(40) NOT NULL,
`submission_date` DATE,
PRIMARY KEY ( `students_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
解析:
IF NOT EXISTS判断是否存在students表
如果不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
VARCHAR设置字符长度(后续再详细说明数据库的数据类型)
AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
PRIMARY KEY关键字用于定义列为主键。可以使用多列来定义主键,列间以逗号分隔。
ENGINE 设置存储引擎,CHARSET 设置编码。
3.6 删表(删——drop)
DROP TABLE <表名> ;
3.7 插入数据(增——insert)
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN )
向表中插入一条数据
注意:
使用箭头标记 -> 不是 SQL 语句的一部分,它仅仅表示一个新行,如果一条SQL语句太长,我们可以通过回车键来创建一个新行来编写SQL语句,SQL语句以分号 ;结束。
插入的数据如果是字符串,需要添加单引号或双引号。
在以上实例中,没有提供student_id的数据,因为该字段在创建表的时候已经设置它为 AUTO_INCREMENT(自动增加) 属性。所以,该字段会自动递增而不需要我们去设置。实例中 NOW() 是一个 MySQL 函数,该函数返回日期和时间。
3.8 查询数据(查——select)
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]
查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
SELECT 命令可以读取一条或者多条记录。
你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
你可以使用 WHERE 语句来包含任何条件。
你可以使用 LIMIT 属性来设定返回的记录数。
你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。
3.9 数据更新(改——update)
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
可以同时更新一个或多个字段。
可以在 WHERE 子句中指定任何条件。
可以在一个单独表中同时更新数据。
3.10 删除数据记录(删——delete)
DELETE FROM table_name [WHERE Clause]
# 从 MySQL 数据表中删除数据的通用语法
如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。
可以在 WHERE 子句中指定任何条件
可以在单个表中一次性删除记录。
当想删除数据表中指定的记录时 WHERE 子句是非常有用的
(只是整理文章就花了不少时间,没时间讲张三李四隔壁老王的故事了,先这样吧)
以上是关于从0开始学习MySQL——01的主要内容,如果未能解决你的问题,请参考以下文章