6.MySQL数据库与数据表操作

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 6.MySQL数据库与数据表操作

正文


数据库的操作:数据库创建 ;数据库删除


数据表的操作:数据表的创建;数据表的修改 (表结构) ;数据表的删除


数据库的操作


1.数据库的创建


  # 链接mysql数据库后,进入mysql后可以操作数据


# 1. 创建库


create database if not exists tlxy default charset=utf8;


-- 1. 数据库 tlxy 如果不存在则创建数据库,存在则不创建


-- 2. 创建 tlxy 数据库,并设置字符集为utf8


-- 3. 无特殊情况都要求字符集为utf8或者utf8mb4的字符编码


2.查看所有库


# 1. 查看所有库 show databases;


3.打开库/进入库/选择库


# use 库名 use tlxy


4.删除库


删库有风险,动手需大胆(哈哈哈,大不了西红柿带你跑路)


# 删除库,那么库中的所有数据都将在磁盘中删除。 drop database 库名


数据表的操作


1.创建表


语法格式:


create table 表名(字段名,类型,【字段约束】,。。。); 实例:


# 以下创建一个 users 的表 create table users(


-- 创建ID字段,为正整数,不允许为空 主键,自动递增


id int unsigned not null primary key auto_increment,


-- 创建 存储 名字的字段,为字符串类型,最大长度 5个字符,不允许为空 username varchar(5) not null,


-- 创建存储 密码 的字段,固定长度 32位字符, 不允许为空


password char(32) not null,


-- 创建 年龄 字段,不允许为空,默认值为 20


 age tinyint not null default 20


)engine=innodb default charset=utf8;


# 查看表结构 desc users;


#查看建表语句


show create table users;


创建表的基本原则:


表明和字段名 尽可能的符合命名规范,并且最好能够‘见名之意’

表中数据必须有唯一标示,即主键定义。无特殊情况,主键都为数字并自增即可

表中字段所对应的类型设置合理,并限制合理长度

表引擎推荐使用innodb,并无特殊情况都要求为utf8或者utf8mb4的字符编码


2.修改表结构


语法格式:alter table 表名 action (更改的选项)


添加字段


# 语法:alter table 表名 add 添加的字段信息 --在users表中 追加 一个num字段


alter table users add num int not null;


-- 在指定字段后面追加字段 在 users 表中 age字段后面 添加一个 email 字段 alter table users add email varchar(50) after age;


-- 在指定字段后面追加字段,在 users 表中 age字段后面 添加一个 phone alter table users add phone char(11) not null after age;


-- 在表的最前面添加一个字段


alter table users add aa int first;


删除字段


  # 删除字段 alter table 表名 drop 被删除的字段名 alter table users drop aa;


修改字段


语法格式: alter table 表名 change|modify 被修改的字段信息 change: 可以修改字段名,


modify: 不能修改字段名。


# 修改表中的 num 字段 类型,使用 modify 不修改表名


alter table users modify num tinyint not null default 12;


# 修改表中的 num 字段 为 int并且字段名为 nn alter table users change num mm int;


# 注意:一般情况下,无特殊要求,不要轻易修改表结构


3.修改表名


# 语法:alter table 原表名 rename as 新表名


4.更改表中的自增的值


# 在常规情况下,auto_increment 默认从1开始继续递增 alter table users auto_increment = 1000;


5.修改表引擎


# 推荐在定义表时,表引擎为 innodb。


# 通过查看建表语句获取当前的表引擎


mysql> show create table users\G;


*************************** 1. row ***************************


      Table: users


Create Table: CREATE TABLE `users` (


 PRIMARY KEY (`id`)


) ENGINE=InnoDB AUTO_INCREMENT=1001 DEFAULT CHARSET=utf8


1 row in set (0.00 sec)


# 直接查看当前表状态信息


mysql> show table status from tlxy where name = 'users'\G; *************************** 1. row ***************************


          Name: users


        Engine: InnoDB


# 修改表引擎语句


alter table users engine = 'myisam';


6.删除表


drop table 表名


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5月前
|
SQL 运维 关系型数据库
MySQL 中 GRANT 操作会引起复制中断吗?
GRANT 操作并不是一个原子性操作,不管执行成功与否,都会触发一个隐式重载授权表的行为。 在生产环境中需要规范用户创建及授权的操作,不推荐使用 DML 语句去直接变更 mysql.user 表,可能会引发其他的问题,若使用了 DML 语句进行变更, 需要手工执行 flush privileges。
73 4
|
4月前
|
存储 SQL 关系型数据库
MySQL 给数据表增加一列,一定会锁表吗?
【8月更文挑战第8天】在数据库管理和开发中,给数据表增加一列是一个常见的操作。然而,当面试官提出“MySQL 给数据表增加一列,一定会锁表吗?”这一问题时,答案并非绝对。这主要取决于MySQL的版本、存储引擎以及具体的操作方式。
416 0
|
5月前
|
JavaScript 关系型数据库 MySQL
创建nodejs项目并接入mysql,完成用户相关的增删改查的详细操作
创建nodejs项目并接入mysql,完成用户相关的增删改查的详细操作
71 0
|
2月前
|
缓存 数据库 数据安全/隐私保护
Discuz! X 数据库字典详解:DZ各数据表作用及字段含义
我们使用DISCUZ做网站时,有时需要对数据表进行操作,在操作数据表之前,需要对数据表进行了解。下面是DISCUZ 数据库各数据表作用及字段含义详解,方便新手更好的了解DISCUZ数据库。
67 4
|
2月前
|
监控 关系型数据库 MySQL
MySQL数据表索引命名规范
MySQL数据表索引命名规范
110 1
|
2月前
|
存储 监控 关系型数据库
MySQL造数据占用临时表空间
MySQL造数据占用临时表空间
41 0
|
3月前
|
存储 SQL 关系型数据库
MySQL 数据表操作
MySQL 数据表操作
44 1
|
4月前
|
SQL Shell API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API
|
5月前
|
存储 关系型数据库 文件存储
面试题MySQL问题之简单的SELECT操作在MVCC下加锁如何解决
面试题MySQL问题之简单的SELECT操作在MVCC下加锁如何解决
52 2
|
5月前
|
SQL Java 数据库
MySQL设计规约问题之为什么应尽量避免使用子查询,而可以考虑将其优化为join操作
MySQL设计规约问题之为什么应尽量避免使用子查询,而可以考虑将其优化为join操作
下一篇
DataWorks