mysql算是在job description上经常出现要求测试人员掌握的数据库之一,一般都是Oracle或者mysql,要会其中之一。当然也有用Navicat Premium或者PostgreSQL 这种工具的。

个人觉得不管面试还是笔试数据库都考的比其他东西会少,甚至不考,但是必须会。

鉴于昨日介绍了xmind思维导图工具,所以今天来看下用xmind做冰山一角,一小部分mysql的思维导图啥效果。图片说明

数据库乱七八糟的概念就不复习太多了,直接看命令吧,懂数据库的可以跳过下面语句,毕竟是写文章给纯小白准备了足够你入门的注释。

-- 举例:创建数据库 nowcoder
CREATE DATABASE nowcoder;

-- create:创建
-- database: 数据库
-- nowcoder:数据库名称
-- CREATE DATABASE:创建数据库

-- 举例:在数据库nowcoder中创建学生表student
-- 表中的字段有学号、学生姓名、性别、班号
CREATE TABLE nowcoder.student
(
sid INT,-- 学号 
sname CHAR(30), -- 姓名
sex ENUM("F","M") -- 性别【F:女 M:男】
);

-- CREATE TABLE 建表
-- table 表
-- nowcoder.student:里面的student是表名,"."表示从属关系
-- sid:字段名,列名
-- INT:数据类型,这里表示整型,里面可以存放整数
-- CHAR(30):字符型,里面可以存放的字符的个数为30个
-- ENUM:枚举类型


-- 举例:往数据库nowcoder中的表student中插入一条数据:
-- 【学号:1,姓名:zhangsan,性别:M】

INSERT INTO nowcoder.`student`(sid,sname,sex) 
VALUES(1,"zhangsan","M");
-- insert:插入
-- into :往...里面
-- INSERT INTO :往...里面...插入
-- student`(sid,sname,sex) :
-- 往student表的sid、sanme、sex三个字段中插入数据
-- VALUES:值,里面放要插入的数据,
-- 数据的个数,需要和字段的个数一致

举例:修改nowcoder数据库中,student表中的数据,
将学号为1的数据的性别修改为F
UPDATE nowcoder.`student`
SET sex="F"
WHERE sid=1;

-- update修改
-- set 设置
-- where 条件,这里用来指出要修改的数据符合的条件

举例:查询nowcoder数据库student表中姓名为lisi的学生的学号和性别
SELECT sid,sex
FROM nowcoder.`student`
WHERE sname="lisi";

-- sex 性别
-- sid 学号
-- select 查询
-- from 从哪里查数据
-- where 条件,后面跟要查询的数据符合的条件


举例:查询nowcoder数据库student表中的所有数据
-- 方法一
SELECT * FROM nowcoder.`student`;

-- 方法二
SELECT sid,sname,sex FROM nowcoder.`student`;

-- * 号代表表中的所有数据

五、数据库的操作
1、数据库的创建
注意:数据库不能重名【重名时报 XX already EXISTS XX 已经存在】
-- 数据库库名命名规则重要说明:
-- (1)数据库名称可以支持大写字母A-Z,小写字母a-z,数字0-9,字符包括下划线_、,可以组合使用;-- 数字、字母、下划线
-- (2) 数据库名称一般以字母开头;
-- (3)数据库名称不建议以纯数字命名;
-- (4) 数据库名称在1-30个字符之间;
-- (5) 数据库名称可以支持中文,但不建议使用中文命名。 

总结:数据库名称,不能重名,以字母、数字、下划线组合构成,以字母开头,不建议使用纯数字或者中文命名。
-- 创建数据库语法:
CREATE DATABASE 库名 设置默认字符集 字符集名称 COLLATE 排序规则;
CREATE DATABASE 库名 DEFAULT CHARACTER SET 字符集名称 COLLATE 排序规则;

举例:创建数据库schoolc,使该数据库可以支持中文,创建好的数据库,
对输入的sql语句中的字符不区分大小写
CREATE DATABASE schoolc DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

2、修改数据库的字符集
-- 特别说明:
(1)只能对存在的数据库进行修改,否则报错;
(2)用本方法修改数据库的字符集后,新的字符集只对修改后创建的表有效;
(3)如果修改前的数据库不支持中文,那么,修改数据库前建的表,修改后
仍然不支持中文。
解决办法:
使用语句,执行如下语句,修改表的字符集:
ALTER TABLE 库名.表名 CONVERT TO CHARACTER SET utf8;
-- 语法:
ALTER DATABASE 库名 CHARACTER SET 新字符集名称 COLLATE  排序规则;

举例:修改数据库schoolc,修改这个数据库的字符集为gb2312,
排序规则为 gb2312_chinese_ci,使该数据库对输入的sql语句不区分大小写,并支持中文
ALTER DATABASE schoolc CHARACTER SET gb2312 COLLATE gb2312_chinese_ci;

3、删除数据库
-- 语法: 
DROP DATABASE 库名;
-- drop 删除的意思
-- DROP DATABASE:删除数据库的意思
举例:删除指定的数据库schoolc
DROP DATABASE schoolc;

六、MySQL数据类型
说明:MySQL支持四种数据类型
数值型、字符型、日期时间型、混合型
数值型:用来放数字 [整数 小数]
字符型:用来放名称、文字描述、文章等字符或者字符串
日期时间型:用来放日期、时间
混合型:用来放字符序列、性别(男、女)等
1、数值型
TINY:微小
SMALL:小
MEDIUM:中等的
INTEGER:整数,int为integer的简写
Big:大
BYTE 字节
bit:位
1BYTE=8BIT
KB 千字节 1kB=1024*8 BIT
MB兆字节
GB 吉字节
TB:
说明:
一般tinyint、int、integer、mediumint、bigint类型存放整数
Float、double、decimal类型存放小数
一般做测试需要建表时,对于整数字段,常用INT型号

CREATE TABLE test.stu
(
sid INT,
sid1 TINYINT,
sid2 SMALLINT,
sid3 MEDIUMINT,
sid4 INTEGER,
sid5 BIGINT,
score FLOAT(6,2),
score1 DOUBLE(6,2),
score2 DECIMAL(6,2)
);