数据库(Mysql)入门

147 阅读7分钟

MySQL的相关概念介绍

MySQL 为关系型数据库(Relational Database Management System), 这种所谓的"关系型"可以理解为"表格"的概念, 一个关系型数据库由一个或数个表格组成, 如图所示的一个表格: 数据库相关概念

  1. 表头(header): 每一列的名称;
  2. 列(row): 具有相同数据类型的数据的集合;
  3. 行(col): 每一行用来描述某个人/物的具体信息;
  4. 值(value): 行的具体信息, 每个值必须与该列的数据类型相同;
  5. 键(key): 表中用来识别某个特定的人\物的方法, 键的值在当前列中具有唯一性。

Windows下MySQL的配置

以 MySQL 5.7 免安装版为例, 下载 mysql-installer-community-5.7.36.0.msi ( 官方下载页: https://dev.mysql.com/downloads/mysql/5.7.html#downloads 配置步骤:

  1. 将下载的 mysql-installer-community-5.7.36.0.msi 安装到需要安装的位置, 如: C:\Program Files;

  2. 在安装文件夹下找到 my-small.ini 配置文件, 将其重命名为 my.ini , 打开进行编辑, 在 [client] 与 [mysqld] 下均添加一行: default-character-set = gbk

  3. 打开 Windows 环境变量设置, 新建变量名 MYSQL_HOME , 变量值为 MySQL 安装目录路径, 这里为 C:\Program Files\mysql-5.7.36-win32

  4. 在 环境变量 的 Path 变量中添加 ;%MYSQL_HOME%\bin;

  5. 安装 MySQL 服务, 打开Windows命令提示符, 执行命令: mysqld --install MySQL --defaults-file="my.ini" 提示"Service successfully installed."表示成功; MySQL服务的启动、停止与卸载

    在 Windows 命令提示符下运行: 启动: net start MySQL 停止: net stop MySQL 卸载: sc delete MySQL

MySQL脚本的基本组成

与常规的脚本语言类似, MySQL 也具有一套对字符、单词以及特殊符号的使用规定, MySQL 通过执行 SQL 脚本来完成对数据库的操作, 该脚本由一条或多条MySQL语句(SQL语句 + 扩展语句)组成, 保存时脚本文件后缀名一般为 .sql。在控制台下, MySQL 客户端也可以对语句进行单句的执行而不用保存为.sql文件。

标识符: 标识符用来命名一些对象, 如数据库、表、列、变量等, 以便在脚本中的其他地方引用。MySQL标识符命名规则稍微有点繁琐, 这里我们使用万能命名规则: 标识符由字母、数字或下划线(_)组成, 且第一个字符必须是字母或下划线。

对于标识符是否区分大小写取决于当前的操作系统, Windows下是不敏感的, 但对于大多数 linux\unix 系统来说, 这些标识符大小写是敏感的。

关键字: MySQL的关键字众多, 这里不一一列出, 在学习中学习。 这些关键字有自己特定的含义, 尽量避免作为标识符。

语句: MySQL语句是组成MySQL脚本的基本单位, 每条语句能完成特定的操作, 他是由 SQL 标准语句 + MySQL 扩展语句组成。

函数: MySQL函数用来实现数据库操作的一些高级功能, 这些函数大致分为以下几类: 字符串函数、数学函数、日期时间函数、搜索函数、加密函数、信息函数。

MySQL脚本的基本组成

MySQL有三大类数据类型, 分别为数字、日期\时间、字符串, 这三大类中又更细致的划分了许多子类型:

  • 数字类型
    • 整数: tinyint、smallint、mediumint、int、bigint

    • 浮点数: float、double、real、decimal

  • 日期和时间 - date、time、datetime、timestamp、year
  • 字符串类型
  • 字符串: char、varchar
  • 文本: tinytext、text、mediumtext、longtext
  • 二进制(可用来存储图片、音乐等): tinyblob、blob、mediumblob、longblob

使用MySQL数据库

登录到MySQL

当 MySQL 服务已经运行时, 我们可以通过MySQL自带的客户端工具登录到MySQL数据库中, 首先打开命令提示符, 输入以下格式的命名: mysql -h 主机名 -u 用户名 -p

  • -h : 该命令用于指定客户端所要登录的MySQL主机名, 登录当前机器该参数可以省略;
  • -u : 所要登录的用户名;
  • -p : 告诉服务器将会使用一个密码来登录, 如果所要登录的用户名密码为空, 可以忽略此选项。

创建一个数据库

代码

创建数据库
CREATE DATABASE  数据库名;
 判断数据库是否已经存在,不存在则创建数据库
CREATE DATABASE IF NOT EXISTS  数据库名;
 创建数据库并指定字符集
CREATE DATABASE  数据库名 CHARACTER SET  字符集;

具体操作

-- 直接创建数据库 db
create database db;
-- 判断是否存在,如果不存在则创建数据库 db
create database if not exists db1;
-- 创建数据库并指定字符集为 gbk
create database db2 default character set gbk;

修改数据库

修改数据库默认的字符集

ALTER DATABASE  数据库名 DEFAULT CHARACTER SET

具体操作:

alter database db2 character set utf8;

删除数据库

DROP DATABASE  数据库名;

具体操作

 删除 db2 数据库
 drop database db2;

使用/切换数据库

USE  数据库名;

创建表

CREATE TABLE  表名 (
字段名 1  字段类型 1,
字段名 2  字段类型 2
);

具体操作:

CREATE TABLE  表名 (
字段名 1  字段类型 1,
字段名 2  字段类型 2
);

传建一个表:

| student | CREATE TABLE `student` (
  `sno` varchar(20) NOT NULL COMMENT '学号(主码)',
  `sname` varchar(20) NOT NULL COMMENT '学生姓名',
  `ssex` varchar(20) NOT NULL COMMENT '学生性别',
  `sbirthday` datetime DEFAULT NULL COMMENT '学生出生年月',
  `class` varchar(20) DEFAULT NULL COMMENT '学生所在班级',
  PRIMARY KEY (`sno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

MySql增删查改

MySQL 插入数据

语法 以下为向MySQL数据表插入数据通用的 INSERT INTO SQL语法: 提示:如果数据是字符型,必须使用单引号或者双引号,如:"value"。

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

MySQL 查询数据

  1. SELECT 语法 以下为在MySQL数据库中查询数据通用的 SELECT 语法:
SELECT column_name,column_name FROM table_name
  1. 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
  2. SELECT 命令可以读取一条或者多条记录。
  3. 你可以使用星号(*)来表示表中全部数据,SELECT语句会返回表的所有字段数据 如下:
select * from table_name
  1. WHERE 语法 子句 如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句中。

    以下是 SQL SELECT 语句使用 WHERE 子句从数据表中读取数据的通用语法:

    1. 可以在 WHERE 子句中指定任何条件。
    2. 可以使用 AND 或者 OR 指定一个或多个条件。
    3. WHERE 子句也可以运用于 SQL 的 DELETE 或者 UPDATE 命令。
    4. WHERE 子句类似于程序语言中的 if 条件,根据 MySQL 表中的字段值来读取指定的数据。
    5. 如果给定的条件在表中没有任何匹配的记录,那么查询不会返回任何数据。
  2. ORDER BY 语法 子句 对读取的数据进行排序,我们就可以使用 MySQL 的 ORDER BY 子句来设定哪个字段哪种方式来进行排序,再返回搜索结果

    1. 使用任何字段来作为排序的条件,从而返回排序后的查询结果。
    2. 设定多个字段来排序。
    3. 使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列。
-- ASC 升序
-- DESC 降序
SELECT field table_name ORDER BY `id` ASC

MySQL 修改数据

修改或更新 MySQL 中的数据 语法: 以下是 UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法:

  1. 可以在 WHERE 子句中指定任何条件。
UPDATE table_name SET field1='value' WHERE `id`>10

MySQL 删除数据

语法 以使用 SQL 的 DELETE FROM 命令来删除 MySQL 数据表中的记录: 1. 如果没有指定 WHERE 子句,MySQL 表中的所有记录将被删除。 2. 你可以在 WHERE 子句中指定任何条件

DELETE FROM table_name WHERE `id`>10