从0开始学习MySQL——01

Posted 奇盛测试攻城狮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从0开始学习MySQL——01相关的知识,希望对你有一定的参考价值。


前言

结合《数据库系统概论》_第五版,菜鸟教程mysql数据库,以及作者个人学习操作过程记录。


目录

  1. 数据库系统概述

    1. 数据库的4个基本概念

      1. 数据

      2. 数据库

      3. 数据库管理系统

      4. 数据库系统

    2. 关系数据库管理系统

    3. 关系数据库管理系统术语


  2. MySQL数据库概述

    1. Linux安装连接Mysql数据库


  3. 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)组成的存储、管理、处理和维护数据的系统

从0开始学习MySQL——01


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  # 检测系统是否自带安装 MySQLrpm -e mysql  # 若系统自带执行,1.普通删除模式rpm -e --nodeps mysql  # 2.强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除# 安装wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpmrpm -ivh mysql-community-release-el7-5.noarch.rpmyum updateyum install mysql-server# 权限设置chown mysql:mysql -R /var/lib/mysql# 初始化MySQLmysqld --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;

从0开始学习MySQL——01



3.2  创建数据库

CREATE DATABASE 数据库名;# 例:创建一个admin1688的数据库CREATE DATABASE admin1688;

从0开始学习MySQL——01



3.3 删除数据库(root权限的用户,删库的时候所有数据将会消失,在执行删除命令的时候,一定要三思而后行!)

drop database <数据库名>;

从0开始学习MySQL——01



3.4 选择数据库

USE admin1688;

从0开始学习MySQL——01

执行以上命令后,你就已经成功选择了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(40NOT NULL,   `students_age` VARCHAR(40NOT NULL,   `students_scorce` VARCHAR(40NOT 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 设置编码。

从0开始学习MySQL——01

从0开始学习MySQL——01



3.6 删表(删——drop)

DROP TABLE <表名> ;



3.7 插入数据(增——insert)

INSERT INTO table_name ( field1, field2,...fieldN ) VALUES                       ( value1, value2,...valueN )


向表中插入一条数据

从0开始学习MySQL——01

注意:

  • 使用箭头标记 -> 不是 SQL 语句的一部分,它仅仅表示一个新行,如果一条SQL语句太长,我们可以通过回车键来创建一个新行来编写SQL语句,SQL语句以分号 ;结束。

  • 插入的数据如果是字符串,需要添加单引号或双引号。

  • 在以上实例中,没有提供student_id的数据,因为该字段在创建表的时候已经设置它为 AUTO_INCREMENT(自动增加) 属性。所以,该字段会自动递增而不需要我们去设置。实例中 NOW() 是一个 MySQL 函数,该函数返回日期和时间。



3.8 查询数据(查——select)

SELECT column_name,column_nameFROM table_name[WHERE Clause][LIMIT N][ OFFSET M]
  • 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。

  • SELECT 命令可以读取一条或者多条记录。

  • 你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据

  • 你可以使用 WHERE 语句来包含任何条件。

  • 你可以使用 LIMIT 属性来设定返回的记录数。

  • 你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。


从0开始学习MySQL——01



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的主要内容,如果未能解决你的问题,请参考以下文章

如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用

无法从 onListItemClick 开始片段

后按时从 onCreate() 开始片段

从0开始学习接口自动化测试(三)

片段从一开始就没有显示 |安卓工作室

从mysql的片段中加载ListView