乙巳🐍年

acc8226 的博客

关键字介绍

SQL 是由关键字组成的语言,关键字是一些用于执行 SQL 操作的特殊词汇。在命名数据库、表、列和其他数据库对象时,一定不要使用这些关键字。因此,这些关键字是一定要保留的。

show

所支持的其他 SHOW 语句还有:

❑ SHOW STATUS,用于显示广泛的服务器状态信息;
❑ SHOW CREATE DATABASE 和 SHOW CREATE TABLE,分别用来显示创建特定数据库或表的 MySQL 语句;
❑ SHOW GRANTS,用来显示授予用户(所有用户或特定用户)的安全权限;
❑ SHOW ERRORS 和 SHOW WARNINGS,用来显示服务器错误或警告消息。

显示所有可用的字符集以及每个字符集的描述和默认校对。
show character set;

阅读全文 »

Windows 上安装 MySQL

MySQL 下载地址为: MySQL 下载 。 这里我们挑选 MySQL Community Server。拿到压缩包后我们将进行解压后配置启动。这里我将解压后的文件夹放在 C:\web\mysql-8.0.11 下。

打开刚刚解压的文件夹 C:\web\mysql-8.0.11,在该文件夹下创建 my.ini 配置文件,编辑 my.ini 配置以下基本信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[client]
# 设置 mysql 客户端默认字符集
default-character-set=utf8

[mysqld]
# 设置 3306 端口
port = 3306
# 设置 mysql 的安装目录
basedir=C:\\web\\mysql-8.0.11
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
# datadir=C:\\web\\sqldata
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为 8 比特编码的 latin1 字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
阅读全文 »

引擎类型

与其他 DBMS 一样,MySQL 有一个具体管理和处理数据的内部引擎。在你使用 CREATE TABLE 语句时,该引擎具体创建表,而在你使用 SELECT 语句或进行其他数据库处理时,该引擎在内部处理你的请求。多数时候,此引擎都隐藏在 DBMS 内,不需要过多关注它。但 MySQL 与其他 DBMS 不一样,它具有多种引擎。它打包多个引擎,这些引擎都隐藏在 MySQL 服务器内,全都能执行 CREATE TABLE 和 SELECT 等命令。为什么要发行多种引擎呢?因为它们具有各自不同的功能和特性,为不同的任务选择正确的引擎能获得良好的功能和灵活性。

以下是几个需要知道的引擎:

  • InnoDB 是一个可靠的事务处理引擎,它不支持全文本搜索;
  • MEMORY 在功能等同于 MyISAM,但由于数据存储在内存中,速度很快(特别适合于临时表);
  • MyISAM 是一个性能极高的引擎,它支持全文本搜索,但不支持事务处理。

外键不能跨引擎 混用引擎类型有一个大缺陷。外键(用于强制实施引用完整性,如第1章所述)不能跨引擎,即使用一个引擎的表不能引用具有使用不同引擎的表的外键。

复杂的表结构更改一般需要手动删除过程

它涉及以下步骤:
❑ 用新的列布局创建一个新表;
❑ 使用 INSERT SELECT 语句(关于这条语句的详细介绍,请参阅第 19 章)从旧表复制数据到新表。如果有必要,可使用转换函数和计算字段;
❑ 检验包含所需数据的新表;
❑ 重命名旧表(如果确定,可以删除它);
❑ 用旧表原来的名字重命名新表;
❑ 根据需要,重新创建触发器、存储过程、索引和外键。

阅读全文 »

  • DQL:(Data QueryLanguage)数据查询语言(操作数据)
    select … from … where

  • DML:(Data Manipulation Language)数据操纵语言(可以控制事务的提交、操作数据)
    insert、update、delete

  • DDL:(Data Definition Language)数据库模式定义语言(隐式提交事务、操作数据库、表)
    create databse、create table、create view、create index、alter table、alter view、drop table、drop view、truncate table

  • TCL(Transaction Control Language)事务控制语言
    rollback、commit、savepoint

  • DCL:(Data Control Language)数据控制语言(操作数据库用户或角色权限)
    授权 grant、撤销权限 revoke、create user

DQL:(Data QueryLanguage)

查询是 MySQL 的重点内容。之后博文会有详细讲解。

查询语句示例:

阅读全文 »

AUTO_INCREMENT 详解

MySQL 中最简单使用序列的方法就是使用 AUTO_INCREMENT 来定义序列。

1
2
3
4
5
CREATE TABLE insect
-> (
-> id INT UNSIGNED NOT NULL AUTO_INCREMENT,
-> PRIMARY KEY (id),
...

设置序列的开始值
序列的开始值默认为 1,但如果你需要指定一个开始值 100,那我们可以通过在创建表的时候指定:

1
2
3
4
5
CREATE TABLE insect
(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
KEY (id)
) engine = innodb auto_increment = 100;
阅读全文 »
0%