ST-6-测试-Mysql学习-1

1. 环境搭建

1.1 数据库安装

安装mysql、sqlyoy

2. sqlyog连接mysql

Windows操作和虚拟机操作两种

练习常windws

……

Mysql既是一个数据库(database),也是一个数据库管理系统(DBMS)

3.数据库基础知识

3.1数据库基本概念:

数据库:database,DB

数据库系统:database system,简称DBS,由电脑硬件、操作系统、数据库管理系统(DBMS:database managerment system、数据库(DB)、数据库管理员(DBA:database administrator

mysql—关系型数据库

3.2数据表的构成

3.3 数据库,表和表之间的关系

直接关系:同一个数据库中,不同的两个表之间,具有相同字段。

间接关系:同一个数据库中,不同的两个表之间,没有直接关系,但是可以通过第三个或者其他相关的表(即通过的第三个表,建立起彼此间的关系)可以建立起联系。

表和表之间关系的另一种描述:

一对多

多对一

多堆多

3.4 数据库管理系统分类

关系型数据库:实现关系模型,并用它来处理数据。关系模型在表中将信息与字段关联起来(也叫schemas),从而存储数据。

这种数据库管理系统需要结构(例如表)在存储数据之前被定义出来。有了表,每一列(字段)都存储一个不同类型(数据类型)的信息。数据库中每个记录,都有自己唯一的key,作为某一表的一行,行中的每一个信息都对应了表中的一列,所有的关系一起,构成了关系模型。

常用关系型数据库:oracle、mysql、sql server, DB2

非关系型(nosql)数据库:文档型存储、列存储、缓存存储

4.dos命令模式下连接mysql数据库及相关操作(相关操作命令适用linux平台下的mysql操作)

4.1常用dos命令

Cd

………

4.2 Mysql工作目录

在目录中:C:\xampp\mysql\bin

………

4.3 dos命令模式下连接mysql数据库(相关sql语句也适用于linux平台)

4.3.1 cmd 进入 mysql

(1)进入目录C:\xampp\mysql\bin

(2)连接mysql数据库语法

--连接本地数据库:

mysql -u 用户名字 -p;

--连接远程数据库:

Mysql -h ip 地址 -u 用户名字 -p

解释:mysql 就是mysql.exe

-u:user,用户的意思,后面跟用户名

-p:password,后面跟密码

H:host 主机

说明:MariaDB 是mysql的一个特定版本

Sql语句编写注意事项

------sql语句编写注意事项dos-------

  1. 编写sql语句时,单词都要小写;
  2. 输入sql语句之前,需要将切入发切换到英文模式;
  3. 一个sql语句编写完成,需要以分号结尾;
  4. 单词要写对;
  5. 引号可以使用单引号或者双引号
  6. 语法正确

4.4 数据库连接后,可以有如下操作:

操作目的:【从hrbd数据库中的员工表employees中查询表中员工的姓/名】

  1. 查看mysql数据库管理系统中存在哪些数据库

show databases;

--show :显示

--databases:数据库的负数形式

  1. 选中或者打开一个数据库

use 数据库名;

举例:打开hrdb数据库

use hrdb;(语句执行完成,会有出现database changerd提示)

  1. 查看打开数据库中的哪些表

show tables;

--show 显示

  1. 查看一个表结构(目的:查看表中有哪些字段)

--语法1:

desc 表名;

--语法2:

describe 表名;

举例1:从 hrdb 数据库中的员工表 employees 中,查询表中所有员工的姓、名两个字段的值

SELECT first_name,last_name FROM hrdb.employees;

举例2:查看 hrdb 数据库的国家表 countries 表中的 country_name 数据

select country_name from countries;

  1. 查看当前打开的数据库是哪一个

select database();

  1. 查看当前使用的哪个用户连接的数据库

select user();

User:用户

说明当前连接数据库的用户为本地的 root 用户。

7)dos 模式下退出 mysql 数据库

方法一:exit

方法二:quit

方法三:ctr+c 强制退出

#典型问题说明:

1)错误的连数据库

在 dos 命令行模式下,root 用户密码为空的情况下,直接输入 mysql,而未输入其他内容(用户名、密码等)输入后,直接回车;

-- 结果:可以进入数据库,但会导致有些数据库看不到

2) 、SQL 语法错误:

一条 sql 语句输入后,如果存在语法错误,mysql 会给出如下提示:

1 queries executed, 0 success, 1 errors, 0 warnings 一个查询被执行,0 个成功,1 个错误,0 个警告

查询:selec1t * from aa.foods -- select 单词写错

错误提示代码: 1064

You have an error in your SQL syntax; check the manual that corresponds

你有一个错误,在你的 sql 语法中

to your MariaDB server version for the right syntax to 'selec1t *

from aa.foods' at line 1、

Near 后面引号中的内容附近为可能出错的地方。

5. 数据库操作

5.1 数据库的创建【重名时报 XX already】

-- 数据库库名命名规则重要说明:

-- (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;

-- 解释:

-- CREATE DATABASE:创建数据库的意思

CREATE:创建的意思

-- schoolc:数据库名称

-- DEFAULT CHARACTER SET utf8:指定默认字符集为 utf8

-- 支持中文的字符集:utf8、gbk、utf16、gb2312、big5(繁体) -- DEFAULT:默认的意思

-- CHARACTER:字符

-- Set:集合的意思

-- CHARACTER SET:字符集的意思

-- COLLATE:校对的意思

-- utf8_general_ci:排序规则,也叫校对规则,语法:字符集_地区_不区分大小写

-- ci:character insensitive:不敏感,就是对于输入的 sql 语句中的单词不区

分大小写的意思       

sensitive:敏感

insensitive:不敏感

--cs:区分大小写

5.2 修改数据库的字符集

-- 特别说明:

(1)只能对存在的数据库进行修改,否则报错;

(2)用本方法修改数据库的字符集后,新的字符集只对修改后创建的表有效;

(3)如果修改前的数据库不支持中文,那么,修改数据库前建的表,修改后 仍然不支持中文。

解决办法: 使用语句,执行如下语句,修改表的字符集:

alter table 库名.表名 convert to character

-- 语法:

ALTER DATABASE 库名 CHARACTER SET 新字符集名称 COLLATE 排序规则;

举 例 : 修 改 数 据 库 school2, 指 定 字 符 集 为 gb2312, 排序gb2312_chinese_ci,使该数据库对输入的 sql 语句不区分大小写

ALTER DATABASE school1 CHARACTER SET gb2312 COLLATE gb2312_chinese_ci;

-- 解释:Alter 修改的意思

-- ALTER DATABASE school:修改数据库 school -- CHARACTER SET gb2312:设置字符集为 gb2312

-- COLLATE gb2312_chinese_ci:设置排序规则为 gb2312_chinese_ci,ci 意思是不区分大小写

5.3 删除数据库

-- 语法:

DROP DATABASE 库名; -- drop 删除的意思

-- DROP DATABASE:删除数据库的意思

举例:删除指定的数据库 school

DROP DATABASE school;

提示语句说明:

You have an error in your SQL syntax:你的 sql 语法错误(包括可能单词写错)。

use near 'databaseeeee school2' at line 1 -- 红色字体的位置,就是在 usenear 之后的位置,一般为错误的地方。

6. MySQL 数据类

软件研发过程:

需求à概要设计à详细设计à编码à测试à发布à运维

定义数据库的依据:数据库设计说明书(数据字典)

架构师设计数据库时,对库名、表名、字段名进行定义时,要做到望文生义。

说明:MySQL 支持四种数据类型

数值型、字符型、日期时间型、混合型数值型:用来放数字 [整数 小数]

字符型:用来放名称、文字描述、文章等字符或者字符串

日期时间型:用来放日期、时间

混合型:用来放字符序列、性别(男、女)等

6.1 数值型

TINY:微小

SMALL:小

MEDIUM:中等的

INTEGER:整数,int 为 integer 的简写

Big:大

Byte 字节

bit:位

1byte=8bit

KB 千字节 1kB=1024*8 bit

MB 兆字节

GB 吉字节

说明:

一般 tinyint、int、integer、mediumint、bigint 类型存放整数Float、double、decimal 类型存放小数,一般做测试需要建表时,对于整数字段,常用 INT 型号

注意:在 sql 语句(insert、update、select 等语句)中使用数值型数据,包括各种整数和小数,都不用使用引号;

-- unsigned 关键字: 无符号类型,该字段的值只能是非负数,该关键字只对整数有效。

-- zerofill 关键字: 默认无符号,零填充,mysql 中,在数字长度不够的时候数据前面填充

0,以达到设定的长度;

-- 如果只希望表示零和正整数,可以使用无符号关键字“unsigned”

-- 如果往表中特定字段中输入的数据前面 0,建表时可以考虑使用关键字 zerofill -- zerofill 一般和 unsigned 配合使用

-- 特别说明:建表时,整型数据类型后的字符长度,只有在使用了 unsigned 和 zerofill

关键字时才有意义

-- 一般 unsigned 关键字和 zerofill(零填充) 关键字搭配在一起使用。

Zero:零的意思

Fill:填充

6.2 字符型

Char -- 单词 character 字符的简写

Varchar -- variable character 可变字符串的简写

Byte:字节,一个字节为 8bit

注意:字符型数据,在 insert、update,select 等语句中,需要用单引号或者双引号引起

来,如’张三’,"Tom";

6.3 日期时间型

DATE:日期Time:时间

Year:年

DATETIME:日期时间

TIMESTAMP :时间戳

STAMP:邮票,印章

Month:月

Day:日

Hour:小时

Minute 分钟

Second:秒

注意:insert、update、delete 等语句中,日期时间型数据,需要用引号(单引号或者双

引号)引起来,如果插入数据时使用的为通过函数获取日期时间,函数不需要加引号。

6.4 混合型

ENUM 类型:枚举类型,逐个列举的意思,一般为单选

F:female 女

M:male 男

SET 类型:集合类型,可以多选

注意:eENUM 枚举类型和 SET 集合类型在 insert 或者 update、select 表中数据时,需

要用引号将数据引起来。

总结:mysql 中,在 insert 语句、update 语句、select 语句中,除数值型数据,不需要加

引号,其他数据类型都需要加引号,引号可以是单引号或者双引号。例外:对于日期时间型数据,插入数据时,如果是使用日期时间相关函数获取系统日期时间,这时不用加引号,如果是插入数据时,直接给出具体的日期时间,需要用引号将之括起来。

7. 数据库中表的操作

7.1 创建表--笔试题

提醒:mysql 中,在数据库中建表,表不能重名。 表的表名命名规则:

-- 数据库表命名规则重要说明:

-- (1)数据库表名称可以支持大写字母 A-Z,小写字母 a-z,数字 0-9,字符包括下划线 _ ,可以组合使用;

--(2) 数据库表名称一般以字母开头;

--(3)数据库表名称不建议以纯数字命名;

--(4) 数据库表名称在 1-30 个字符之间;

--(5) 数据库表名称可以支持中文,但不建议使用中文命名;

--(6) 数据库表不能重名。

-- 语法:

CREATE TABLE 库名.表名(字段名 1 字段类型 1(字符长度 1),字段名 2 字段类型 2(字符长度 2));

举例:在 schoola 库中,创建表班级表 sclass,表中有字段班级编号 cno,数据类型为 int,长度为 5,班级名称 cname,数据类型为 char,长度为 20,系号为dno,数据类型为 int,长度为 3

Create table schoola.sclass( Cno int(5), Cname char(20), Dno int(3) );

执行结果: 1 queries executed, 1 success, 0 errors, 0 warnings 翻译:一个查询被执行,1 个成功,0 个失败,0 个告警

#建表时指定数据库引擎和字符集 -- 数据库引擎是什么?

-- 数据库引擎是一种存储、处理、保护数据库数据的核心服务。 

举例:查看 mysql 数据库的引擎 SHOW ENGINES;

查询结果说明:mysql 的数据库默认引擎为 innoDB,这个数据库引擎可以支持外键和事务。 举例:查看指定数据库中表的引擎 SHOW TABLE STATUS;

-- 查看结果显示 mysql 数据库的默认引擎 innodb。 

举例:在 test 库,创建表商品 goods,商品编号 gid,商品名称 gname,创建 表时,指定数据库的引擎为 innodb 和字符集为 utf8

CREATE TABLE test.goods(    gid INT(3),    gname CHAR(30)    )

ENGINE=INNODB DEFAULT CHARACTER SET=utf8;

SHOW TABLE STATUS;

-- 通过查看表的状态,可以查看表的引擎

7.2修改表

-- 说明:修改表就是修改表的表名、增加字段、删除字段、更换字段、修改数据类型及数据长度、修改表的约束等。

(1)为一个表增加字段

语法:

alter table 库名.表名

add [column] 字段名 数据类型(数据长度);

-- column,列,字段的意思,这里该关键字可以省略

-- 解释

Add column:增加字段

Column:列,字段

Add:增加

举例:为表 sclass 增加班主任名称字段 cOwner,数据类型为 char,数据长度 20

Alter table school2.sclass

Add column cowner char(20);

解释:

-- Alter table :修改表

-- Add column:添加

-- cowner :列名,字段名

-- char(20):数据类型(数据长度)

举例:修改 test2 库的表 cc 的字符集为 utf8

ALTER TABLE test2.`cc` CONVERT TO CHARACTER SET utf8;

SHOW TABLE STATUS;

-- 查看表的字符集,检查修改结果

7.3 删除表

-- 语法:

drop table 库名.表名;

举例:删除 school 数据库中的表 sclass

drop table school.sclass

特别说明:Mysql 中,库名、表名、字段名都不允许重名;表中的数据,如果表在已

经添加主键约束或者唯一键约束的情况下,数据不可以重复。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值