SQL#
约 1147 个字 47 行代码 26 张图片 预计阅读时间 25 分钟
数据库管理系统(DBMS)种类#
关系型数据库:
Oracle
:第一个商业的关系型数据库。MySQL
: 开放源代码的关系型数据库。由瑞典MySQL AB(创始人Michael Widenius)公司于1995年开发。MariaDB
: 2008年Sun公司收购MySQL,2009年Oracle收购Sun。担心MySQL闭源,因此建立了MySQL的分支项目MariaDB。Microsoft SQL Server
:由微软开发的大型商业关系型数据库。DB2
:由IBM开发的商业关系型数据库。常应用在银行系统中。PostgreSQL
:开源关系型数据库。最符合SQL标准。SyBase
:已经淡出历史舞台,但提供了一个非常专业的数据库建模工具PowerDesigner
。SQLite
:嵌入式的小型数据库,应用在手机端。不需要安装、不需要配置、不需要启动、关闭或配置数据库实例。informix
:IBM公司出品,取自information和Unix的结合,它是第一个被移植到Linux上的商业数据库。仅运行于unix/linux平台。
键值型数据库:
Redis
:使用ANSI C编写的支持网络、基于内存、分布式、可选持久性的键值对存储数据库。
文档型数据库:
MongoDB
:一种面向文档的数据库管理系统,用C++等语言撰写而成,介于关系型数据库和非关系型数据库之间,以解决应用程序开发社区中的大量现实问题。
环境搭建#
Windows安装配置MySql 8.0.26#
- 双击下载的msi文件,打开安装向导。
- 选择
自定义安装
Windows安装Mysql 5.7#
与安装MySql 8.0.26
步骤基本相同
Windows安装MySql 8.4.0#
Windows卸载MySql#
- 停止服务
- 使用
Windows控制面板
卸载软件 - 删除数据文件和配置文件
- 清理环境变量
- 如果是5.x版本,还需要手动清理服务
Text Only
// 注册表中的ControlSet001,ControlSet002,不一定是001和002,可能是ControlSet005、006之类
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\MySQL服务 目录删除
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL服务 目录删除
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\MySQL服务 目录删除
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL服务目录删除
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL服务删除
- 重启电脑
登录服务#
- 方式一:使用程序提供的登录界面,用户为root
- 方式二:使用cmd登录
解决mysql 5.x默认字符集问题#
mysql 5.x默认字符集问题
mysql 5.x默认采用拉丁字符集,创建的表不能使用中文。
mysql 8.x默认采用utf8编码,不需要配置。
查看默认字符集采用的是拉丁
mysql> show variables like 'character_%';
+--------------------------+---------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | D:\mysql-5.7.44\share\charsets\ |
+--------------------------+---------------------------------+
8 rows in set, 1 warning (0.00 sec)
查看默认比较规则
mysql> show variables like 'collation_%';
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | gbk_chinese_ci |
| collation_database | latin1_general_ci |
| collation_server | latin1_general_ci |
+----------------------+-------------------+
3 rows in set, 1 warning (0.00 sec)
在my.ini文件中进行配置:
my.ini
[mysql] # 大概在63行左右,在其下添加
default-character-set=utf8
[mysqld] # 大概在76行左右,在其下添加
character-set-server=utf8
collation-server=utf8_general_ci
修改完配置,重启服务:
SQL语言规则与规范#
基本规则
- SQL 可以写在一行或者多行。为了提高可读性,各子句分行写,必要时使用缩进
- 每条命令以
;
或\g
或\G
结束 - 关键字不能被缩写也不能分行
关于标点符号
- 必须保证所有的()、单引号、双引号是成对结束的
- 必须使用英文状态下的半角输入方式
字符串型
和日期时间
类型的数据可以使用单引号(' ')
表示- 列的
别名
,尽量使用双引号(" ")
,而且不建议省略as
大小写规范-建议遵守
- 关键字、函数名、列名(或字段名)、列的别名(字段的别名) 是忽略大小写的。
- MySQL 在 Windows 环境下是大小写不敏感的
- MySQL 在 Linux 环境下是大小写敏感的。数据库名、表名、表的别名、变量名是严格区分大小写的
- ❤️推荐采用统一的书写规范:数据库名、表名、表别名、字段名、字段别名等都小写。SQL 关键字、函数名、绑定变量等都大写
注释#
导入数据#
或者使用图形化界面,如Navicat导入sql文件。