1、基本介绍
数据库(Database或DB):
数据库是按照某种数据结构对数据进行组织、存储和管理的容器,其核心永远是数据;可以理解为用于存放数据数据的仓库,只不过该仓库是在计算机存储设备上的,而且数据是按照一定格式存放的。
数据库管理系统(Database Management System或DBMS):
数据库管理系统是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
用户无法直接通过操作系统获取数据库文件中的具体内容,只能借助数据库管理系统。之后就可以轻松地实现访问(增、删、改、查等操作)数据库容器中的各种对象,并可以轻松地完成数据库的维护工作(备份、恢复、修复等操作)。
数据库可分为:
关系型数据库、面向对象数据库等,同时也有相对应的数据库管理系统。
本专题讲解的MySQL就属于关系型数据库管理系统(RDBMS),分为社区版及企业版,最早由瑞典MySQL AB公司开发,目前属于Oracle公司。随着关系型数据库管理系统的日臻完善,已占据主导地位,下图是截至2017年5月份的数据库知名度排序情况,可见MySQL依然有极大地优势。而MySQL之所以备受好评,原因有如下几点:首先MySQL是开源软件,源代码可以免费下载使用;其次MySQL便于安装,且性能优越;最后其提供的丰富功能,足以与商业数据库媲美。
关系型数据库:
关系型数据库是由多个表(table)和表之间的关联关系组成的数据的集合,表示一个由若干行、列组成的二维的关系结构,其中表的列段称为字段(field),表的行称为记录(record)。
2、目录结构
MySQL的默认安装位置是“C:\Program Files\MySQL\MySQL Server x.x”,简单了解下其目录结构:
bin目录:储存可执行文件
data目录:储存数据文件,包括数据库文件、索引文件等
docs目录:文件储存文档
include目录:储存包含的头文件
lib目录:存储库文件
share目录:存储错误消息和字符集文件
3、启动与停止MySQL服务
可通过在以管理员身份运行的CMD(命令提示符)中输入“net start mysql”来启动服务:
也可以输入“net stop mysql”来停止服务:
4、Mysql的登录与退出
使用MySQL依然要通过CMD,首先需要登录到MySQL的客户端,即输入mysql+参数,语法结构如下:
参数 | 描述
----|------|----
-D,--database=name | 打开指定的数据库
--delimiter = name | 指定分隔符
-h,--host=name | 服务器名称
-p,--password[=name] | 密码
-P,--port=# | 端口号
--prompt=name | 设置提示符
-u,--user=name | 用户名
-V,--version | 输出版本信息并退出
注意:端口号及版本信息的参数都是大写字母!
首先来看输出MySQL的版本信息:
之后要登录到MySQL的客户端,依次输入用户名,默认为超级用户“root”;密码,此时可以只输入“-p”,在回车后输入密码,可以保证密码的隐私性;再输入端口号及服务器名称,当出现“mysql>”提示符时,证明已经成功进入到客户端:
如果使用的是默认端口3306以及主机回送地址127.0.0.1,那么可以不输入“-P”及“-h”,只输入用户名及密码即可:
退出Mysql客户端可以输入“exit”、“quit”、“\q”中的任意一个,例如:
5、修改MySQL的提示符
之前登录到MySQL客户端后,显示的提示符是“mysql”,若需要修改提示符,方法有两种:
1.在登录客户端的同时指定参数修改提示符,即输入用户名及密码后添加“--prompt 提示符”,例如:
此处的“\h”指服务器名称,因此提示符就被修改为了“localhost”。
2.登录到MySQL之后,通过prompt命令修改,即直接输入“prompt 提示符”,例如:
可见此时提示符又变回原来的“mysql>”,至于修改提示符后可接的参数,可以参考下表:
参数 | 描述
----|------|----
\D | 完整的日期
\d | 当前数据库
\h | 服务器名称
\u| 当前用户
例如将提示符修改为“当前用户@服务器地址 完整的日期”,输入“prompt \u@\h \D”:
6、MySQL常用命令及语法规范
MySQL一些常用命令见下表:
参数 | 描述
----|------|----
SELECT VERSION(); | 显示当前服务器版本
SELECT NOW(); | 显示当前日期时间
SELECT USER(); | 显示当前用户
其中“SELECT VERSION();”类似于“mysql -V”:
其余两个命令效果如下:
可见这些命令都使用大写字母输入,这也涉及到了MySQL的语法规范:
1.关键字与函数名称全部大写
2.数据库名称、表名称、字段名称全部小写
3.SQL语句必须以分号结尾
当然在Windows系统下并不区分大小写,但是为了在语句中能对关键字或数据库名称等有效区分,因此建议关键字及函数名称还是输入大写。其次如果命令结束不输入分号,会出现“->”,表明系统一直在等待获得结束符,即分号,此时输入分号就可以继续执行该命令,例如:
7、结构化查询语言
在实际操作数据库之前,先来了解一下关系型数据库所使用的语言,即结构化查询语言(Structured Query Language或SQL),SQL被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后来被国际化标准组织(ISO)采纳为关系型数据库语言的国际标准,这就意味着该语言成为了一种应用最为广泛的关系数据库语言,几乎所有的关系型数据库管理系统都支持SQL。
SQL可分为以下几部分:
-
数据定义语言(Data Definition Language或DDL):用来创建、删除、更改数据库对象:库、表、列等;
使用的关键字:CREATE、ALTER、DROP -
数据操作语言(Data Manipulation Language或DML):用来定义数据库记录(数据);
使用的关键字:INSERT、UPDATE、DELETE -
数据控制语言DCL(Data Control Language):用来定义访问权限和安全级别;
使用的关键字:GRANT、REVOKE、COMMIT、ROLLBACK -
数据查询语言DQL(Data Query Language):用来查询记录(数据);
使用的关键字:SELECT
8、操作数据库
<br />
1.创建数据库
登录到MySQL后,并不是为了查看当前时间或登录账户,最主要的是对数据库进行基本的操作与管理,首先来看创建数据库的语法结构:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
[DEFAULT] CHARACTER SET [=] charset_name
其中“{}”内的语句是必有内容,“[]”内的语句是可选内容,“|”表示从选项中做出选择;之后的语法结构都是如此。
创建名为“t1”的数据库示例如下:
提示“查询成功,有一行被影响”,要注意此处的“查询”并不等同于之后要讲的“查找”,而“一行被影响”是因为要将创建成功的数据库的结果放入系统的数据库当中。要证明该数据库创建成功,就要查看当前服务器下的数据表列表,语法结构如下:
SHOW {DATABASES | SCHEMAS}
[LIKE 'pattern' | WHERE expr]
查询结果如下:
可见除了创建成功的数据库“t1”,还有MySQL安装成功后自带的四个的数据库,分别是information_schema、mysql、performance_schema、test。
接下来看一下之前尚未提到的“[IF NOT EXISTS]”是如何使用的,当前“t1”数据库已经存在,那么再次创建“t1”数据库会报错,此时如果添加“[IF NOT EXISTS]”,系统会忽略掉错误信息,只提示有一条警告,可以输入“SHOW WARNINGS”来查看警告信息,如下图所示:
警告信息的级别是“Note”级别,内容与之前的错误信息是相同的。
<br />
2.修改数据库
之后检查创建成功的数据库编码是否与之前设置的“utf8”格式相同,输入“SHOW CREATE DATABASE t1”,结果如下:
如果此时需要创建一个使用“gbk”编码的数据库,就需要使用之前提到的语法“[DEFAULT] CHARACTER SET [=] charset_name”,示例如下:
在创建数据库“t2”的同时,设置其编码为“gbk”格式,并检查确定为“gbk”格式,但有需要将“t2”数据库更改为之前的“utf8”的编码格式,可以使用以下语法:
ALTER {DATABASE | SCHEMA} [db_name]
[DEFAULT] CHARACTER SET [=] charset_name
结果如下:
显示将“t2”数据库编码格式修改为“utf8”且验证无误。
此时服务器中已经存在了多个数据库,若要指定数据库,可以使用“USE db_name”,来选择要使用的数据库,示例如下:
可以使用“SELECT DATABASE()”来验证当前使用的数据库是否是“t1”,示例如下:
<br />
3.删除数据库
最后可以将之前测试用的或日后确定无用的数据库进行删除,语法如下:
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name
示例如下:
至于“[IF EXISTS]”与之前的“[IF NOT EXISTS]”意义相通,如果再次删除不存在的数据库,系统会报错,但添加“[IF EXISTS]”只会提示有警告,警告的内容与错误信息一致。
<br />
4.操作数据库的SQL语句汇总:
-
创建数据库
直接创建数据库,使用默认的编码:CREATE DATABASE db_name;
使用指定的编码创建数据库:CREATE DATABASE db_name CHARACTER SET charset_name; -
查询数据库
查询当前服务器中的所有数据库:SHOW DATABASES;
查询之前创建的数据库的定义信息:SHOW CREATE DATABASE db_name; -
修改数据库
修改数据库的字符集:ALTER DATABASE db_name CHARACTER SET charset_name;
指定要使用且已存在的数据库:USE db_name;
查看当前正在使用的数据库:SELECT DATABASE(); -
删除数据库
删除数据库:DROP DATABASE db_name;
版权声明:欢迎转载,欢迎扩散,但转载时请标明作者以及原文出处,谢谢合作! ↓↓↓
网友评论
from 作者大脑
where mysql从入门到精通
我难道要把错误代码在敲一遍, tsql中,可以复制,粘贴,修改一下,可是mysql好像不行啊,粘贴了,会出现问题啊。
如果一行,我倒是可以复制,粘贴,修改。