0


MySQL基础之二 | 详解(SQL-DDL)

文章目录

🌕博客x主页:
不止于梦想 🌕!

🌎文章说明:MySql入门🌎

✅系列专栏:
数据库

🌴本篇内容:SQL概述和DDL(数据库操作语句)(对所需知识点进行选择阅读呀~)🌴

☕️每日一语:人生就像一杯茶,不会苦一辈子,但总会苦一阵子 ☕️

🕤作者详情:作者是一名双非大三在校生,喜欢Java,欢迎大家探讨学习,喜欢的话请给博主一个三连鼓励。

前言

  • 博主出的文章是根据视频教学成体系的文章。出一个版本或者一个阶段的学习笔记,都是会成体系的全部输出的。
  • redis的学习后面留下了一个小小的尾巴,就是redis的主从复制和哨兵模式以及jedis的学习,后面会补充完整的。

1、SQL的概述

1.1、SQL的简介(基本特点)

1.1.1、SQL语言的简介
  • SQL英文名为Structured Query Language,原意为结构化查询语言。是数据库的标准语言。
  • SQL是一个通用的、功能极强的关系数据库语言。什么是通用?首先咱们学习的MySQL,其实是基于SQL语言制作而成的一种数据库管理系统,习惯上简称数据库。而数据库管理系统可不止一种,例如:Oracle、SQL server等等。都是基于SQL语句实现的,就是说你学会了SQL语句,再学习其他的工具就很简单。
1.1.2、SQL语言的发展
  • SQL语言最早的原型是IBM的研究人员在上世纪70年代开发,并在IBM公司的关系数据库系统原型System R上实现。
  • 1986年10月由美国ANSI 公布最早的SQL标准。
  • 1989年4月,ISO提出了具备完整性特征的SQL,称为SQL-89 。
1.1.3、SQL语言的特点(优点)
  • 1、综合统一:集数据定义语言(DDL),数据操纵语言(DML),数据控制语言(DCL)功能于一体。可以独立完成数据库生命周期中的全部活动:定义关系模式,插入数据,建立数据库;对数据库中的数据进行查询和更新;数据库重构和维护;数据库安全性、完整性控制等。
  • 2、高度非过程化:在非关系型数据库,如redis中数据操纵语言“面向过程”,必须制定存取路径。而关系型数据语言特点的MySQL,只要提出“做什么”,无须了解存取路径。例如你在MySQL中查询的时候,你只给了条件where ,而没有给予路径。所以SQL的存取路径由系统自动选择。
  • 3、面向集合的操作方式:非关系数据模型采用面向记录的操作方式,操作对象是一条记录。在redis中介绍的AOF持久化策略,就是重启redis时重新执行appendonly.aof里保存的命令记录,而且是写命令。这里不懂的可以先跳过或者查看博主redis持久化文章。那么,SQL呢?SQL采用的是操作对象、查找结果可以是元组的集合;一次插入、删除、更新操作的对象可以是元组的集合。
  • 4、多种使用方式:SQL是独立的语言、能够独立地用于联机交互的使用方式。SQL还是嵌入式语言、SQL能够嵌入到高级语言(例如C,C++,Java,C#)程序中,供程序员设计程序时使用。
  • 5、语言简介,易学易用:SQL功能极强,完成核心功能只用了9个动词。 > 在这里插入图片描述
1.1.4、SQL语言的功能分类
  • DDL(Data Definition Language) : 数据定义语言,用来定义数据库对象:数据库,表,列等。 DDL简单理解就是用来操作数据库,表等。
  • DML(Data Manipulation Language) 数据操作语言,用来对数据库中表的数据进行增删改。 DML简单理解就对表中数据进行增删改。
  • DQL(Data Query Language) 数据查询语言,用来查询数据库中表的记录。 DQL简单理解就是对数据进行查询操作。从数据库表中查询到我们想要的数据。
  • DCL(Data Control Language) 数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户。 DML简单理解就是对数据库进行权限控制。比如我让某一个数据库表只能让某一个用户进行操作等。
1.1.4、SQL语言的功能对应的命令动词。

在这里插入图片描述

1.2、DDL(操作数据库)

1.2.1、DDL概述
  • 我们先来学习DDL来操作数据库。而操作数据库主要就是对数据库的增删查操作。
  • DDL即数据库定义语言是对数据库进行查询、创建、销毁以及使用的语言,是基础,只有创建了数据库,才能往里面存入数据。
  • 主要命令有CREATE(创建数据库)、DROP(销毁数据库)和ALTER(更改数据库)、show(查询数据库)。
1.2.2、查询数据库
  • 首先先登录到mysql的操作界面。还记得吗?window+R输入cmd,在控制台界面输入mysql -uroot -p密码;
  • 进入MySQL,我们先使用show databases;命令查看当前数据库管理系统中有多少条数据库。
  • 记住SQL语句是以分号结尾的,在输入命令之后要打上分号表示已经完成输入。不然 > 在这里插入图片描述
  • 还有就是MySQL默认会有四个数据库:即information_schema、performance_schema、sys、mysql。这些数据库不要动,以后再解释。
1.2.3、创建数据库
  • 使用CREATE命令(MySQL中忽略命令的大小写,只是习惯上用大写,表示这是一个命令),语法为:create database 数据库名;比如这里我创建一个数据库名为moreThanDream;那么语法为create database moreThanDream;(记得带上分号) > 在这里插入图片描述
1.2.4、删除数据库
  • 使用DROP(drop)命令;语法为: DROP database 数据库名称。在这里演示一下把我刚创建的数据库进入一个删除操作。 > 在这里插入图片描述
  • 在这里还有一个知识点,相信大家刚才肯定看到了我创建数据库时用的名称是moreThanDream,而创建出来以后的名称则是morerhandream,这说明MySQL默认支持的数据库名称是小写,而且不止默认,是强制。
1.2.5、使用数据库
  • 查看、创建、删除都说了,总得说说使用吧,肯定不能刚创建就删除啊,那咱们来使用使用。
  • 使用use 命令来使用表,语法:use 数据库名;别忘记分号。
  • 这里很多人就疑惑了,use以后呢,怎么使用。
  • 这是啥啊?这是,别急。在这里插入图片描述
1.2.6、查看当前使用数据库
  • 使用select命令;语法为:select database();意思是查看当前使用的数据库。 在这里插入图片描述- 看到的是当前数据库的名称。

1.3、DDL(操作表)

1.3.1、概述操作表
  • 在上一小节我们留下了一个悬念,即使用数据库了,那到底怎么使用呢?就是那个database changed吗?对了、对咯。
  • 首先,我们要明白一点,我们创建、使用数据库用来干嘛的?答案是存储数据,很好很好,直到了这个,那么我问你,数据存储在哪呢?你肯定要说,博主你这不是废话吗?当然是数据库了。对,你说的也没错,但是是以表的形式存储在数据库中的。
  • 我们知道MySQL(默认是数据库)是关系型数据库,什么是关系型数据库,说白了就是以表为单位对数据进行各种操作,表和表通过一些连接(后面会学)的数据库就是关系型数据库。
  • 说了这么多,那就解释一下上次的悬念,既然要使用数据库,那么得创建表吧?这里就要说到创建表以及其他操作。
1.3.2、查询表
  • 首先先查询你使用的数据库下有几张表(刚创建当然是没有了)。
  • 命令show;语法为:show tables;意思是查看当前数据库中存在的所有表。
  • 在这里插入图片描述

1.3.2、创建表
  • 使用CREATE,语法为:CREATE TABLE 表名 ( 字段名1 数据类型1, 字段名2 数据类型2, … 字段名n 数据类型n );
  • 注意最后一个字段后面的数据类型不加逗号。
  • 示例 CREATE TABLE tbl_user( name varchar(22), age int(3), sex int(1)#数字表示性别,1为男,0为女生。 );在这里插入图片描述
1.3.3、数据类型
  • 为什么要说这个呢?笨蛋,这是基础,不然我直接写上面的那varchar,你认识吗?
  • MySQL支持多种数据类型,但是大致可以分为三类。且这里只说明常用的,我们数据后端程序员,没必要研究那么深入,那你不如学习数据库。
  • 1、数值型:> tinyint : 小整数型,占一个字节> int : 大整数类型,占四个字节> 举例 : age int> double : 浮点类型> 使用格式: 字段名 double(总长度,小数点后保留的位数)> 举例 : score double(5,2)> 解释: 5表示总长度,2表示小数点后保留两位数,那整数位应该是3位数,总长度等于整数位位数加上小数点保留位数。
  • 2、日期类型: date : 日期值。只包含年月日 举例 :birthday date : datetime : 混合日期和时间值。包含年月日时分秒
  • 3、字符串 char : 定长字符串。 优点:存储性能高 缺点:浪费空间 举例 : name char(12) 如果存储的数据字符个数不足10个,也会占10个的空间 varchar : 变长字符串。 优点:节约空间 缺点:存储性能底 举例 : name varchar(12) 如果存储的数据字符个数不足12个,那就数据字符个数是几就占几个的空间。
  • 说那么多,不练习一下?别只看不动手,多看多动手才能学得会!!!例子:设计一张学生表,请注重数据类型、长度的合理性1. 编号(学生id)2. 姓名,姓名最长不超过8个汉字3. 性别,只有两种可能,设置为整形,1为男生,0表示女生。没有其他!!!但是MySQL中没有布尔类型。所有用int4. 生日,取值为年月日5. 月考成绩,小数点后保留3位6. 邮件地址,最大长度不超过 647. 家庭联系电话,不一定是手机号码,可能会出现 - 等字符
  • 分析:生日使用date类型,date类型包含年月日,月考成绩使用double,而且成绩的整数位不会达到4位数。邮件地址是可变的(你读书肯定得跑远啊,来自北漂的感言),使用varchar类型。那么代码如下:> create table tbl_student(> id int(12),> name varchar(8),> sex int(2),> score double(6,3),> birtyday date,> email varchar(25),> telhome int(12)> );> 在这里插入图片描述
1.3.4、查看表结构
  • 上面已经创建表成功了,那么我们总得看看我们创建的这个表到底长什么样子吧?
  • 使用命令:desc(describe的缩写)命令可以查看表结构。语法:desc 表名; > 在这里插入图片描述
  • field 表示字段,字段就是对应Java中的属性。type表示类型,其他的后面学到再介绍。
1.3.5、删除表
  • 使用drop(DROP)方法,语法是:DROP table 表名;
  • 一般推荐使用drop table if exists 表名;if exists是判断表存不存在,存在就删除。不存在就掠过。 还是使用刚才创建的表做一个演示。不过代码先保存,后面还会说到更改表。在这里插入图片描述
1.3.6、修改表
1.3.6.1、概述

使用命令:alter。

1.3.6.2、修改表名
  • 语法:ALTER TABLE 表名 RENAME TO 新的表名;在这里插入图片描述 数据库中有tbl_user修改为new_user。
1.3.6.2、在表中添加一列
  • 语法为:ALTER TABLE 表名 ADD 列名 数据类型;
  • 举例:在这里插入图片描述 在上面的字段有name、age、sex三个。添加一列其实就是添加一个字段。 我往上面的表中添加一个address字段,数据类型选为varchar,命令为:alter table new_user add address varchar(22);在这里插入图片描述
1.3.6.2、在表中删除一列
  • 语法为:ALTER TABLE 表名 DROP 列名
  • 举例:用刚才新添加的一列举例,将其删除:alter table new_user drop address;在这里插入图片描述
1.3.6.3、修改数据类型
  • 语法为:ALTER TABLE 表名 MODIFY 列名 新数据类型;
  • 举例,上面那一列已经被删除了,那么就改变一下age吧:alter table new_user modifiy name char;
  • 在这里插入图片描述
1.3.6.4、修改列名、数据类型
  • 这个功能可以改两个,厉害吧。命令:change
  • 语法:ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型;
  • 举例:比如改上面的name,改为myname,然后类型改为varchar。
  • alter table new_user change myname varchar(22);

在这里插入图片描述

2、mysql集成开发工具的使用。

2.1 为什么要使用集成开发工具
2.1.1没有集成开发工具的缺点。
  • 通过刚才的学习,大家都应该看到了,我们使用纯SQL语句创建数据库,创建表的困难。
  • 我们得记住大量的SQL语句以便于实现开发,这对于我们学习的压力是巨大的。
  • 再一个,我们学习Java,学习各种框架,相信大家都是走Java后端开发的。对于其他的东西我们现在先会用,然后慢慢熟悉即可,重要的是把我们后端的东西理解透。
2.1.2使用集成开发工具的好处。
  • 首先是创建数据库,创建表简单。
  • 再次是便于维护和管理。
2.1.3如何使用集成开发工具。
  • 这里的使用,不是你理解意义上的使用,而是适度使用集成开发工具,不要依赖于集成开发工具。
  • 在这里,先声明一点,就是在未来使用集成开发工具的使用,我也是自己编写SQL语句来生成data的。
  • 有的人就要问了,有工具还自己编写,不是纯纯的nt吗?这你就不对了,你想想我为什么又重走了一遍这条路,当然是基础不牢了。所以一定要自己动手多敲,使用工具谁不会使用啊?使用工具能记住吗?
  • 所以大家使用集成开发工具要适度,以后编写DML、DQL时,希望各位自己写代码。
2.2 集成开发工具的下载与安装
2.2.1集成开发工具的下载
  • 这里说明一下啊,我用的是navicat软件。集成开发工具有很多,但是推荐使用这个。
  • 下载地址:官方网址:
  • pojieban:点这里
2.2.2集成开发工具的安装
  • 教程在点这里那,需要的可以自行查看。

总结

  • 前言万语,还是要自己动手。
  • 如果你想看往期教程,了解redis。
  • redis
  • 喜欢的朋友给个三连呗,谢谢~
标签: sql mysql 数据库

本文转载自: https://blog.csdn.net/qq_63992577/article/details/127086907
版权归原作者 不止于梦想 所有, 如有侵权,请联系我们删除。

“MySQL基础之二 | 详解(SQL-DDL)”的评论:

还没有评论