MySQL概述——DDL

news2024/9/18 5:23:48

1.SQL通用语法

1.SQL语句可以单行或多行书写,以分号结尾。

2. SQL语句可以使用空格/缩进来增强语句的可读性。

3.MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。

4.注释:

(1)单行注释:--注释内容或#注释内容(MySQL特有)

(2)多行注释:/*注释内容*/

2.SQL分类

SQL语句,根据其功能,主要分为四类:DDL、DML、DQL、DCL。

3 DDL

对数据库、表、字段的定义操作

3.1数据库操作

3.1.1查询

查询所有数据库:SHOW DATABASES;

例:输入,就可查询当前数据库服务器中所有的数据库,包括我刚刚新建的两个。

查询当前正在使用的数据库:SELECT DATABASE(); #注意括号()不能少!

3.1.2创建

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

例1:输入create database itcast;

就会创建好名为itcas的数据库:

例2:输入CREATE DATABASE if not exists ithe default charset utf8mb4;

3.1.3删除

DROP DATABASE [ IF EXISTS]数据库名;

例:输入drop DATABASE ithe

然后查询:show DATABASEs

发现就没有ithe这个表了

3.1.4使用

USE 数据库名;

切换到指定的这个数据库,进行使用。

例:输入use library

再查询:SELECT DATABASE()

结果为:

3.2表操作

3.2.1查询

查询当前数据库所有表

也可以用use切换指定数据库,再查询。

查询表结构

DESC表名;

查询指定表的建表语句

SHOW CREATE TABLE表名;

3.2.2创建

逗号分离,最后一个字段没有逗号。通过comment加上对应字段的注释。

示例:

可以用desc+表名 查询表结构:

3.2.3数据类型

(1)数值类型

(2)字符串类型

VARCHAR——VS——CHAR

  1)VARCHAR类型用于存储可变长度字符串,是最常见的字符串数据类型。它比固定长度类型更节省空间,因为它仅使用必要的空间(根据实际字符串的长度改变存储空间)。

  有一种情况例外,如果MySQL表使用ROW_FORMAT=FIXED创建的话,每一行都会使用定长存储。

  2)CHAR类型用于存储固定长度字符串:MySQL总是根据定义的字符串长度分配足够的空间。当存储CHAR值时,MySQL会删除字符串中的末尾空格(在MySQL 4.1和更老版本中VARCHAR 也是这样实现的——也就是说这些版本中CHAR和VARCHAR在逻辑上是一样的,区别只是在存储格式上)。

  同时,CHAR值会根据需要采用空格进行剩余空间填充,以方便比较和检索。但正因为其长度固定,所以会占据多余的空间,也是一种空间换时间的策略;

如:

用户名username varchar(50)

性别gender char(1)

(3)日期时间类型

没有负数,就要用无符号的,加上关键字unsigned。

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

1.编号(纯数字)

2.员工工号(字符串类型,长度不超过10位)

3.员工姓名(字符串类型,长度不超过10位)

4.性别(男/女,存储一个汉字)

5.年龄(正常人年龄,不可能存储负数)

6.身份证号(二代身份证号均为18位,身份证中有X这样的字符)

7.入职时间(取值年月日即可)

代码如下:

create table emp(

       id int comment '编号',

       empid varchar(10) comment '员工工号',

       empname varchar(10) comment '员工姓名',

       sex char(1) comment '性别',

       age tinyint unsigned comment'年龄',

       idcard char(18) comment'身份证号',

       entime date comment'入职时间'

)

3.2.4表修改(alter打头)

(1)添加字段add

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

案例:

为emp表增加一个新的字段“昵称”为nickname,类型为varchar(20)

代码:

alter table emp add nickname varchar(20) comment'昵称'

查询可知已成功添加:

(2)修改字段

1)修改字段数据类型(modify)

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

2)修改字段名和字段类型(change)

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

案例:

将emp表的nickname字段修改为username,类型为varchar(30)

代码:在添加字段的代码上修改就是将add改为change,原本一个字段名,改为包含旧和新的两个字段名。

alter table emp change nickname username varchar(20) comment'昵称'

(3)修改表名(rename to)

ALTER TABLE 表名 RENAME TO 新表名;

例:改emp为employee

代码:

alter table emp rename to employee

(4)删除字段

ALTER TABLE表名DROP字段名;

3.2.5表删除(drop/truncate打头)

(1)删除表

DROP TABLE [ IF EXISTS]表名;

(2)删除指定表,并重新创建该表。

TRUNCATE TABLE表名; (数据没有了只有一张空表了)

例:drop table if exists employee

查询显示无employee表了。

3.3 DDL总结

3.3.1 DDL-数据库操作

SHOW DATABASES;

CREATE DATABASE数据库名;

USE数据库名;

SELECT DATABASE();

DROP DATABASE数据库名;

3.3.2.DDL-表操作

SHOW TABLES ;

CREATE TABLE表名(字段字段类型,字段字段类型);

DESC表名;

SHOW CREATE TABLE表名;

ALTER TABLE表名 ADD/MODIFY/CHANGE/DROP/RENAME TO ...;

DROP TABLE表名;

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

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

相关文章

我用AI绘画Stable Diffusion 一个月后,竟然能做出惊艳所有人的效果!

大家好,我是设计师阿威 如今要拍摄一组写真,需要服装、道具、灯光、场地、布景、拍摄、后期等过程。整个过程需要统一才能形成好的写真效果。现在有了AI绘图技术,我们可以实现通过AI绘图,只用计算机计算就得到一组接近真实的写真照…

P450Rdb: CYP450数据库--地表最强系列--文献精读24

P450Rdb: A manually curated database of reactions catalyzed by cytochrome P450 enzymes P450Rdb: 一个人工整理的细胞色素P450酶催化反应数据库 http://www.cellknowledge.com.cn/p450rdb/ 还有一篇类似CYP450综述-20年-地表最强系列-文献精读-4 要点: P450…

Postman简介

目录 1.概述 2.诞生背景 3.历史版本 4.安装和卸载 5.菜单和菜单项 6.使用 7.应用场景 8.示例 8.1.简单的GET请求 8.2.POST请求提交数据 8.3.查询参数 9.未来展望 10.总结 1.概述 Postman是一款用于API开发、测试和文档管理的综合性工具。允许开发者和测试人员创建…

1.PyQt6库和工具库QTDesigner安装

1.安装PyQT6和pyqt6-tools 1. PyQt6库是PyQt的开发库 2.pyqt6-tool时QTDesigner设计器工具支持库 pip install PyQt6 pip install pyqt6-tools 2.在Pycharm中配置外部工具QTDesigner和PYGIC 配置外部工具QTDesigner 1. QTDesigner是QT界面设计器 2.打开Pycharm->Settin…

牛客仓鼠的鸡蛋

分析一下判断语句 如果能放就输出位置 不能放就输出-1 不能放的条件是最大值小于要放的鸡蛋数量,线段树维护最大值 放的位置用线段树二分 每个篮子不能放超过k堆鸡蛋,记录一下每个篮子放的次数,次数等于k后给最大值附上0即可 // Proble…

Python连接Redis(简单连接、连接池连接、存取数据示例)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

【2024最新精简版】MyBatis面试篇

文章目录 mybatis内部实现过程mybatis延迟加载请说说MyBatis的工作原理mybatis接口里的方法,参数不同时能重载吗mybatis分页插件的原理是什么?mybatis的一级、二级缓存👍mybatis如何实现多表查询mybatis如何实现批量插入👍mybatis动态SQL标签…

【最新鸿蒙应用开发】——关于鸿蒙MVVM模式的理解

MVVM模式 MVVM(Model-View-ViewModel)是一种软件设计模式,主要用于分离应用程序的用户界面(UI)和业务逻辑。这种模式可以帮助开发者更高效地开发和管理复杂的用户界面。 程序的状态数据通常包含了数组、对象&#xff0…

Linux内存从0到1学习笔记(8.15 MMU/IOMMU/SMMU概览)

一, 什么是MMU? MMU(Memory Management Unit 内存管理单元),即内存管理单元,是计算机硬件中的一个重要组件,主要负责处理中央处理器(CPU)的内存访问请求。 其工作原理如下: 当程序发出内存访问请求,包括读取或写入操作以及逻辑地址(虚拟地址)。然后,MMU根据页表…

自动化测试git的使用

git是一款分布式的配置管理工具。本文主要讲git如何在自动化测试中安装,上传及拉取下载代码。 1 、git 介绍 每天早上到公司,从公司的git服务器上下载最新的代码,白天在最新的代码基础上,编写新的代码,下班时把“代码…

[Java基本语法] 异常

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏:🍕 Collection与数据结构 (92平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 🧀线程与…

Linux 内核 (十二)进程间通讯 之 消息队列

前言 这个系列的上一篇介绍了进程间通讯关于管道相关的内容及代码实例,本章要介绍关于消息队列相关的内容. 消息队列交互图示 函数原型 #include <sys/msg.h> #include <sys/ipc.h> //创建 or 打开队列 成功返回队列ID,失败返回-1 int msgget(key_t key,int fla…

探索AIGC与3D技术的融合:从图像到可探索的3D动态场景

随着人工智能和计算机图形技术的飞速发展,AIGC(人工智能生成内容)与3D技术的结合正在为我们打开一扇全新的创意之门。最近,我深入研究了几个令人兴奋的AIGC+3D方案,它们不仅展示了从单张图片或文本提示生成3D点云的强大能力,还进一步实现了AI虚拟试穿和生成高保真3D数字人…

Qt信号槽的回调机制

问&#xff1a;Qt强大的地方在哪里&#xff1f; 答&#xff1a;跨平台、信号槽。。。 问&#xff1a;信号槽是什么&#xff1f; 答&#xff1a;回调函数 问&#xff1a;怎么个回调法子 答&#xff1a;。。。 成果 信号槽本身实现过程是有些复杂的&#xff0c;所以本人参考…

CDN绕过技术

DNS域名信息收集 简介 Dns域名信息的手机&#xff0c;需要收集域名对应IP&#xff0c;域名注册人&#xff0c;DNS记录&#xff0c;子域名等一系列与域名相关的信息。 Cdn技术简介 Cdn是一个内容分发网络&#xff0c;类似于dns服务器一样&#xff0c;用户发送数据直接发送到…

AI Assistant 2024 震撼登场:AI补全功能惊艳来袭,替换GitHub Copilot Chat最友好的方式!

哈喽!欢迎来到程序视点。 前言 在之前的文章中&#xff0c;我们提到过“JetBrains 2024.1 中&#xff0c;AI Assistant 插件已被解绑&#xff0c;现在作为单独的插件在 JetBrains IDE 中可用”。 这一变化的驱动力是&#xff0c;需要在使用 AI 驱动的技术时提供更大的决策灵活…

【C语言习题】30.使用指针打印数组内容

文章目录 作业标题作业内容2.解题思路3.具体代码 作业标题 使用指针打印数组内容 作业内容 写一个函数打印arr数组的内容&#xff0c;不使用数组下标&#xff0c;使用指针。 arr是一个整形一维数组。 2.解题思路 先定义一个数组&#xff0c;使用指针打印数组内容那就是说我们…

linux驱动学习(八)之内核定制与裁剪

一、内核的配置 1) 把相关硬件平台的配置文件拷贝给.config 2) 执行make menuconfig命令 关于内核配置说明:Arrow keys navigate the menu. 方向键对菜单有效<Enter> selects submenus --->. 如果有该符号"--->",则按Enter表示进入子菜单Highlighted …

可视化图表:如此高颜值柱状图,其实简单配置就能实现。

这不又有某个boss给我图截图一些柱状性图表&#xff0c;说他们的前端觉得很难&#xff0c;说了一堆技术术语&#xff0c;他也不懂&#xff0c;截图我看到后&#xff0c;就给了他一个网址&#xff0c;马上就解决了。 在这里给大家摘录出几个比较有特色的柱状图出来&#xff0c;让…

【网络安全学习】使用Kali做渗透情报收集-01-<域名信息主机信息>

1.收集开源情报 开源情报(Open Source Intelligence&#xff0c;OSINT)是指从各种公开的渠道中寻找和获取有价值的信息 如&#xff1a;互联网、媒体、社交网络、公共数据库等开源情报具有以下特点&#xff1a; - 丰富性&#xff1a;开源情报涵盖了各种类型和领域的信息 - 可…