正在学习软件测试--MySQL数据库,本文内容是我总结的一些MySQL发展史、概念和常用命令总结。
本文用的是服务器,运用Docker容器进行部署的MySQL
MySQL数据库
MySQL发展史
- 数据库从20实际50年代中期开始,计算机应用有科学研究逐渐扩展到企业、行政等社会的各个领域,数据处理已成为计算机的主要英语领域
- 20世纪60年代末,数据库技术作为数据处理中的一门新技术得到了快速发展
- 数据库技术已经成为计算机信息系统与应用系统的主要技术和核心技术
数据库概念
- 数据库(Database ,DB)是按照特定数据结构来组织、存储和管理数据的仓库
- 数据库其实就是一个容器,它由表、视图、索引、触发器、存储过程、用户等对象组成,这些对象称之为数据库对象
- 所以在使用这些对象之前,必须先进行创建数据库
数据库系统
- 数据库系统(Database System,DBS)是一个时即可运行的储存、维护和应用系统提供数据的软件系统,是存储介质、处理对象和管理系统的集合体
- 它通常有软件、数据库和数据管理员组成
- DBS包含DBMS、DB、DBA和User
认识MySQL命令
命令规范
- MySQL关键字与函数名全部大写;
- 数据库名称、表名称、字段名等全部为小写字母及数字,并禁止与系统关键字相同;
- MySQL数据表存储引擎统一为InnoDB;
- MySQL数据库、数据表的编码方式统一为UTF8;
- SQL语句必须以分号结尾;(英文状态下);
- 所有数据表及字段都要添加注释;
- 不强制使用外键参考;
- 杜绝直接SELECT*读取全部字段;
标识符
- 数据库及其对象的名称即为其标识符
- 标识符必须以字母或下划线开头,包含字母、数字及下划线
- 标识符可以引起来也可以不引起来,如果标识符是一个保留字或包含特殊字符,无论何时使用,必须将他引起来,标识符的引用符是反引号(``)
- MySQL允许使用由单个标识符或多个标识符组成的名字,多部份的各组件之间应以英文句号分隔;
标识符 | 最大长的(字节) | 允许的字符 |
数据库 | 64 | 目录名允许任何字符,不包括/、\或者. |
表 | 64 | 文件名允许任何字符,不包括/、\或者. |
列 | 64 | 所有字符 |
索引 | 64 | 所有字符 |
别名 | 255 | 所有字符 |
SQL语句
SQL属于结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,同时也是数据库脚本文件的扩展名
SQL语言分类
- 数据定义语言(DDL),负责数据结构定义与数据库对象定义的语言
- 数据操作语言(DML),负责用于添加、修改和删除数据表中的记录(行),也称为动作查询语言
- 数据查询语言(DQL),负责进行数据查询而不会对数据本身进行修改的语句,也称为“数据检索”语句
- 事务控制语句(PCL),负责管理数据库的事务,维护数据的一致性
- 数据控制语句(DCL),负责用于权限的授权和收回操作
MySQL常用命令运用
我用的是Docker部署的MySQL环境,部署详细步骤在我的专栏《Linux系统》有一篇写有,在这里就简单写了哈。
部署Docker容器
先卸载之前版本
yum remove docker
设置Docker仓库
yum install -y yum-utils
设置稳定仓库,提升之后下载速度
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装Docker Engine-Community 和 containerd
yum install docker-ce docker-ce-cli containerd.io
#均选
启动Docker
#设置开机自启
systemctl enable docker
#启动Docker
systemctl start docker
Docker安装MySQL
下拉镜像
#这里我安装的是mysql:5.6版本的
docker pull mysql:5.6
创建一个新的容器并进行
#这里我容器名命名位mysql,映射端口号3306,数据库用户位root,数据库密码为123456
docker run --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d --restart=always mysql:5.6
#查看容器是否运行
docker ps
进入容器
docker exec -it mysql bash
#进入MySQL终端
mysql -uroot -p123456
MySQL命令运用及练习
创建数据库
CREATE DATABASE [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET[=]charset_name;
查看创建好的数据库
SHOW CREATE DATABASE db_name;
Demo
-- 创建名为testdb的数据库
-- 创建名为testdba的数据库且字符编码设置为utf8
CREATE DATABASE testdb;
CREATE DATABASE testdba DEFAULT CHARACTER SET utf8;
-- 查看创建好的testdb数据库,如果没有指定字符编码默认使用db.pot文件中编码方式
SHOW CREATE DATABASE testdb;
-- 查看创建好的testdba数据库
SHOW CREATE DATABASE testdba;
查看当前数据库列表
SHOW DATABASES [LIKE '模式' | WHERE 表达式]
Demo
-- 显示当前服务器所有数据库
SHOW DATABASES;
-- 显示当前服务器下所有以字母t开头的数据库
SHOW DATABASES LIKE 't%';
-- 显示当前服务器下所有第二个字符为e的数据库
SHOW DATABASES LIKE '_e%';
打开数据库
USE db_name;
Demo
-- 打开/使用/切换数据库
USE testdb;
-- 显示当前数据库
SELECT DATABASE();
修改数据库
ALTER DATABASE db_name [DEFAULT] CHARACTER SET[=]charset_name;
Demo
-- 修改testdb 数据库编码方式为gb2312
ALTER DATABASE testdb CHARACTER SET gb2312;
删除数据库
DROP DATABASE [IF EXISTS] db_name;
-- [IF EXISTS] 用于防止当数据库不存在时发生错误
#删除testdb数据库
DROP DATABASE testdb;
-- 删除不想存在的数据库导致错误
--ERROR 1008 (HY000): Can't drop database 'testdb'; database doesn't exist
DROP DATABASE IF EXISTS testdb;
-- 加上IF EXISTS
-- Query OK, 0 rows affected, 1 warning (0.00 sec)
Demo
-- 关闭数据库,重新连接数据库
docker stop mysql
docker start mysql
-- 创建一个名为tsd 数据库
docker exec -it mysql bash
mysql -uroot -p123456
CREATE DATABASE tsd;
--验证是否创建成功
SHOW CREATE DATABASE tsd;
-- 使用tsd 数据库
USE tsd;
-- 查看当前使用的数据库
SELECT DATABASE();
-- 显示当前数据库服务器版本
SELECT VERSION();
-- 显示当前用户
SELECT USER();
-- 选择 testdba数据库
USE testdba();
-- 查看当前选择的数据库
SELECT DATABASE();
-- 创建一个名为tmooc数据库且字符编码设置为utf8并且验证数据库是否创建成功
CREATE DATABASE tmooc CHARSET SET utf8;
SHOW CREATE DATABASE tmooc;
-- 使用tmooc数据库
USE tmooc;
-- 修改数据库tmooc字符编码设置gb2312
ALTER DATABASE tmooc CHARACTER set gb2312;
-- 删除tmooc数据库
DROP DATABASE tmooc;
-- 查看tmooc数据库是否删除成功
SHOW DATABASES;
创建数据表
CREATE TABLE [IF NOT EXISTS] table_name(column_name1 data_type,column_name2 data_type);
Demo
--创建一个test01数据库
CREATE DATABASE test01 CHARSET set utf8;
USE test01;
-- 在test01数据库中创建user表
-- user字段包含 username,password,age
-- username,password为可变长度的字符串类型,范围在20
-- age为整数类型,范围使用系统默认
CREATE TABLE user(username VARCHAR(20),password VARCHAR(20),age INT);
-- 创建一张表,表明mall_pms
-- 用户id 为整数类型\用户名为字符串类型长度30\密码为字符串类型长度16
CREATE TABLE mall_pms(id INT,name CHAR(30),age INT,password CHAR(16));
-- 创建一张表,表名为crm_pms
-- 用户id 为整数类型\姓名为字符串类型长度为30\年龄为整数类型\性别为字符串类型,长度为3、工资为小数类型长度为7 保留两位小数
CREATE TABLE crm_pms(id INT,name CHAR(30),age INT,sex CHAR(3),pay DOUBLE(7,2));
查看指定数据库的表
SHOW TABLES [FROM db_name][LIKE '条件' | WHERE 表达式];
-- 查看当前数据库中所有数据表
SHOW TABLES;
-- 查看当前数据库中所有以m开头的数据表
SHOW TABLES LIKE 'm%';
-- 查看test01数据库下所有数据表
SHOW TABLES FROM test01;
-- 查看test01数据库下所有以字母c开头的数据表
SHOW TABLES FROM test01 LIKE 'c%';
查看数据表结构
SHOW COLUMNS FROM tbl_name [FROM db_name];
-- 查看crm_pms表结构
SHOW COLUMNS FROM crm_pms;
-- 查看test01数据库中的mall_pms的表结构
SHOW COLUMNS FROM mall_name FROM test01;
很认真的在总结在编写,如果觉得有用的话就给点个赞鼓励一下呗,谢谢哦!
标签:name,DATABASE,--,数据库,SHOW,MySQL,CREATE From: https://blog.51cto.com/u_16239770/7354884