一、数据库概述

MySQL是一个小型的关系数据库管理系统,由于该软件体积小、运行速度快、操作方便等优点,目前被广泛应用于Web上的中小企业网站的后台数据库中
MySQL数据库的优点如下:

  • (1)体积小、速度快、成本低。
  • (2)使用的核心线程是完全多线程的,可以支持多处理器。
  • (3)提供了多种语言支持,
    MySQL为C、C++, Python、Java、Perl、PHP、Ruby等多种编程语言提供了API,访问和使用方便。
  • (4) MySQL支持多种操作系统,可以运行在不同的平台上。
  • (5)支持大量数据查询和存储,可以承受大量的并发访问。
  • (6)免费开源

但是MySQL也存在以下一些缺点:

  • (1) MySQL最大的缺点是其安全系统,主要是复杂而非标准,另外只有到调用MySQLAdmin来重读用户权限时才发生改变。
  • (2) MySQL不支持热备份。

二、下载、安装、运行

参考博客: 数据库安装与配置

1、数据库运行

本地安装好后,windows命令行中输入“net start mysql”,即可启动。输入“mysql -u root”进入命令行模式,如下图所示:

MySQL 多线程插入事务回滚死锁 mysql是多线程_数据库

要退出该命令行,输入“quit”即可

三、命令行入门

1、基本操作

基本操作分为操作MySQL数据库和MySQL数据表

(1)操作MySQL数据库

创建数据库:

create dadabase 数据库名

查看数据库:

show dadabases

选择指定数据库:

use 数据库名

删除数据库:

drop dadabase 数据库名

(2)操作MySQL数据表

创建数据表:

create table 数据表名

查看数据表:

show tables

查看数据表结构:

describe 数据表名

添加记录:

insert into 数据表名 values

修改记录:

update 数据表名

2、基本操作实例

创建数据库、创建数据表、表中添加记录实例。

(1)查看数据库

想要查看数据库,输入“show databases”

MySQL 多线程插入事务回滚死锁 mysql是多线程_MySQL 多线程插入事务回滚死锁_02

图中一共列出了4个创建好的数据库,这4个是系统自动创建的,MySQL将有关DBMS自身管理的信息都保存在这几个数据库中,因此用户一般不需要对这几个数据库做任何的修改。

(2)创建数据库

用户可以自行创建数据库,输入“create database”,database表示要创建的名称,可自行命名,例如输入“create database stu”,如下图所示

MySQL 多线程插入事务回滚死锁 mysql是多线程_数据库_03

创建好数据库后,可使用“show databases”查看结果

MySQL 多线程插入事务回滚死锁 mysql是多线程_mysql_04

(3)切换当前数据库

创建好stu数据库后,可以在其中创建数据表。首先输入“use stu”命令,作用是使stu称谓系统默认的数据库,

MySQL 多线程插入事务回滚死锁 mysql是多线程_perl_05

(4)在stu数据库中创建表

创建表可使用“create table”,其中table 后紧跟数据表的名称,例如在数据库 stu 中创建学生信息表 user,命令为:

create table user
(id char(6) not null primary key,
name char(6) not null,
score tinyint(1) null)

create table user 表示创建了一个名为user的数据表,在create table 语句中每个列的说明都有列名、该列的数据类型和一些附加值组成。如 id、name、score表示列名,char(6)、tinyint(1)表示数据类型,char(6)表示改了包含固定长度的字符串,最大值为6个字符;tinyint(1)表示该列类型必须为整形,占用字节为1位,null 表示此处数据值可缺少,not null表示不可缺;primary key表示将id字段定义为主键。下图显示了常见的数据类型及其含义。
表1 整数类型

整数类型

字 节

tinyint

1

smallint

2

mediumint

3

int

4

bigint

8

表2 浮点类型

浮点类型

字 节

float

4

double

8

表3 日期时间类型

浮点类型

字 节

date

3

time

3

year

1

datetime

8

timestamp

8

表4 字符串类型

浮点类型

含 义

char

定义字符串

varchar

变长字符串

tinytext

短文本数据

text

长文本数据

mediumtext

中等长度文本数据

longtext

极大长度文本数据

表5 MySQL数据类型属性

数据类型的属性

含 义

null

数据列可为空

not null

数据列不可为空

default

默认值

primary key

主键

unsigned

无符号

auto_increment

自动递增

character set name

指定一个字符集

(5)查看数据表信息

想要查看已经创建好的数据包,可以使用show tables命令。如想看stu数据表,输入“show stu”,如下图所示

MySQL 多线程插入事务回滚死锁 mysql是多线程_数据库_06

(6)查看数据表结构

图中只显示了数据包user名称没没有显示数据表具体信息,如果想查看结构信息,可以使用 describe user命令,进一步了解user表字段和数据类型,如下图所示

MySQL 多线程插入事务回滚死锁 mysql是多线程_MySQL 多线程插入事务回滚死锁_07

从表中可以看到user各列的详细信息,如果只需要查看score列的详细信息,可使用desc user score 命令,其中desc是describe简写,用法一样,运行结果如下图所示

MySQL 多线程插入事务回滚死锁 mysql是多线程_数据库_08

(7)增加记录

可向数据表中添加记录,使用“insert”,如想添加一条记录,使用如下语句:

insert into user values('2428','xhx',99)

这样添加了一条 id=2428,name=xhx,score=99的数据,如下图所示

MySQL 多线程插入事务回滚死锁 mysql是多线程_MySQL_09

注:value属性中必须包含表中的每一列的值,且要按照表中列的顺序依次给出

如果要查看添加的记录,可以使用“select * from user”命令,结果如下图所示

MySQL 多线程插入事务回滚死锁 mysql是多线程_数据库_10

(8)修改表中的记录

在MySQL数据库中要想修改记录,通过update完成,比如想将user中的score减少10,可输入如下命令

update user
set score = score-10

MySQL 多线程插入事务回滚死锁 mysql是多线程_MySQL_11

(5)删除数据库

要想删除已创建好的数据库,通过 “drop database”,比如删除stu,输入如下命令

drop database stu

删库跑路!