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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 我把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;
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
15天前
|
SQL 数据可视化 关系型数据库
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
|
15天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
|
15天前
|
关系型数据库 MySQL 数据库
轻松入门MySQL:精准查询,巧用WHERE与HAVING,数据库查询如虎添翼(7)
轻松入门MySQL:精准查询,巧用WHERE与HAVING,数据库查询如虎添翼(7)
|
17天前
|
存储 关系型数据库 MySQL
数据库字符编码MySQL中使用UTF-8还是UTFB4
数据库字符编码MySQL中使用UTF-8还是UTFB4
20 0
|
17天前
|
存储 SQL 关系型数据库
【MySQL】4. 表的操作
【MySQL】4. 表的操作
19 0
|
20天前
|
SQL 关系型数据库 MySQL
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇)
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇)
94 0
|
11天前
|
存储 关系型数据库 MySQL
MySQL基础入门:数据库操作全攻略
MySQL基础入门:数据库操作全攻略
44 0
|
11天前
|
关系型数据库 MySQL 数据库
卸载云服务器上的 MySQL 数据库
卸载云服务器上的 MySQL 数据库
30 0
|
15天前
|
SQL 关系型数据库 MySQL
轻松入门MySQL:深入学习数据库表管理,创建、修改、约束、建议与性能优化(3)
轻松入门MySQL:深入学习数据库表管理,创建、修改、约束、建议与性能优化(3)
|
15天前
|
存储 关系型数据库 MySQL
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)