自学内容网 自学内容网

MySQL 基础入门教程

参考视频地址:一小时MySQL教程 bilibili

SQL 基础

数据库分为关系型数据库和非关系型数据库

常见的关系型数据库:

  • MySQL、PostgreSQL、Oracle、SQL Server等。

非关系型数据库

  • MongoDB(文档型数据库)、Redis(键值型数据库)、Cassandra(列族数据库)、Neo4j(图形数据库)等。

在关系型数据库中,SQL(Structured Query Language) 语言 用于操作表中的数据,SQL 不区分大小写,但是一般来说,我们将关键字大写,表名、列名和其他名称小写。SQL 语言可以分为以下几类:

  1. DDL (Data Definition Language) 数据定义语言: CREATEDROPALTERTRUNCATE
  2. DML (Data Manipulation Language) 数据操作语言: INSERTUPDATEDELETECALL
  3. DQL (Data Query Language) 数据查询语言: SELECT
  4. DCL (Data Control Language) 数据控制语言: GRANTREVOKE
  • 数据库(database):保存有组织的数据的容器(通常是一个文件或一组文件)
  • 表(table):某种特定类型数据的结构化清单
  • 模式(schema):关于数据库和表的布局及特性的信息
  • 列(column):表中的一个字段。所有表都是有一个或多个列组成的
  • 数据类型(datatype):每个表列都有相应的数据类型
  • 行(row):表中的一个记录
  • 主键(primary key):一列(或一组列),其值能够唯一区分表中的每个行

SQL 数据类型

一、整数类型

  • INT:用于存储整数数据(4个字节)。
  • SMALLINT:存储范围较小的整数(2个字节)。
  • TINYINT:存储范围更小的整数
  • BIGINT:用于存储非常大的整数(8个字节)。

二、浮点类型

  • FLOAT:用于存储单精度浮点数。
  • REAL:在某些数据库系统中,REAL是FLOAT的同义词,或用于表示另一种浮点类型。
  • DOUBLE:用于存储双精度浮点数,精度高于FLOAT。

三、字符数据类型

  • CHAR(n):固定长度字符数据,n表示字符数。
  • VARCHAR(n):可变长度字符数据,n表示最大字符数,节省存储空间。
  • TEXT:用于存储大量文本数据,长度通常超过VARCHAR的限制。

四、Unicode数据类型

  • NCHAR(n):固定长度Unicode字符数据,n表示字符数。
  • NVARCHAR(n):可变长度Unicode字符数据,n表示最大字符数。
  • NTEXT:用于存储大量Unicode文本数据。

五、日期和时间数据类型

  • DATE:仅存储日期。
  • TIME:仅存储时间。
  • DATETIME:存储日期和时间。
  • TIMESTAMP:存储时间戳,通常用于记录时间变更或事件。

六、数值类型

  • NUMERIC(p, s)DECIMAL(p, s):用于精确存储小数数据,p表示总位数,s表示小数点后位数。

七、货币数据类型

  • MONEY:用于存储货币数据,通常要求8个存储字节。
  • SMALLMONEY:用于存储较小范围的货币数据,通常要求4个存储字节。

八、二进制数据类型

  • BINARY(n):固定长度二进制数据,n表示字节数。
  • VARBINARY(n):可变长度二进制数据,n表示最大字节数。
  • BLOB(Binary Large Object):用于存储大量二进制数据,如图片、音频、视频文件等。

九、其他数据类型

  • BOOLBOOLEAN:用于存储逻辑真或假,值通常为TRUE或FALSE,1或0。
  • ENUM:枚举类型,用于存储一组预定义的值。
  • ARRAYSETJSON等集合类型:用于存储一组数据。

需要注意的是,不同的数据库管理系统(如MySQL、PostgreSQL、SQL Server等)可能支持的数据类型及其特性略有差异。因此,在选择数据类型时,应参考具体数据库系统的文档和指南。

创建数据库

显示当前所有数据库:SHOW DATABASES;

创建数据库:CREATE DATABASE [name];

删除数据库:DROP DATABASE [name];

使用数据库:USE DATABASE [name];

创建表

显示数据库内的表:SHOW TABLES;

显示列:SHOW COLUMNS FROM [tablename];

创建表:

CREATE TABLE player(
    id INT,
    name VARCHAR(10),
    level INT,
    exp INT,
    gold DECIMAL(10,2)
)

显示表的信息:DESC player 或者 DESCRIBE player

修改表结构,使用 ALTER 语句:

  • 修改现有字段: ALTER TABLE player MODIFY COLUMN name VARCHAR(8);ALTER TABLE player MODIFY COLUMN level INT DEFAULT 1;

  • 增加字段:ALTER TABLE player ADD COLUMN last_login DATETIME;

  • 删除字段:ALTER TABLE player DROP COLUMN last_login;

删除表:DROP TABLE [table_name];

重命名表:RENAME TABLE [last_name] TO [current_name];

增删改查

查询关键字:SELECT

查询语句一般格式:SELECT [column_name] FROM [table_name] LIMIT [start_line_num, total_line_nums];

通配符*可以用于检索所有列:SELECT * FROM [table_name]

ORDER BY 子句用于对检索出的数据进行排序,DESC 用于降序排序,ASC 用于升序排序

SELECT 子句顺序:

  1. SELECT
  2. FROM
  3. WHERE
  4. GROUP BY
  5. HAVING
  6. ORDERED BY
  7. LIMIT

增加关键字:INSERT

修改关键字:UPDATE

删除关键字:DELETE

数据导入导出

数据导出:mysqldump

数据导入:

过滤数据

WHERE 关键字:SELECT [column_name1] FROM [table_name] WHERE [column_name2] IS NULL AND [column_name3] <= 3;

分组数据

GROUP BY 子句和 HAVING 子句;

子查询

表关联

索引

视图


原文地址:https://blog.csdn.net/Teriri_/article/details/142765531

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!