MySQL系列之数据库简介

2020-11-25 10:32:11 浏览数 (1)

数据库简介

数据库的定义有很多种,我的理解数据库就是一个特殊的文件夹,里面存放的是数据表;特殊的文件夹需要特定的方式打开操作;而不同公司开发出来的数据库功能和细节都不同,导致这种特定的方式也不同,使用数据库的学习成本就大大增加。

后来就有了一个大家遵循的标准,就是SQL标准。SQL也是一门查询语言,现在针对于关系型数据库所使用的的查询语言。

数据库管理系统

数据库管理系统,顾名思义:管理数据库的系统或者说软件。常见的有MySQL(免费,咱们讲的就是),Oracle(收费),SQL server(大学用的较多)等等。

DB、DBMS、SQL

数据库 DB(DataBase):特殊文件夹,用来存储数据

关系型数据库管理系统RDBMS(Relational DataBase Management System):用来管理数据库,也就是对数据库中的数据进行管理

结构化查询语言SQL(Structure Query Language):RDBMS使用SQL来管理DB。SQL是高级语言,计算机不能直接读懂,因此SQL在执行前,内部会先编译,这个编译过程由RDBMS完成。

数据表(table)

强调:数据库(特殊文件夹)是不能直接存放数据的,数据是存放在数据表中的

数据表其实和Excel中的表基本上一致。由(列名/字段名)和一条条的记录也就是数据组成

字段/列:MySQL中对于每列的数据的类型以及约束是在创建表的时候直接在字段后面进行指定的,比如说上图中的cust_id明显就是字符串类型的。就可以设置为varchar类型。 数据类型的单独讲解放到了后面

行: 行就是除了第一行字段名或者列名下面的数据。

SQL语句分类

SQL语句大致分以下几类:

DDL(Data Definition Language):数据库定义语言。主要关键字:create drop alter,对表的结构的增删改;

DML(Data Manipulation Language):数据库操纵语言。主要关键字:insert delete update,对表的数据的增删改;

DQL(Data Query Language)【重点】:数据库查询语言。主要关键字:select,包含select的sql语句都是查询语句;

DCL(Data Control Language):数据库控制语言。主要关键字:grant授权、revoke撤销权限; TCL(Transaction Control Language):事务控制语言。主要关键字:commit提交事务,rollback回滚事务。

对于数据分析师这个岗位来说着重要关注和练习的是DQL数据库查询语言。

MySQL连接

MySQL可以使用终端来进行连接,也可以使用Navicat这种图形化软件进行连接。使用哪种看个人选择。我接下来讲的是命令行启动。

代码语言:javascript复制
-- 命令行连接MySQL 如果MySQL是本机安装-h以及后面的主机地址可以省略
mysql -h 主机地址 -u 用户名 -p 用户密码
-- 查看当前数据库版本
select version();

-- 查看当前所有的库
show databases;

-- 使用指定库
use <库名>;

-- 查看当前使用的数据库
select database();

-- 查看当前数据库中所有的表  此命令需要先use database_name;
show tables;

建库以及删库语句

代码语言:javascript复制
-- 建库
create database <库名>;
-- create database是固定写法,   database_name是数据库的名字

-- 如果数据库已经创建 可以使用以下语句查看创建语句怎么写的
show create database <库名>;

-- 删库
drop database <库名>;
-- 和创建一样 drop database是固定写法,   database_name是数据库的名字
-- 在删除和创建以后都可以使用show databases;来查看该数据库是否存在

注意点: 删库需谨慎,在执行该命令的时,MySQL不会给出任何的提示,所以如果在执行drop database的时候 数据库中有数据依然会被直接删除,而且不能恢复

建表相关语句

代码语言:javascript复制
-- 建表
-- 语法
create table <表名>
(
字段名1 数据类型 [列级别约束条件] 默认值,
字段名2 数据类型 [列级别约束条件] 默认值,
......
[表级别约束条件]
);

--  在创建完所有列之后, 指定 表级别约束条件
--  [constraint 约束名] primary key (列名)
--  [constraint 外键约束名] foreign key (列名)  references 主表名(主键列名)

-- 例子
create table info(
    id int unsigned auto_increment primary key not null,
    name varchar(10),
    sex enum('男','女','未知')
);
-- auto_increment 自动增长

-- 查看表结构
desc 表名;
-- 查看建表语句
show create table <表名>;
-- 例子
show create table info;

-- 删表
drop table <表名>;
-- 例子:
drop table info;

数据表操作语句

代码语言:javascript复制
-- 修改表名
alter table <旧表名> rename <新表名>;
/*
create table table_1(
    id int unsigned auto_increment  not null,
    name varchar(10),
    sex enum('男','女','未知') default '未知',
    primary key(`id`)
);
*/
-- 现有table_1表 修改为people表
alter table table_1 rename info;

-- 修改字段名
alter table <表名> change <旧字段名> <新字段名> <新字段类型及约束>;
-- 其中旧字段名指的是需要修改的字段名
-- 新字段就是要修改为的字段名
-- 数据类型 就是这个字段的数据类型 必须添加该字段数据类型

-- 例子:修改people表中的name字段 原数据类型为varchar(10) 先修改为varchar(30)
alter table people modify name varchar(30);

-- 修改字段数据类型
alter table <表名> modify <列名> <类型及约束>;
-- 例子
alter table info modify name varchar(20) default '';


-- 添加表字段
alter table <表名> add <列名> <类型及约束>;
-- 例子: 给info表添加age字段,类型为int
alter table info add age int;

-- 删除字段
alter table <表名> drop <字段名>;
-- 例子
alter table info drop age;

小结

本篇就先介绍到建库建表以及删库删表,大家切记,删库需谨慎。

0 人点赞