MySQL的相关概念介绍
MySQL 为关系型数据库(Relational Database Management System), 这种所谓的"关系型"可以理解为"表格"的概念, 一个关系型数据库由一个或数个表格组成, 如图所示的一个表格:
- 表头(header): 每一列的名称;
- 列(row): 具有相同数据类型的数据的集合;
- 行(col): 每一行用来描述某个人/物的具体信息;
- 值(value): 行的具体信息, 每个值必须与该列的数据类型相同;
- 键(key): 表中用来识别某个特定的人\物的方法, 键的值在当前列中具有唯一性。
Windows下MySQL的配置
以 MySQL 5.7 免安装版为例, 下载 mysql-installer-community-5.7.36.0.msi ( 官方下载页:
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
配置步骤:
-
将下载的 mysql-installer-community-5.7.36.0.msi 安装到需要安装的位置, 如: C:\Program Files;
-
在安装文件夹下找到 my-small.ini 配置文件, 将其重命名为 my.ini , 打开进行编辑, 在 [client] 与 [mysqld] 下均添加一行: default-character-set = gbk
-
打开 Windows 环境变量设置, 新建变量名 MYSQL_HOME , 变量值为 MySQL 安装目录路径, 这里为 C:\Program Files\mysql-5.7.36-win32
-
在 环境变量 的 Path 变量中添加 ;%MYSQL_HOME%\bin;
-
安装 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 查询数据
- SELECT 语法 以下为在MySQL数据库中查询数据通用的 SELECT 语法:
SELECT column_name,column_name FROM table_name
- 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
- SELECT 命令可以读取一条或者多条记录。
- 你可以使用星号(*)来表示表中全部数据,SELECT语句会返回表的所有字段数据 如下:
select * from table_name
-
WHERE 语法 子句 如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句中。
以下是 SQL SELECT 语句使用 WHERE 子句从数据表中读取数据的通用语法:
- 可以在 WHERE 子句中指定任何条件。
- 可以使用 AND 或者 OR 指定一个或多个条件。
- WHERE 子句也可以运用于 SQL 的 DELETE 或者 UPDATE 命令。
- WHERE 子句类似于程序语言中的 if 条件,根据 MySQL 表中的字段值来读取指定的数据。
- 如果给定的条件在表中没有任何匹配的记录,那么查询不会返回任何数据。
-
ORDER BY 语法 子句 对读取的数据进行排序,我们就可以使用 MySQL 的 ORDER BY 子句来设定哪个字段哪种方式来进行排序,再返回搜索结果
- 使用任何字段来作为排序的条件,从而返回排序后的查询结果。
- 设定多个字段来排序。
- 使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列。 默认情况下,它是按升序排列。
-- ASC 升序
-- DESC 降序
SELECT field table_name ORDER BY `id` ASC
MySQL 修改数据
修改或更新 MySQL 中的数据 语法: 以下是 UPDATE 命令修改 MySQL 数据表数据的通用 SQL 语法:
- 可以在 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