Mysql学习之创建和操作数据库及表DDL大全小白篇

 更新时间:2021年09月16日 16:41:03   作者:祈祷ovo  
本篇文章是MySQL小白入门篇,主要讲解创建和操纵数据库及表懂得了,内容非常全面,有需要的朋友可以借鉴参考下,希望可以有所帮助

1.操作数据库

 1.1创建数据库

create + database + 数据库名称

当然如果我们不知道数据库是否存在,如果存在就不创建,不存在就创建可以用以下语句

create + database + if not exists + 数据库名称

我们还可以在创建数据库的时候指定字符集

create + dabase + if not exists + 数据库名 +character set + 字符集名

1.2查询数据库

查询所有已经存在的数据库

show databases

查询某个数据库的创建语句和所使用的字符集

show create database + 数据库名称

1.3修改数据库

修改数据库字符集

alter database + 数据库名称 + character set + 字符集名称

1.4删除数据库

drop database +数据库名

同样的,也可以加上 if not exists

drop database + if exists + 数据库名称

1.5使用数据库

使用数据库

use + 数据库名称

查询当前正在使用数据库的名称

select database()

2.操作表

2.1MySQL数据类型

数据类型 介绍
tinyint 存储1字节8位的整数
int/integer 存储4字节32位的整数
float 存储单精度浮点数
double 存储双精度浮点数
char(n) 存储字符
varchar(n) 存储字符
date 存储日期,只包含年月日格式:yyyy-MM–dd
datetime 存储日期,包含年月日时分秒,格式:yyyy-MM-dd HH:mm:ss
timestamp 存储日期,包含年月日时分秒,格式:yyyy-MM-dd HH:mm:ss

问题1:varchar和char的特点和区别

char的特点:

1.char表示定长字符串,长度是固定的(比如char(5)即使不够5个字符也是按5个字符存储)
个字符也会按照5个字符存储);
2.如果插入数据的长度小于char的固定长度时,则用空格填充;
3.因为长度固定,所以存取速度要比varchar快很多,甚至能快50%,但正因为其长度固定,所以会占据多余的空间,是空间换时间的做法;
4.对于char来说,最多能存放的字符个数为255,和编码无关

varchar的特点:

1.varchar表示可变长字符串,长度是可变的(比如varchar(5)不够5个字符,比如3个那么就按照三个字符存储);
2.插入的数据是多长,就按照多长来存储;
3.varchar在存取方面与char相反,它存取慢,因为长度不固定,但正因如此,不占据多余的空间,是时间换空间的做法;
4.对于varchar来说,最多能存放的字符个数为65532

两者的区别:

结合性能角度(char更快)和节省磁盘空间角度(varchar更小)

还有一个点两者都存储字符

张三:代表两个字符
zhangsan:代表八个字符

问题2:int(20)中20的涵义

是指显示字符的长度。20表示最大显示宽度为20,但仍占4字节存储,存储范围不变;

不影响内部存储,只是影响带 zerofill 定义的 int 时,前面补多少个 0,易于报表展示

问题3:float和double的区别是什么?

1.float类型数据可以存储至多8位十进制数,并在内存中占4字节。
2.double类型数据可以存储至多18位十进制数,并在内存中占8字节。

问题4:datetime和timestamp的区别?

对于类型为timestamp的字段来说,不给这个字段赋值或者给这个字段赋空值那么都会默认使用当前系统时间

2.2创建表

create table +表名(
列 数据类型,
列 数据类型,
.........
列 数据类型
)

有时候我们想 复制一个表的结构:

create table + 复制的新表名 + like + 被复制的表

有时候我们想 复制表的所有内容:

create table + 复制的新表名 + select * from 要复制的表名
注意没有like

有时候我们 只复制部分内容:

create table + 复制的新表名 + select语句

有时候我们 只复制部分表的字段结构

create table + 复制的新表名 + select 需要复制的字段 +from 要复制的表 + where + 一个恒不成立的条件(如0=1)

2.3查询表

查询数据库中所有的表的名称

show tables

查询表结构

desc + 表名

2.4删除表

drop table + if exists + 表名

2.5修改表

修改表名

alter table + 表名 + rename to + 新表名

修改表的字符集

alter table + 表名 + character set + 字符集名称

添加一列

alter table + 表名 + add + (column) + 列 数据类型

修改列名称

alter table + 表名 + change + (column) + 列名 新列名 数据类型

修改列类型

alter table 表名 modify + (column) + 列名 新的数据类型

删除列

alter table + 表名 + drop 列名

以上就是Mysql学习之创建和操纵数据库及表DDL大全小白篇的详细内容,更多关于Mysql数据库资料请关注脚本之家其它相关文章!

相关文章

  • MySQL中的MVCC底层原理解读

    MySQL中的MVCC底层原理解读

    本文详细介绍了MySQL中的多版本并发控制(MVCC)机制,包括版本链、ReadView以及在不同事务隔离级别下MVCC的工作原理,通过一个具体的示例演示了在可重复读隔离级别下的MVCC执行过程
    2025-02-02
  • MySQL并行DDL的实现方法

    MySQL并行DDL的实现方法

    本文详细介绍了MySQL8.0.27并行DDL的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-10-10
  • mysql数据库备份命令分享(mysql压缩数据库备份)

    mysql数据库备份命令分享(mysql压缩数据库备份)

    这篇文章主要介绍了mysql数据库备份常用语句,包括数据库压缩备份、备份多个MySQL数据库、备份多个MySQL数据库、将数据库转移到新服务器等语句
    2014-01-01
  • 系统高吞吐量下的数据库重复写入问题分析解决

    系统高吞吐量下的数据库重复写入问题分析解决

    这篇文章主要介绍了系统高吞吐量下的数据库重复写入问题分析解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04
  • MySQL日期及时间字段的查询

    MySQL日期及时间字段的查询

    这篇文章主要介绍了MySQL日期及时间字段的查询,一分享日期及时间字段的规范化查询方法为主展开详细内容,需要的小伙伴可以参考一下
    2022-05-05
  • MySQL数据库事务与锁深入分析

    MySQL数据库事务与锁深入分析

    这篇文章主要介绍了MySQL数据库事务与锁深入分析,内容介绍的非常详细,有对这方面不懂的同学可以跟着小编一起研究下吧
    2020-12-12
  • 详解MySQL如何避免全表扫描

    详解MySQL如何避免全表扫描

    这篇文章主要为大家详细介绍了为什么MySQL会执行全表扫描来解析查询,以及如何避免在大型表上进行不必要的全表扫描,有需要的小伙伴可以了解下
    2024-04-04
  • 如何解决mysql重装失败方法介绍

    如何解决mysql重装失败方法介绍

    相信大家使用MySQL都有过重装的经历,要是重装MySQL基本都是在最后一步通不过,除非重装操作系统,究其原因就是系统里的注册表没有删除干净
    2012-11-11
  • Mysql带返回值与不带返回值的2种存储过程写法

    Mysql带返回值与不带返回值的2种存储过程写法

    这篇文章主要介绍了Mysql带返回值与不带返回值的2种存储过程写法,需要的朋友可以参考下
    2017-10-10
  • MySQL基于SSL安全连接的主从复制(过程详解)

    MySQL基于SSL安全连接的主从复制(过程详解)

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议,这篇文章主要介绍了MySQL基于SSL安全连接的主从复制,需要的朋友可以参考下
    2023-04-04

最新评论