MySQL基础1

本文详细介绍了MySQL数据库的基础知识,包括数据库的概念、分类,重点讲解了MySQL的优缺点和常用的图形化管理工具。此外,还深入阐述了数据库和表的操作,如创建、查看、修改和删除,并举例说明。最后,讨论了数据类型,如数字、时间和日期、字符串,以及表的约束,如默认、非空、唯一和主键约束,帮助读者全面掌握MySQL的基本操作。
摘要由CSDN通过智能技术生成

目录

一. MySQL简介

1. 什么是数据库?

1.1 概念

1.2 数据库分类

2. MySQL数据库

2.1 MySQL的优点

2.2 常见的图形可视化工具

二. 数据库的基本操作

1. 数据库操作

1.1 创建数据库

1.2 查看数据库

1.3 选择数据库

1.4 删除数据库

1.5 综合运用(案例)

2. 数据库表操作

2.1 创建数据表

2.2 查看数据表

2.3 修改数据表

2.4 查看表结构

2.5 修改表结构

2.6 删除数据表

2.7 综合运用(案例*附源码)

3. 数据操作

3.1 添加数据

3.2 查询数据

3.3 修改数据

3.4 删除数据

3.4 综合运用

三. 数据类型与约束

1. 数据类型

1.1 数字类型

1.2 时间和日期类型

1.3字符串类型

2. 表的约束

2.1 默认约束

2.2 非空约束

2.3 唯一约束

2.4 主键约束

2.5 自动增长


一. MySQL简介

1. 什么是数据库?

1.1 概念

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。

每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。

我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。

所以,现在我们使用关系型数据库管理系统来存储和管理大数据量。

1.2 数据库分类

1)关系型数据库SQL(Structured Query Language):

如MySQL、Oracle、Sql Server、DB2、SQLlite等;

通过表和表之间,行和列之间的关系进行数据的存储,通过外键关联来建立表与表之间的关系。

2)非关系型数据库:NoSQL(Not Only SQL)

如Redis、MongoDB等

指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定

2. MySQL数据库

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

2.1 MySQL的优点

1)简单易学,具有很强的操作性

2)开源:隶属于 Oracle 旗下产品

3)应用广泛:可以运行于多个系统上,并且支持多种语言(如C、C++、Python、Java、PHP等)

4)可以定制:采用了 GPL 协议,任何人都修改源码来开发自己的 MySQL 系统。

2.2 常见的图形可视化工具

1)WorkBeach:免费、官方、有付费软件才有的重型功能

2)Navicat:付费,是一个强大的MySQL数据库管理和开发工具。

3)SQLyog:是一个易用的、快速而简洁的图形化管理MYSQL数据库的工具,它能够在任何地点有效地管理你的数据库,而且完全免费的!

4)DataGrip:付费,由JetBrains公司推出的管理数据库的产品,对于JetBrains公司,开发者肯定都不陌生,IDEA和ReSharper都是这个公司的产品,用户体验非常不错。

二. 数据库的基本操作

1. 数据库操作

1.1 创建数据库

CREATE DATABASE [IF NOT EXISTS] 数据库名;
-- 注释:"[]"中的内容可加可不加,建议加上

1.2 查看数据库

SHOW DATABASES;

1.3 选择数据库

use 数据库名;

1.4 删除数据库

DROP DATABASE [if EXISTS] 数据库名;

1.5 综合运用(案例)

2. 数据库表操作

2.1 创建数据表

CREATE TABLE [IF NOT EXISTS] 表名(

                列名1 数据类型1,
                列名2 数据类型2,
	            ......
				
);

2.2 查看数据表

SHOW TABLES;

2.3 修改数据表

-- 修改数据表名称
ALTER TABLE 旧表名 RENAME TO 新表名;
-- 修改表选项(字符集、储存引擎、等)
ALTER TABLE 表名 表选项[=]值;

2.4 查看表结构

-- 1.查看数据表的字段信息
DESC 数据表名;  -- 查看所有字段信息
DESC 数据表名 字段名; -- 查看指定字段的信息 

-- 2.查看数据表的创建语句
SHOW CREATE TABLE 表名;
-- 3.查看数据表结构(在不加FULL选项查看时,查询结果和DESC的结果相同)
SHOW [FULL] COLUMNS FROM 数据表名;

2.5 修改表结构

-- 修改字段名
ALTER TABLE 数据表名 CHANGE 旧字段名 新字段名 字段类型[字段属性];
-- 修改字段类型
ALTER TABLE 数据表名 MODIFY 字段名 新类型[字段属性];
-- 修改字段位置
ALTER TABLE 数据表名 MODIFY 字段1 数据类型[字段属性] FIRST; -- 将字段1调整为数据表的第1个字段
ALTER TABLE 数据表名 MODIFY 字段1 数据类型[字段属性] AFTER 字段2; -- 将字段1插入到字段2的后面
-- 新增字段
ALTER TABLE 数据表名 ADD 新字段1 字段类型1 [FIRST | AFTER 字段名]; -- 新增一个字段并指定其位置
ALTER TABLE 数据表名 ADD (新字段1 字段类型1,新字段2 字段类型2,...); -- 同时新增多个字段
-- 删除字段
ALTER TABLE 数据表名 DROP 字段名;

2.6 删除数据表

-- 删除数据表
DROP TABLE [IF EXISTS] 数据表; -- 删除单个表
DROP TABLE [IF EXISTS] 数据表1,数据表2,...; -- 删除多个表

2.7 综合运用(案例*附源码)

 

 源码:

-- 创建一个students表
CREATE table students(
    ID INT,
    NAME VARCHAR(20),
    SEX VARCHAR(5),
    AGE VARCHAR(5)
);
-- 查看数据表
SHOW TABLES ;
-- 将表名修改为stu,字符集修改为UTF-8(注意:在修改语句中不要加“-”)
ALTER TABLE students RENAME TO stu;
ALTER TABLE students CHARACTER SET =UTF8;
-- 查询stu表的字段信息及创建语句
DESC stu;
SHOW CREATE table stu;
-- 修改SEX的字段为GENDER VARCHAR(10)
ALTER TABLE stu CHANGE SEX GENDER VARCHAR(10);
-- 添加HOBBY VARCHAR(30)字段到NAME字段的后面
ALTER TABLE stu ADD HOBBY VARCHAR(30) AFTER NAME;
-- 删除AGE字段
ALTER TABLE stu DROP AGE;
-- 删除stu表
DROP TABLE IF EXISTS stu;

3. 数据操作

3.1 添加数据

-- 1.为所有字段添加一条数据
INSERT INTO 表名 VALUES (值 1,值 2,...);
-- 1.1为所有字段添加多行数据
INSERT INTO 表名 VALUES (值 1,值 2,…),(值 1,值 2,…),...;
-- 2为部分字段添加一条数据
INSERT INTO 表名(字段名1,字段名2,...) VALUES (值 1,值 2,...);
-- 2.1为部分字段添加多行数据
INSERT INTO 表名(字段名1,字段名2,...) VALUES (值 1,值 2,…),(值 1,值 2,…),...;

3.2 查询数据

-- 查询表中全部数据
SELECT*FROM 数据表名;
-- 查询表中部分字段
SELECT(字段1,字段2...) FROM 数据表名;
-- 简单的条件查询(WHERE关键字)
SELECT*FROM 数据表名 WHERE 字段名=值;
SELECT(字段1,字段2...) FROM 数据表名 WHERE 字段名=值;

3.3 修改数据

-- 常规修改数据
UPDATA 数据表名 SET 字段名1=值1;
UPDATA 数据表名 SET 字段名1=值1,字段名2=值2...;
-- 加上条件判断
UPDATA 数据表名 SET 字段名1=值1 WHERE 条件表达式;
UPDATA 数据表名 SET 字段名1=值1[,字段名2=值2...] WHERE 条件表达式;

3.4 删除数据

-- 删除所有数据
DELETE FROM 数据表名;
-- 删除符合条件的数据
DELETE FROM 数据表名 WHERE 条件表达式;

3.4 综合运用

 

三. 数据类型与约束

        使用MySQL数据库来存储数据时,不同的数据类型决定了MySQL存储方式的不同。MySQL提供了多种数据类型其中包括数字类型、时间和日期类型、字符串类型。

1. 数据类型

1.1 数字类型

整数类型

作用:用于保存整数,根据取值范围不同分为以下五种。

数据类型字节数无符号数的取值范围有符号数的取值范围
TINYINT10~255-128~127
SMALLINT20~65535-32768~32768
MEDIUMINT30~16777215-8388608~8388608
INT40~4294967295-2147483648~ 2147483648
BIGINT80~18446744073709551615-9223372036854775808~9223372036854775808

浮点数类型

作用:用于存储小数,分为单精度浮点数类型FLOAT和双精度浮点数类型DOUBLE 

数据类型字节数有符号的取值范围无符号的取值范围
FLOAT4-3.402823466E+38~-1.175494351E-380和1.175494351E-38~3.402823466E+38
DOUBLE8-1.7976931348623157E+308~2.2250738585072014E-3080和2.2250738585072014E-308~1.7976931348623157E+308

 

定点数类型

数据类型字节数有符号的取值范围无符号的取值范围
DECIMAL(M,D)M+2-1.7976931348623157E+308~2.2250738585072014E-3080和2.2250738585072014E-308~1.7976931348623157E+308

M:表示数字总位数不包括“.”和“—”最大值位65,默认值位10;

D:表示小数点后的位数,最大值为30默认值位0;

例如DECIMAL(5,2)表示的取值范围是"—999.99~999.99"

BIT类型

BIT(位)类型用于存储二进制数据,语法为BIT(M);

M:表示位数,范围位1~64

1.2 时间和日期类型

作用:方便在数据库中存储日期和时间分为以下五种

数据类型字节数取值范围日期格式零值
YEAR11901~2155YYYY0000
DATE41000-01-01~9999-12-31YYYY-MM-DD0000-00-00
TIME3-838:59:59~ 838:59:59HH:MM:SS00:00:00
DATETIME81000-01-01 00:00:00~9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS0000-00-00 00:00:00
TIMESTAMP41970-01-01 00:00:01~2038-01-19 03:14:07YYYY-MM-DD HH:MM:SS0000-00-00 00:00:00

1.3字符串类型

数据类型类型说明
CHAR固定长度字符串
VARCHAR可变长度字符串
TEXT大文本对象
ENUM枚举对象
SET字符串对象
BINARY固定长度的二进制数据
VARBINARY可变长度的二进制数据
BLOB

二进制大对象 

2. 表的约束

        为了防止数据表中输入错误的数据,MySQL定义了一些维护数据库完整的规则,即表的约束。常见的约束分为5种,分别是默认约束、非空约束、主键约束、唯一约束和外键约束。外键约束比较复杂,涉及多表操作,将在后面学习。

2.1 默认约束

        默认约束用于为数据表中的字段指定默认值,即当在表中插入一条新记录时,如果没有给这个字段赋值,那么,数据库系统就会为这个字段插入默认值。

语法格式:字段名 字段类型 DEFAULT 默认值

示例

         在上述示例中,由于name和age字段没有设置非空约束,在插入记录时省略这两个字段的的值,则分别使用默认值NULL和18。为age字段设置默认值18后,插入NULL值,则保存结果为null,不使用默认值,在为有默认值的字段指定数据时,可以通过default关键字直接指定其使用默认值。

在为现有表添加或删除默认约束,具体如下

 通过使用alter table 修改列属性即可添加或删除默认约束

2.2 非空约束

非空约束指字段的值不能为null

语法格式:字段名 字段类型 NOT NULL

注:非空约束与值为null的默认约束(default null)不能同时存在

示例

 删除非空约束

alter table 表名 modify 字段名 字段类型 属性

  通过使用alter table 修改列属性即可添加或删除非空约束

2.3 唯一约束

唯一约束用于确保数据表中字段的唯一性,即表中字段的值不能重复出现

为现有表添加和删除唯一约束

        注:为现有表添加或删除唯一约束不能通过修改字段属性的方式操作,而是按照索引的方式来操作。关于什么时索引后续将会学习到,在这只需记住如何操作即可。下面通过示例的方式

 示例

 ​​​​​​

2.4 主键约束

        在MySQL中,为了快速查找表中的某条信息,可以通过设置主键来实现。主键可以唯一标识表中的数据,类似于我们的指纹、身份证用于标识人的身份一样。

        主键约束其实相当于唯一约束和非空约束的组合,要求字段被约束的字段不允许重复、也不允许出现NULL值,并且每个表最多只能含有一个主键。

语法格式

1.列级约束
字段名 数据类型 PRIMARY KEY
2.表级约束
PRIMARY KEY(字段名1,字段名2~~~)
若表级约束的字段只有一个,则和列级约束效果相同;若有多个则为复合主键。复合主键需要用多个字段来确定一条记录的唯一性,类似于复合唯一键

 示例

 为现有表添加和删除唯一约束

2.5 自动增长

        在为数据表设置主键约束后,每次插入记录时,都需要检查主键的值防止插入的值重复导致插入失败,这会给数据库的使用带来很多麻烦,为此可以利用MySQL提供的自动增长功能生成主键的值。

语法格式

字段名 数据类型 auto_increment

1)一个表中只能有一个自动增长字段,该字段的数据类型是整数类型,且必须定义为键(如:unique key、primary key);

2)若为自动增长的插入NULL、0、DEFAULT或在插入时省略该字段,则该字段就会使用自动增长值;若插入的是一个具体的值,则不会使用自动增长值。

3)自动增长值从1开始自增,每次加1。若插入的值大于自动增长的值,则下次插入的自动增长值会使用最大值加1;若插入的值小于自动增长的值,则不会对自动增长值产生影响;

4)使用DELETE删除记录时,自动增长值不会减小或填补空缺。

示例

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeCrusher

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值