关键词:
前一篇文章是数据库系统的基础概念和MySQL的入门篇,SQL是一种操作关系型数据库的结构化查询语言。总的来说,SQL分为四大类,分别是数据定义语言DDL,数据操作语言DML,数据查询语言DQL和数据控制语言DCL。
今天这篇文章将详细讲述数据定义语言DDL对数据库和表的相关操作。
推荐学习专栏:Java 编程进阶之路【从入门到精通】
文章目录
1. DDL-操作数据库
首先要学习的是使用DDL来对数据库进行操作,和以往一样,对数据进行操作时,我们主要是对数据进行增删改查,同样,我们使用DDL操作数据库也主要是对数据库进行增删改查操作。
1.1 查询
查询所有的数据库:
show databases;
小案例:
1.2 创建数据库
创建新的数据库:
create database 数据库名称;
使用上面的方式创建新的数据库时,如果该数据库已经存在,则会出现错误,所以我们在创建新的数据库时一般会判断该数据库是否存在,如果已存在,则不会创建。
创建新的数据库(判断数据库是否已经存在):
create database if not exists 数据库名称;
小案例:
1.3 删除数据库
删除数据库:
drop database 数据库名称;
和前面创建新的数据库相同,为了避免出现错误,我们一般会先判断该数据库是否存在,如果不存在,则不会删除。
删除数据库(判断数据库是否已经存在):
drop database if exists 数据库名称;
小案例:
1.4 使用数据库
现在我们就成功创建了新的数据库,接下来,我们要想在数据库中创建表,首先我们要明白是对哪一个数据库进行操作,此时我们先要使用数据库,才能对数据库中的表进行操作。
使用数据库:
use 数据库名称;
查询当前正在使用的数据库:
select database();
小案例:
2. DDL-操作数据表
同样,对数据表的操作也无非就是增删改查,在学习相关操作之前,我们先要熟悉一下MySQL的数据类型。
2.1 数据类型
MySQL支持多种数据类型,但是大致可以分为3中,分别是数值型,日期型和字符串型。下面是比较常用的几种数据类型:
数值:
数据类型 | 解释 |
---|---|
tinyint | 小整数型,占1个字节 |
int | 大整数型,占4个字节 |
double | 浮点类型 |
日期:
数据类型 | 解释 |
---|---|
date | 日期值,只包含年月日 |
datetime | 混合日期和时间值,包含年月日时分秒 |
字符串:
数据类型 | 解释 |
---|---|
char | 定长字符串 |
varchar | 变长字符串 |
定长字符串和变长字符串的区别:
字符串是我们在数据库中经常使用的数据类型,使用变长字符串,如果字符的长度没有达到指定的长度,那么实际的长度是多少就占用几个字符,这样的做法显然是使用时间换空间,而使用定长字符串虽然会浪费空间,但是一般储存性能比较高。
2.2 查询表
查询当前数据库下所有的表:
show tables;
查询表结构:
desc 表名称;
小案例:
2.3 创建表
创建一个新的表:
create table 表名称(
字段名1 数据类型,
字段名2 数据类型,
...
字段名n 数据类型 #这里是不需要加上,的
);
小案例:
2.4 删除表
删除表:
drop table 表名;
删除表(判断表是否存在):
drop table if exists 表名;
小案例:
2.5 修改表
修改表名:
alter table 表名 rename to 新的表名;
增加一列:
alter table 表名 add 列名 数据类型;
修改数据类型:
alter table 表名 modify 列名 新数据类型;
修改列名和数据类型:
alter table 表名 change 列名 新列名 新数据类型;
删除列:
alter table 表名 drop 列名;
小案例:
3. 实战案例详解
需求:设计一张学生表,请注重数据类型、长度的合理性。
- 编号
- 姓名,姓名最长不超过10个汉字
- 性别,因为取值只有两种可能,因此最多一个汉字
- 生日,取值为年月日
- 成绩,小数点后保留两位
- 地址,最大长度不超过 64
- 学生状态(用数字表示,正常、休学、毕业…)
在完成这样一个案例的时候,首先创建一个学生的数据库,在数据库中创建一张新的表,创建一张表的时候注意语法格式,数据类型和长度的合理性。
以管理员身份运行命令提示符,登录Mysql:
创建学生信息数据库:
create database if not exists student;
使用student
数据库:
use student;
创建数据表:
create table stu(
id int ,-- 编号
name varchar(10),-- 姓名
gender char(1),-- 性别
birthday date,-- 生日
score double(5,2) ,-- 分数
addr varchar(50),-- 地址
status tinyint-- 状态
);
4. 总结
SQL分为了四大类,今天是对数据定义语言DDL做了一个详细的讲解,分别使用DDL来操作数据库和数据表,并且我们也完成了设计一张学生表的简单需求。相对来说是比较容易的,在日后的操作中会慢慢的熟练。
mysql高级篇数据库到底是什么?一文带你快速上手mysql(代码片段)
在学习JavaWeb过程中,数据库学习是不可或缺的。整个JavaWeb体系中,数据库部分用于储存和管理数据,而数据作为网页中非常重要的一部分,自然我们是有必要深入学习数据库的。推荐学习专栏:Java编程进阶... 查看详情
web前端一文带你吃透css(完结篇)
前端学习路线小总结:基础入门:HTMLCSSJavaScript三大主流框架:VUEREACTAngular深入学习:小程序NodejQueryTypeScript前端工程化文章目录一.CSS布局-对齐1.水平对齐1.1元素居中对齐1.2文本居中对齐1.3图片居中对齐1.4使用定位方式实现左右... 查看详情
一文带你吃透数据库的约束,不做crud程序员(代码片段)
在SQL标准中,一共规定了6种不同的约束,包括非空约束,唯一约束和检查约束等,而在MySQL中是不支持检查约束的,所以这篇文章先对其余5种约束做一个详解和练习。文章目录1.约束的概念2.约束的分类3.非空... 查看详情
如何使用jdbc操作数据库?一文带你吃透jdbc规范(代码片段)
...ltSet4.5PreparedStatement4.5.1sql注入问题4.5.2preparedStatement原理5.数据库连接池5.1概念5.2实现6.Druid连接池的使用7.准备工作8.实战案例9.增删改查操作练习9.1查询所有9.2添加数据9.3修改数据9.4删除数据10.总结📂橙子精品文章学习推荐1.... 查看详情
如何使用jdbc操作数据库?一文带你吃透jdbc规范(代码片段)
...ltSet4.5PreparedStatement4.5.1sql注入问题4.5.2preparedStatement原理5.数据库连接池5.1概念5.2实现6.Druid连接池的使用7.准备工作8.实战案例9.增删改查操作练习9.1查询所有9.2添加数据9.3修改数据9.4删除数据10.总结📂橙子精品文章学习推荐1.... 查看详情
一文带你吃透js处理树状结构数据的增删改查(代码片段)
目录问题描述:JS处理树状结构的增删改查解决方案:1、新增节点2、删除节点3、修改节点4、查找节点问题描述:JS处理树状结构的增删改查 最近在开发一个后台管理系统的权限管理模块,涉及到各种... 查看详情
英雄哪里出来一文带你吃透算法(代码片段)
文章目录前言一、语言基础1、「光天化日学C语言」二、刷题必读1、「LeetCode零基础指南」三、语言入门1、「C语言入门100例」四、算法入门1、「算法零基础100讲」五、算法进阶1、「画解数据结构」2、「算法进阶50讲」3、「LeetC... 查看详情
英雄哪里出来一文带你吃透算法(代码片段)
...中级」零基础持续C语言练习教程「算法零基础100讲」「高级」零基础持续算法练习教程「画解数据结构」「高级」「推荐」数据结构动图教程「算法进阶50讲」「资深」进阶持续算法练习教程「LeetCode算法题集汇总」「资深」全... 查看详情
一文带你吃透java中的接口(代码片段)
接口接口的概述和生活举例接口定义的基本格式如何定义一个接口的格式:publicinterface接口名称 //接口内容接口的抽象方法定义/*在任何版本的Java中,接口都能定义抽象方法。格式:publicabstract返回值类型方法名称(参数列表);注意... 查看详情
web前端一文带你吃透css(中篇)
前端学习路线小总结:基础入门:HTMLCSSJavaScript三大主流框架:VUEREACTAngular深入学习:小程序NodejQueryTypeScript前端工程化继续学习CSS吧!一.CSS盒子模型(BoxModel)1.CSS盒子模型2.元素的宽度和高度二.CSS边框(Border)1.边框样式 查看详情
web前端一文带你吃透html(下篇)
前端学习路线小总结:基础入门:HTMLCSSJavaScript三大主流框架:VUEREACTAngular深入学习:小程序NodejQueryTypeScript前端工程化一起学习HTML下篇吧!一.HTML区块1.HTML区块元素2.HTML内联元素3.HTML的div元素4.HTML的span元素 查看详情
mysql一文搞懂mysql语句(基础篇)(代码片段)
MySQL一、数据库的操作1.1显示当前的数据库1.2创建数据库1.3使用数据库1.4删除数据库二、常用数据类型2.1数值类型:2.2字符串类型2.3日期类型三、表的操作3.1创建表3.2查看表结构3.3删除表4.1CRUD4.2新增(Create)(1... 查看详情
mysql一文搞懂mysql语句(基础篇)(代码片段)
MySQL一、数据库的操作1.1显示当前的数据库1.2创建数据库1.3使用数据库1.4删除数据库二、常用数据类型2.1数值类型:2.2字符串类型2.3日期类型三、表的操作3.1创建表3.2查看表结构3.3删除表4.1CRUD4.2新增(Create)(1... 查看详情
kubernetes系列一文带你吃透k8s应用pod结点(代码片段)
...a;创建K8s集群项目简介:上一节我们一起学习了,如何去部署一个K8S的应用程序,这一节,我们主要讲解一下,K8S应用的框架结构。K8S应用pod结点目标一、KubernetesPods1.1、Kubernetes中的pod是做什么的二、工作结点... 查看详情
一文带你吃透java中的继承(代码片段)
继承继承的概念继承的格式定义父类的格式:(一个普通的类定义)publicclass父类名称 //...定义子类的格式:publicclass子类名称extends父类名称 //...举例配合理解:继承中成员变量的访问特点举例配合理解:区分子类方法中重名的三种变... 查看详情
进程线程与协程傻傻分不清?一文带你吃透!
前言欢迎来到操作系统系列,依然采用图解+大白话的形式来讲解,让小白也能看懂,帮助大家快速科普入门本篇开始介绍进程、线程、协程,相信很多小白们对这几个概念理解的不清晰,这里全部给你们安排的明明白白,我们... 查看详情
web前端一文带你吃透html(上篇)(代码片段)
前端学习路线小总结:基础入门:HTMLCSSJavaScript三大主流框架:VUEREACTAngular深入学习:小程序NodejQueryTypeScript前端工程化🍁开始前端之旅吧!一.HTML简介1.什么是HTML?2.HTML标签3.HTML元素4.HTML版本5.Web浏览器6.HTM... 查看详情
一文吃透springboot整合mybatis-plus(保姆式教程)(代码片段)
...入依赖2、配置application.yml3、自动整合配置【1】IDEA连接数据库【2】添加数据库到IDEA中【3】选择数据表进行自动创建4、手动创建Controller层和测试首先创建一个SpringBoot项目,具体创建步骤可以参见我的上一篇博文:SpringB... 查看详情