一、安装MySQL
笔者使用的是MySQL8.0中的最新版(8.0.22),安装过程不再赘述,但需要注意的是密码强度那块,开发人员给了我们两个选项:
第⼀个选项:模式为强密码校验模式, MySQL 8.0 推荐使⽤最新的数据库和客户端, 更换了加密插件, 者可能导致第三⽅客户端⼯具⽆法连接数据库.;
第⼆个选项:加密⽅式沿袭了 MySQL 5.x 的加密⽅式, 对第三⽅⼯具连接不敏感, 安全性较第一种低一些。
因此,需要根据用户的需要谨慎选择加密方式!!
二、使用MySQL
【笔者刚开始学习,所以使用的是较为友好的Workbench界面。】
1、创建数据库连接(由于本课程主要介绍RDBMS,即关系数据库管理系统的相关操作),所以这一步很重要!
点击图中用紫色圈出的地方 ,创建新的数据库连接。然后会跳出下面的窗口:
在上图的圈1中设置新创建的RDBMS名称,然后点击圈2,输入你的数据库密码,点击ok,就完成了数据库的创建。
2、编写SQL程序代码(这一部分我直接以Task01的作业练习为实例,进行演示)
作业如下图:
(1)、在第一步中开启的界面的菜单栏中,选择Create a new schema in the connected server,即创建一个新的数据库架构,我将它命名为Task01,其他选项保持默认,点击Apply,点击Finish。效果如下图:
【注意:由于MySQL语法不区分大小写,所以Task01——>task01没什么好奇怪的!】
(2)、注意!!!这一步很重要,双击上图中新创建的SCHEMAS:task01,使它的字体变成黑体。
否则,在全编译过程中会报错:Error Code:1046,提示你没有默认的DB
(3) 在Task01中创建表:
首先,需要打开当前DB的一个Tab(Query),在菜单栏中的Query中选择new tab to current server;
然后,在其中编写如下代码:
CREATE TABLE Addressbook (
regist_no INTEGER NOT NULL,
_name VARCHAR(128) NOT NULL,
address VARCHAR(256) NOT NULL,
tel_no CHAR(10),
mail_address CHAR(20),
PRIMARY KEY (regist_no)
);
【注意:这里有一个小技巧:如果不想在写代码时不断进行大小写切换、不断进行代码美观的设计,可以暂时不顾及这些,在编写完任意模块代码后,在菜单栏中点击Edit,选择其中的Format选项,然后点击其中的Beautify Query,即可解决一切问题!!】
(4)添加列:
这里要用到SQL——DML中的 ALTER TABLE 语句,其语法是:
ALTER TABLE < 表名 > ADD COLUMN < 列的定义 >;
本练习中需要加入如下代码段:
ALTER TABLE addressbook ADD COLUMN postal_code CHAR(8) NOT NULL;
(5)插入数据:
这里要用到SQL——DML(Data Manipulation Language,数据操纵语言)中的插入语句,其语法是:
INSERT INTO <表名> (列1, 列2, 列3, ……) VALUES (值1, 值2, 值3, ……);
本练习中需要加入如下代码段:
INSERT INTO Addressbook VALUES
(1,'Peter','地球-南极-静虚宫-斩妖台','6666666666','888_8888_99999999999','12345678'),
(2,'John','地球-北极-南天门-镇妖塔','6666666666','888_8888_99999999999','87654321');
(6)编写SQL语句来删除Addressbook表:
这里要用到SQL——DML中的 ALTER TABLE 语句,其语法是:
DROP TABLE addressbook;
或
TRUNCATE TABLE TABLE_NAME;
【注意:
1、使用DROP语句删除的是整个表格,包括表头;而使用TRUNCATE删除的仅仅是表中的数据,表的框架(表头等)还在;
2、TRUNCATE相比其它删除表格的关键字有明显的优势:相比drop``/``delete
,truncate
用来清除数据时,速度最快。】
(7)编写 SQL 语句来恢复删除掉的 Addressbook 表。
删除掉的表属于过去式,无法直接恢复。
3、表格的查看
这里直接调用MySQL的内置功能即可,点击task01——Tables的下拉选项,右击鼠标于adressbook选择Select Rows即可看见当前创建的表格:(直接上图)
4、SQL语句书写规范:
常见注意事项如下:
- MySQL本身不区分大小写,但强烈要求关键字大写,表名、列名用小写;
- 创建表时,使用统一的、描述性强的字段命名规则保证字段名是独一无二且不是保留字的,不要使用连续的下划线,不用下划线结尾;最好以字母开头
- 关键字右对齐,且不同层级的用空格或缩进控制,使其区分开,见样例二;
- 列名少的时候写在一行里无伤大雅;多的时候以及涉及到CASE WHEN 或者聚合计算的时候,建议分行写;个人习惯是逗号在列名前面,方便之后删除某些列,放列名后亦可;
- 表别名和列别名尽量用有具体含义的词组,不要用a b c,不然以后review的时候会非常痛苦;
- 运算符前后都加一个空格;
- 当用到多个表时,请在所有列名前写上引用的表别名,不要嫌麻烦;
- 每条命令用分号结尾;
- 养成随手写注释的习惯,注释方法:
单行注释 #注释文字
单行注释 -- 注释文字
多行注释:/* 注释文字 */