MySQL的DDL语言

DDL:Data Definition Language(数据定义语言)

ps:MySQL中关键字不区分大小写,但是库名、表名等是区分大小写的

一、对数据库操作的DDL

1、查询相关语句:

(1)查询所有数据库

SHOW DATABASES;

(2)查询当前数据库

SELECT DATABASE();

2、创建数据库语句:

CREATE DATABASE [IF NOT EXISTS] 数据库名 [DEFAULT CHARSET 字符集] [COLLATE 排序规则];

ps:[…]为可选参数,可忽略不写

IF NOT EXISTS :如果数据库不存在则创建。
示例:

CREATE DATABASE IF NOT EXISTS test_existe;

DEFAULT CHARSET:设置数据库的字符集,如:UTF8、UTF8MB4等。
示例:

CREATE DATABASE test_charset DEFAULT CHARSET UTF8MB4;

3、删除数据库语句:

ps:[…]为可选参数,可忽略不写

DROP DATABASE [IF EXISTS] 数据库名;

IF EXISTS :如果数据库存在则删除。
示例:

DROP DATABASE IF EXISTS test_charset;

4、使用数据库语句:

USE 数据库名;

二、对表操作的DDL

1、查询相关语句:

(1)查询当前数据库的所有表

SHOW TABLES;

(2)查询表结构

DESC 表名;

示例:

DESC test_charset;

(3)查询指定表的建表语句

SHOW CREATE TABLE 表名;

示例:

SHOW CREATE TABLE test_charset;

2、创建表语句

ps:[…]为可选参数,可忽略不写,最后一个字段后面没有逗号

CREATE TABLE 表名(字段1 字段1类型 [COMMENT 字段1注释],字段2 字段2类型 [COMMENT 字段2注释],字段3 字段3类型 [COMMENT 字段3注释],......字段4 字段4类型 [COMMENT 字段4注释]
)[COMMENT 表注释];

示例:

CREATE TABLE USER(ID INT COMMENT '编号',NAME VARCHAR(30) COMMENT '姓名',AGE INT COMMENT '年龄',GENDER VARCHAR(1) COMMENT '性别'
) COMMENT '用户表';

3、常见的数据类型

(1)数值类型

类型大小有符号(SIGNED)范围无符号(UNSIGNED)范围描述
TINYINT1byte(-128,127)(0,255)小数整值
INT4bytes(-2147483648,2147483647)(0,4294967295)大数整值
FLOAT4bytes(-3.402823466 E+38,3.402823466351 E+38)0 和 (1.175494351 E-38,3.402823466 E+38)单精度浮点数值
DOUBLE8bytes(-1.7976931348623157 E+308,1.7976931348623157 E+308)0 和(2.2250738585072014 E-308,1.7976931348623157 E+308)双精度浮点数值

年龄字段:不会出现负数, 而且人的年龄不会太大
age tinyint unsigned
分数:总分100分, 最多出现一位小数
score double(4,1)

(2)字符串类型

类型大小描述
CHAR0-255 bytes定长字符串(需要指定长度)
VARCHAR0-65535 bytes变长字符串(需要指定长度)
BLOB0-65535 bytes二进制形式的长文本数据
TEXT0-65535 bytes长文本数据

char 与 varchar 都可以描述字符串,char是定长字符串,指定长度多长,就占用多少个字符,和字段值的长度无关 。而varchar是变长字符串,指定的长度为最大占用长度 。相对来说,char的性能会更高些

(3)时间类型

类型大小范围格式描述
DATE31000-01-01 至 9999-12-31YYYY-MM-DD日期值
TIME3-838:59:59 至 838:59:59HH:MM:SS时间值或持续时间
DATETIME81000-01-01 00:00:00 至 9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值

生日字段:birthday
birthday date
创建时间:createtime
createtime datetime

(4)数据类型案例

设计一张员工信息表,要求如下:

  1. 编号(纯数字)
  2. 员工工号 (字符串类型,长度不超过10位)
  3. 员工姓名(字符串类型,长度不超过10位)
  4. 性别(男/女,存储一个汉字)
  5. 年龄(正常人年龄,不可能存储负数)
  6. 身份证号(二代身份证号均为18位,身份证中有X这样的字符)
  7. 入职时间(取值年月日即可)

语句如下:

CREATE TABLE EMP (ID INT COMMENT '编号',WORKNO VARCHAR(10) COMMENT '工号',NAME VARCHAR(10) COMMENT '姓名',GENDER CHAR(1) COMMENT '性别',AGE TINYINT UNSIGNED COMMENT '年龄',IDCARD CHAR(18) COMMENT '身份证号',ENTRYDATE DATE COMMENT '入职时间'
)COMMENT '员工表'

4、修改表语句

(1)添加字段

ALTER TABLE 表名 ADD 字段名 类型(长度) [COMMENT 注释] [约束];

示例:为EMP表添加一个新字段“昵称”为NICKNAME,类型为VARCHAR(20)

ALTER TABLE EMP ADD NICKNAME VARCHAR(20) COMMENT '昵称';

(2)修改字段的数据类型

ALTER TABLE EMP MODIFY 字段名 新数据类型(长度);

示例:修改 NICKNAME 字段类型为VARCHAR(50)

ALTER TABLE EMP MODIFY NICKNAME VARCHAR(50);

(3)修改字段名和字段类型

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) [COMMENT 注释] [约束];

示例:修改EMP表中的NICKNAME字段为USERNAME,类型为VARCHAR(30)。

ALTER TABLE EMP CHANGE NICKNAME USERNAME VARCHAR(30) COMMENT '用户名';

(4)删除字段

ALTER TABLE 表名 DROP 字段名;

示例:删除EMP表的USERNAME字段。

ALTER TABLE EMP DROP USERNAME;

(5)修改表名

ALTER TABLE 表名 RENAME TO 新表名;

示例:修改EMP表的表名为employee。

ALTER TABLE EMP RENAME TO employee;

(6)删除表
ps:在删除表时,表中数据也会被删除

DROP TABLE [IF EXISTS] 表名;

示例:删除USER表。

DROP TABLE IF EXISTS USER;

(7)删除指定表,并重新创建该表(可用于清空表数据)

TRUNCATE TABLE 表名;

示例:删除并重新创建employee表。

TRUNCATE TABLE employee;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/668156.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Openresty+Lua+Redis实现高性能缓存

一、背景 当我们的程序需要提供较高的并发访问时,往往需要在程序中引入缓存技术,通常都是使用Redis作为缓存,但是要再更进一步提升性能的话,就需要尽可能的减少请求的链路长度,比如可以将访问Redis缓存从Tomcat服务器…

MQ面试题整理(持续更新)

1. MQ的优缺点 优点:解耦,异步,削峰 缺点: 系统可用性降低 系统引入的外部依赖越多,越容易挂掉。万一 MQ 挂了,MQ 一挂,整套系统崩 溃,你不就完了?系统复杂度提高 硬生…

ES高可用架构涉及常用功能整理

ES高可用架构涉及常用功能整理 1. es的高可用系统架构和相关组件2. es的核心参数2.1 常规配置2.2 特殊优化配置2.2.1 数据分片按ip打散2.2.2 数据分片机架感知2.2.3 强制要求数据分片机架感知2.2.4 写入线程池优化2.2.5 分片balance优化2.2.6 限流控制器优化 3. es常用命令3.1 …

前缀和 acwing

思路&#xff1a;两个数组&#xff0c;一个数组用来保存数据&#xff0c;一个数组来求对应项的和 前缀和S[r]-s[r-1] 空出来下标0 从1开始 方便表示&#xff0c;防止越界 c代码实现: #include<iostream> using namespace std; const int N1000000; int a[N],s[N]; …

344. Reverse String(反转字符串)

题目描述 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间&#xff0c;你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 问题分析 以中间字符为轴&#xff0c;将两边的字符对换…

CSS-IN-JS

CSS-IN-JS 为什么会有CSS-IN-JS CSS-IN-JS是web项目中将CSS代码捆绑在JavaScript代码中的解决方案。 这种方案旨在解决CSS的局限性&#xff0c;例如缺乏动态功能&#xff0c;作用域和可移植性。 CSS-IN-JS介绍 1&#xff1a;CSS-IN-JS方案的优点&#xff1a; 让css代码拥…

深入探索 MySQL 8 中的 JSON 类型:功能与应用

随着 NoSQL 数据库的兴起&#xff0c;JSON 作为一种轻量级的数据交换格式受到了广泛的关注。为了满足现代应用程序的需求&#xff0c;MySQL 8引入了原生的 JSON 数据类型&#xff0c;提供了一系列强大的 JSON 函数来处理和查询 JSON 数据。本文将深入探讨 MySQL 8 中JSON 类型的…

Java与SpringBoot:实现高效车险理赔信息管理系统

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

ArcGIS学习(三)数据可视化

ArcGIS学习(三)数据可视化 1.矢量数据可视化 需要提前说明的是,在ArcGIS中,所有的可视化选项设置都是在“图层属性”对话框里面的“符号系统”中实现的。 对于矢量数据的可视化,主要有四种可视化方式: 按“要素”可视化按“类别”可视化按“数量”可视化按“图表”可视…

【Elasticsearch】从入门到精通

目前java常见的针对大数据存储的方案并不多&#xff0c;常见的就是mysql的分库分表、es存储 这里偏向es存储方案&#xff0c;es不同的版本之间其实差异还挺大的&#xff0c;本篇博文版本Elasticsearch 7.14.0 Springboot整合Easy-Es Easy-Es官方文档 Elasticsearch的初步认识 …

TypeScript:将arraybuffer类型数据转换为json

通过axios发送http请求时&#xff0c;如果设置了 const httpArgs { method: GET, url:/url/xxx, params:{}, headers:{Content-type:application/octet-stream}, responseType:arraybuffer } 那么响应数据将被保存在arraybuffer类型的数组中&#xff0c;可以通过如下方式将其…

机器翻译后的美赛论文怎么润色

美赛论文的语言表达一直是组委会看重的点&#xff0c;清晰的思路和地道的语言在评审中是重要的加分项。 今天我们就来讲讲美赛论文的语言问题。 我相信有相当一部分队伍在打美赛的时候&#xff0c;出于效率的考量&#xff0c;都会选择先写中文论文&#xff0c;再机翻成英文。 …

Python基础学习 -07 运算符

Python 运算符 运算符用于对变量和值执行操作。 Python 在以下组中划分运算符&#xff1a; 算术运算符赋值运算符比较运算符逻辑运算符身份运算符成员运算符位运算符 Python 算术运算符 算术运算符与数值一起使用来执行常见的数学运算&#xff1a; 运算符名称实例加x y-…

【蓝桥杯冲冲冲】[NOIP2003 普及组] 栈

蓝桥杯备赛 | 洛谷做题打卡day27 文章目录 蓝桥杯备赛 | 洛谷做题打卡day27题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示题解代码我的一些话 [NOIP2003 普及组] 栈 题目背景 栈是计算机中经典的数据结构&#xff0c;简单的说&#xff0c;栈就是限制在一…

Linux校准时间 Centos

Linux校准时间 Centos 首先&#xff0c;确保系统中已经安装了tzdata包。如果没有安装&#xff0c;可以使用以下命令安装&#xff1a; sudo yum install tzdata设置系统时区为上海&#xff1a; sudo timedatectl set-timezone Asia/Shanghai验证时区设置是否生效&#xff1a;…

图解支付-金融级密钥管理系统:构建支付系统的安全基石

经常在网上看到某某公司几千万的个人敏感信息被泄露&#xff0c;这要是放在持牌的支付公司&#xff0c;可能就是一个非常大的麻烦&#xff0c;不但会失去用户的信任&#xff0c;而且可能会被吊销牌照。而现实情况是很多公司的技术研发人员并没有足够深的安全架构经验来设计一套…

RK3568平台 设备模型基本框架-kobject 和kset

一.什么是设备模型 字符设备驱动通常适用于相对简单的设备&#xff0c;对于一些更复杂的功能&#xff0c;比如说电源管理和热插拔事件管理&#xff0c;使用字符设备框架可能不够灵活和高效。为了应对更复杂的设备和功能&#xff0c;Linux内核提供了设备模型。设备模型允许开发…

Centos7安装图形界面并使用Win10远程桌面连接

Centos7安装图形界面并使用Win10远程桌面连接 一、关闭防火墙和selinux二、安装Server with GUI三、设置系统默认启动进入GUI界面四、安装epel库和xrdp五、启动xrdp并设置成开机自启六、win10电脑打开连接 一、关闭防火墙和selinux #临时关闭防火墙 [rootse1215 ~]# systemctl…

算法——B/动态规划

一、动态规划基础 什么是DP DP(动态规划)全称Dynamic Programming,是运筹学的一个分支&#xff0c;是一种将复杂问题分解成很多重叠的子问题&#xff0c;并通进子问题的解得到整个问题的解的眼一种算法在动态规划中有一些概念&#xff1a; 状态&#xff1a;就是形如dp[ i ] […

JSON使用示例

JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;易于人阅读和编写&#xff0c;同时也易于机器解析和生成。它基于JavaScript的一个子集&#xff0c;但是JSON是独立于语言的&#xff0c;可以被多种编程语言读取和构建。以下是一…