MySQL 第一篇:数据类型和操作数据库结构

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 我把MySQL的内容整理成9篇博客,学完这9篇博客虽不能说能成为大神,但是应付一般中小企业的开发已经足够了,有疑问或建议的欢迎留言讨论。 一、数据类型 1、数值类型 2、字符串类型 3、日期和时间类型 4、复合类型 ENUM 格式:ENUM(value1, value2, …) 存储大小:1-255个成员:1字节;256-65535个成员:2字节。

我把MySQL的内容整理成9篇博客,学完这9篇博客虽不能说能成为大神,但是应付一般中小企业的开发已经足够了,有疑问或建议的欢迎留言讨论。

一、数据类型

1、数值类型

2bb3329ccb086e924f239b82c8dd82b8b278fbc4

2、字符串类型

804d440c400a0630bb3016bbda66a68132f5cbb6

3、日期和时间类型

2d1f1f0591f23e83ea593556727efad34ff31507

4、复合类型

ENUM

  • 格式:ENUM(value1, value2, …)
  • 存储大小:1-255个成员:1字节;256-65535个成员:2字节。
  • 描述:存储预先定义好的字符串列表,插入和更新必须使用列表中的值,如果插入值不在列表中,则插入空串。可以通过索引引用列表中的值,索引由0开始。ENUM最大成员数为65535。

SET

  • SET(value1, value2, …)
  • 存储大小:1-8个成员:1字节;9-16个成员:2字节;17-24个成员:3字节;25-32个成员:4字节;33-64个成员:8字节。
  • 描述:存储预先定义好的字符串列表,字段值可为集合中任意成员值。SET不按索引存储,而是以位图方式存储。SET存储的最大值为64。

二、操作数据库

1.创建库
命名规范:数据库
语法:create database 数据库名;
例如:

/*创建数据库 如果需要指定编码的 default character set utf8 collate utf8_general_ci;*/
create database school;

2.删除库
语法:drop database 数据库名;
例如:drop database students;
3.使用库
语法: use 数据库名;
例如: use school;

三、用户的创建与授权

1.创建用户

/* 创建用户:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
    host如果是%代表可以远程登录的用户
*/
create user 'jame'@'%' IDENTIFIED by '123456'

2. 授权用户

  • 十四个权限:select,insert,update,delete,create,drop,index,alter,grant,references,
    reload,shutdown,process,file;
/*grant 权限1,权限2,...权限n on 数据库名称.表名称 to 用户名@用户地址 identified by '连接口令';
REVOKE 权限1,权限2...权限n ON databasename.tablename FROM 'username'@'host';
给所有权限就是使用 all privileges*/
GRANT SELECT,insert,update  ON mysql.`user` TO jame@localhost IDENTIFIED BY '123456';
/*
把Grant换成Revoke移除权限
*/
REVOKE SELECT,insert,update ON mysql.USER FROM jame@localhost;

IDENTIFIED BY ‘123456’的作用:

3.删除用户

Drop USER 用户名;
注意:加上“@localhost”表示删除的是本地的用户,不指定主机的情况下,默认就是%,删除的是远程连接用户。

drop user jame@localhost;

四、操作数据表

1.创建表

方式一:
a.先进入库 use database 库名
b.创建表 create table 表名(字段名1 数据类型 [not null],字段名2 数据类型 [not null]);

create table student(
    s_no varchar(10) not null,
    s_name varchar(10) not null,
    age int(3),
    sex varchar(3),
    height int
);

方式二:将查询结果建成新的一张表。

CREATE TABLE students_bak AS SELECT
    *
FROM
    students;

2.修改表

a.修改表名 alter table 原表名 rename to 新表名,表的结构与数据都不会受影响;

alter table student rename to students

b.修改列 alter table 表名 change 原列名 新列名 新列名的数据类型,修改的数据类型不能跟该列已有数据起冲突;

alter table students change age s_age int(4);

c.增加列 alter table 表名 add 新列 数据类型;

alter table students add s_remark varchar(50);

d.删除列 alter table 表名 drop column 列名;

alter table students drop s_remark;
  • 补充:修改表的字符集编码
alter table students convert to CHARACTER set utf8;
alter table students DEFAULT CHARACTER set utf8 collate utf8_general_ci;
select * from students;

3.删除表

drop table 表名;
补充:
drop database 数据库名
drop user 用户名
drop table 表名

注意事项:

1.字段,每个表都可以分更小的项,这些项称为字段(列)
2.记录, 数据记录,一行数据。表里面的行
3.列表里的垂直项,包含表里特定字段的所有信息

补充:TIMESTAMP的变体

在添加数据的时候对updatetime 的操作

1、 在创建新纪录和修改现有记录的时候都会对这个列的事件进行刷新。

ALTER TABLE students 
ADD updatetime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;

2、在创建新记录的时候吧这个字段设置为当前时间,但是以后的更新不会执行。

ALTER TABLE students 
ADD updatetime TIMESTAMP DEFAULT CURRENT_TIMESTAMP;

3 创建新纪录时不给值,以后修改时自动刷新。

ALTER TABLE students 
ADD updatetime TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
16天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
29 1
|
18天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
31 4
|
25天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
133 1
|
27天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
82 2
|
1月前
|
存储 关系型数据库 MySQL
MySQL vs. PostgreSQL:选择适合你的开源数据库
在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个。它们都有着强大的功能、广泛的社区支持和丰富的生态系统。然而,它们在设计理念、性能特点、功能特性等方面存在着显著的差异。本文将从这三个方面对MySQL和PostgreSQL进行比较,以帮助您选择更适合您需求的开源数据库。
108 4
|
13天前
|
运维 关系型数据库 MySQL
安装MySQL8数据库
本文介绍了MySQL的不同版本及其特点,并详细描述了如何通过Yum源安装MySQL 8.4社区版,包括配置Yum源、安装MySQL、启动服务、设置开机自启动、修改root用户密码以及设置远程登录等步骤。最后还提供了测试连接的方法。适用于初学者和运维人员。
117 0
|
26天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第26天】数据库作为现代应用系统的核心组件,其性能优化至关重要。本文主要探讨MySQL的索引策略与查询性能调优。通过合理创建索引(如B-Tree、复合索引)和优化查询语句(如使用EXPLAIN、优化分页查询),可以显著提升数据库的响应速度和稳定性。实践中还需定期审查慢查询日志,持续优化性能。
56 0
|
26天前
|
JSON 关系型数据库 MySQL
MySQL JSON数据存储结构与操作
通过本文的介绍,我们了解了MySQL中JSON数据类型的基本操作、常用JSON函数、以及如何通过索引和优化来提高查询性能。JSON数据类型为存储和操作结构化数据提供了灵活性和便利性,在现代数据库应用中具有广泛的应用前景。希望本文对您在MySQL中使用JSON数据类型有所帮助。
35 0
|
2月前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
132 6
|
2月前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
64 3
Mysql(4)—数据库索引
下一篇
无影云桌面