当前位置: 首页 > news >正文

MySQL -DDL 及表类型

DDL

创建数据库


CREATE DATABASE [IF NOT EXISTS] db_name
                              [create_specification [, create_specification] ...]
create_specification:

[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name

1.CHARACTER SET:指定数据库采用的字符集,如果不指定字符集,默认utf8
2.COLLATE:指定数据库字符集的校对规则(常用的 utf8_bin、utf8_general ci注意默认是utf8_general_ci)

#创建一个数据库
CREATE DATABASE ww_db01;
#使用指令删除数据库
DROP DATABASE ww_db01;
#创建一个使用utf-8字符集的数据库
CREATE DATABASE ww_db02 CHARACTER SET utf8;
#创建一个使用utf8字符集,并带校对规则的数据库
CREATE DATABASE ww_db03 CHARACTER SET utf8 COLLATE utf8_bin;#校对规则 utf8_bin 区分大小写 默认是 utf8_general ci 不区分大小写

查询数据库

显示数据库语句:
SHOW DATABASES
显示数据库创建语句:
SHOW CREATE DATABASE db name
数据库删除语句:DROP DATABASE [IF EXISTS] db name

#查看当前所有数据库
SHOW DATABASES;
#查看前面创建数据库的语句
SHOW CREATE DATABASE `ww_db01`;
#特别说明,在创建数据库、表时使用反引号, 可以规避关键字
CREATE DATABASE `SET`;CREATE DATABASE SET;
#删除前面创建的数据库
DROP DATABASE ww_db01;
DROP DATABASE `SET`;

备份数据库

备份数据库(注意:在DOS执行)命令行mysqldump-u用户名-p-B数据库1数据库2数据库n >文件名.sql
恢复数据库(注意:进入Mysql命令行再执行)source 文件的全路径名.sql

示例

1、管理员打开cmd, 直接输入指令 C:\Users\Administrator>mysqldump -u root -p -B ww_db02 ww_db03 >e:test.sql

2、切换到数据库安装目录,进入数据库后,执行命令 source e:\\test.sql 

 创建表

CREATE TABLE table name
(
            field1 datatype,
            field2 datatype,
            field3 datatype
)character set字符集collate 校对规则 engine 引擎

CREATE TABLE IF NOT EXISTS employees (  
    id INT PRIMARY KEY,  
    name VARCHAR(50),  
    age INT,  
    department VARCHAR(50)  
);


DROP TABLE IF EXISTS `emp` ; //删除表, 这样写如果已经不存在这个表可以不用报错

示例

CREATE TABLE `user` (id INT,`name` VARCHAR(255),`password` VARCHAR(255),`birthday` DATE)CHARACTER SET utf8 COLLATE utf8_bin ENGINE INNODB;

修改表 

                使用ALTER TABLE语句追加,修改,或删除列的语法.  (ALTER 改变的意思)
添加列     ALTER TABLE tablename
                ADD           (column datatype [DEFAULT expr][, column datatype]...);

修改列     ALTER TABLE tablename
                MODIFY      (column datatype [DEFAULT expr][, column datatype]..);

删除列      ALTER TABLE tablename
                DROP        (column);

               查看表的结构:desc 表名;--可以查看表的列
               修改表名:Rename table表名 to 新表名
               修改表字符集:alter table 表名character set字符集;

示例: 像是在说话一样,很流畅

CREATE TABLE `emp` (`Id` INT,`name` VARCHAR(32),`sex` CHAR(1),`birthday` DATE,`entry_date` DATETIME,`job` VARCHAR(32),`Salary` DOUBLE,`resume` text)CHAR SET utf8 COLLATE utf8_bin ENGINE innodb;
#修改表的操作练习
#在emp表增加一个image列,VARCHAR类型(要求resume后面)。
ALTER TABLE emp ADD image VARCHAR(32) NOT NULL DEFAULT '' AFTER resume; 
#修改job列,使其长度为60
ALTER TABLE emp MODIFY job VARCHAR (60);
#删除sex列
ALTER TABLE emp DROP sex; 
#表名改为employee
RENAME TABLE emp TO employee;
#修改表的字符集为utf8
ALTER TABLE employee CHARACTER  SET utf8;
#列名name修改为user_name
ALTER TABLE employee CHANGE `name` `user_name` 
VARCHAR(32) NOT NULL DEFAULT '';

mysql列类型

整形数据

整形数据选择原则: 应该根据具体需求,选择占用空间小 的数据类型

#1.如果没有指定unsinged,则TINYINT就是有符号
#2.如果指定 unsinged,则TINYINT就是无符号0-255
CREATE TABLE t3 (id TINYINT);
CREATE TABLE t4 (id TINYINT UNSIGNED);

Bit位类型

bit这个数据类型用的比较少, 如果是需要存储0或1的情况,可以使用该类型

小数类型

数值型(小数)的基本使用
1. FLOAT/DOUBLE [UNSIGNED]Float 单精度精度,Double 双精度.

单精度浮点数(float)的数值范围为-3.4E38~3.4E38,大约可以表示7位十进制下的有效数字

双精度浮点数(double)可以表示的数字的绝对值范围大约是:-2.23E308 ~ 1.79E308,可以表示十进制的15或16位有效数字。


2. DECIMAL[M,D] [UNSIGNED]   //可以存放非常大的数

·可以支持更加精确的小数位

M最大65。D最大是30。如果D被省略,默认是0。

如果M被省略,默认是10。

建议:如果希望小数的精度高,推荐使用decimal

以下是DECIMAL数据类型的语法示例:

CREATE TABLE table_name (  column_name DECIMAL(precision, scale)  
);

在上面的语法中,precision表示数字的总位数,包括小数点左侧和右侧的位数。scale表示小数点右侧的位数。

例如,如果要创建一个名为products的表,其中有一个名为price的列,可以将其定义为DECIMAL数据类型,精度为10,小数位数为2,如下所示:

CREATE TABLE products (  price DECIMAL(10, 2)  
);

这将创建一个能够存储最大值为99999999.99的price列。

字符串类型

·字符串使用细节
1. 细节1 char(4)//这个4表示字符数(最大255),不是字节数,不管是中文还是字母都是放四个,按字符计算

按gbk编码方式,那么char(4)表示的是4*2=8个字节, 

按utf8编码,那么char(4)表示的是4*3 = 12个字节
.varchar(4)/这个4表示字符数,不管是字母还是中文都以定义好的表的编码来存放数据.

不管是中文还是英文字母,都是最多存放4个,是按照字符来存放的.

2.细节2
char(4)是定长(固定的大小),就是说,即使你插入‘aa',也会占用分配的4个字符d.

varchar(4)是变长,就是说,如果你插入了‘aa',实际占用空间大小并不是4个字符,而是按照实际占用空间来分配(说明:varchar本身还需要占用1-3个字节来记录存放内容长度 , 即varchar 存放的其实是 aa 加上1-3个字节)

4.细节4
在存放文本时,也可以使用Text数据类型.可以将TEXT列视为VARCHAR列,注意Text不能有默认值.大小0-2へ16字节, 2へ16 = 65536即等于varchar的最大字节数

如果希望存放更多字符,可以选择MEDIUMTEXT 0-2へ24 或者LONGTEXT 0~2へ32

日期类型

1、date

2、datetime

3、timestamp

相关文章:

MySQL -DDL 及表类型

DDL 创建数据库 CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...] create_specification:[DEFAULT] CHARACTER SET charset_name [DEFAULT] COLLATE collation_name 1.CHARACTER SET&#xff1a…...

主从同步机制

RocketMQ的Broker分为Master和Slave两个角色,为了保证高可用性,Master角色的机器接收到消息后,要把内容同步到Slave机器上,这样一旦Master宕机,Slave机器依然可以提供服务。下面分析Master和Slave角色机器间同步功能实…...

Leetcode算法系列| 3. 无重复字符的最长子串

目录 1.题目2.题解C# 解法一:滑动窗口算法C# 解法二:索引寻找Java 解法一:滑动窗口算法Java 解法二:遍历字符串 1.题目 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例1: 输入: s "ab…...

Spring Cache(缓存框架)

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…...

android开发:安卓13Wifi和热点查看与设置功能

近日对安卓热点功能做了一些技术验证,目的是想利用手机开热点给设备做初始化,用的是安卓13,简言之: 热点设置功能不可用,不可设置SSID和密码,不可程序控制开启关闭,网上的代码统统都过时了Loca…...

Java中的mysql——面试题+答案——第24期

当涉及MySQL时,面试题可以涵盖更多高级主题、安全性和实践经验。 MySQL中的存储引擎InnoDB和MyISAM的区别是什么? 答案: InnoDB支持事务,而MyISAM不支持。InnoDB使用行级锁,而MyISAM使用表级锁。InnoDB支持外键&#x…...

王者小游戏

游戏里的经验动物 Bear package beast; import sxt.GameFrame; public class Bear extends Beast {public Bear(int x, int y, GameFrame gameFrame) {super(x, y, gameFrame);setImg("C:\\Users\\辛欣\\OneDrive\\桌面\\王者荣耀图片(1)\\王者荣耀图片\\beast\\bear.jp…...

using meta-SQL 使用元SQL

%DatePart Syntax %DatePart(DTTM_Column) Description The %DatePart meta-SQL variable returns the date portion of the specified DateTime column. DatePart meta-SQL变量返回指定的DateTime列的日期部分。 Note: This meta-SQL variable is not implemented for COBOL. …...

函数式接口

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 咱们今天讨论下函数式接…...

使用shell快速查看电脑曾经连接过的WiFi密码

此方法只能查看以前连接过的wifi名称和对应的密码 查看连接过的WiFi名称netsh wlan show profiles查看具体的WiFi名称netsh wlan show profile name"你的wifi名称" keyclear...

通过亚马逊云科技云存储服务探索云原生应用的威力

文章作者:Libai 欢迎来到我们关于“使用亚马逊云科技云存储服务构建云原生应用”的文章的第一部分。在本文中,我们将深入探讨云原生应用的世界,并探索亚马逊云科技云存储服务在构建和扩展这些应用中的关键作用。 亚马逊云科技开发者社区为开发…...

Boot工程快速启动【Linux】

Boot工程快速启动【Linux】 在idea中打包cd usr/在local文件夹下mkdir app进入app文件夹把打包好的文件(只上传其中的jar)上传到app文件下检查linux中的Java版本,保证和项目的Java 版本保持一致运行 java -jar sp补全***.jar想看效果得查询当…...

三 STM32F4使用Sys_Tick 实现微秒定时器和延时

更多细节参考这篇 1. 什么是时钟以及作用 1.1 什么是时钟 时钟是由电路产生的周期性的脉冲信号,相当于单片机的心脏 1.2 时钟对于STM32的作用 指令同步:cpu和内核外设使用时钟信号来进行指令同步数据传输控制: 时钟信号控制数据在内部总…...

唯创知音WT2003H系列MP3录音语音芯片:高精度ADC与DAC,强大IO驱动能力成就音频卓越

在音频领域里,高精度和强大的驱动能力一直是工程师们追求的目标。唯创知音的WT2003H系列MP3录音芯片恰好满足了这一需求,该芯片具备16 bit高精度的ADC及DAC功能,大功率的IO驱动能力,能够直接驱动64mA,为电子产品带来卓…...

记录Windows下安装redis的过程

开源博客项目Blog支持使用EasyCaching组件操作redis等缓存数据库,在继续学习开源博客项目Blog之前,准备先学习redis和EasyCaching组件的基本用法,本文记录在Windows下安装redis的过程。   虽然redis官网文档写着支持Linux、macOS、Windows等…...

7.5 Windows驱动开发:监控Register注册表回调

在笔者前一篇文章《内核枚举Registry注册表回调》中实现了对注册表的枚举,本章将实现对注册表的监控,不同于32位系统在64位系统中,微软为我们提供了两个针对注册表的专用内核监控函数,通过这两个函数可以在不劫持内核API的前提下实…...

NC56 XML 报文校验出错一例

好好的上线了、下午开完会告诉我有个凭证没法传入 NC 了。 请求报文如下&#xff1a; <?xml version"1.0" encodingUTF-8?> <ufinterface roottag"voucher" billtype"gl" replace"Y" receiver"10108" sender&q…...

STM32 ADC转换器、串口输出

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、ADC是什么&#xff1f;二、STM32的ADC2.1 认识STM32 ADC2.2转换方式2.3 为什么要校准&#xff1f;2.4 采样时间计算2.5 触发方式2.6 多通道采集解决方案2.7…...

[MySQL--基础]函数、约束

hello! 这里是欧_aita的频道。 今日语录:不管你觉得自己能做什么&#xff0c;或者你觉得你不能做什么&#xff0c;你都是对的。 祝福语&#xff1a;愿你的程序像太阳一样明亮&#xff0c;给世界带来温暖和光明。 大家可以在评论区畅所欲言&#xff0c;可以指出我的错误&#xf…...

企业数字化决策者深度分享

2023年11月18日&#xff0c;数聚股份应邀参加在台州椒江举办的数字中国企业峰会。本次会议中&#xff0c;诸多在企业数字化进程中做出重要贡献的高层管理者分享了各行各业极具引领性、创新性的数字化实践案例、产品和解决方案&#xff1b;数聚股份董事长陈庆华携其前瞻的数字化…...

synchronized 学习

学习源&#xff1a; https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖&#xff0c;也要考虑性能问题&#xff08;场景&#xff09; 2.常见面试问题&#xff1a; sync出…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面&#xff0c;gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress&#xff0c;说明目标所使用的cms是wordpress&#xff0c;访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...

WEB3全栈开发——面试专业技能点P7前端与链上集成

一、Next.js技术栈 ✅ 概念介绍 Next.js 是一个基于 React 的 服务端渲染&#xff08;SSR&#xff09;与静态网站生成&#xff08;SSG&#xff09; 框架&#xff0c;由 Vercel 开发。它简化了构建生产级 React 应用的过程&#xff0c;并内置了很多特性&#xff1a; ✅ 文件系…...

AD学习(3)

1 PCB封装元素组成及简单的PCB封装创建 封装的组成部分&#xff1a; &#xff08;1&#xff09;PCB焊盘&#xff1a;表层的铜 &#xff0c;top层的铜 &#xff08;2&#xff09;管脚序号&#xff1a;用来关联原理图中的管脚的序号&#xff0c;原理图的序号需要和PCB封装一一…...

机器学习的数学基础:线性模型

线性模型 线性模型的基本形式为&#xff1a; f ( x ) ω T x b f\left(\boldsymbol{x}\right)\boldsymbol{\omega}^\text{T}\boldsymbol{x}b f(x)ωTxb 回归问题 利用最小二乘法&#xff0c;得到 ω \boldsymbol{\omega} ω和 b b b的参数估计$ \boldsymbol{\hat{\omega}}…...

【免费数据】2005-2019年我国272个地级市的旅游竞争力多指标数据(33个指标)

旅游业是一个城市的重要产业构成。旅游竞争力是一个城市竞争力的重要构成部分。一个城市的旅游竞争力反映了其在旅游市场竞争中的比较优势。 今日我们分享的是2005-2019年我国272个地级市的旅游竞争力多指标数据&#xff01;该数据集源自2025年4月发表于《地理学报》的论文成果…...

Tauri2学习笔记

教程地址&#xff1a;https://www.bilibili.com/video/BV1Ca411N7mF?spm_id_from333.788.player.switch&vd_source707ec8983cc32e6e065d5496a7f79ee6 官方指引&#xff1a;https://tauri.app/zh-cn/start/ 目前Tauri2的教程视频不多&#xff0c;我按照Tauri1的教程来学习&…...