目录
🌳介绍
🎄数据库操作
🚩显示当前数据库
🚩创建数据库
编辑🚩使用/选中 数据库
🚩删除数据库
🌴常用的数据类型
🚩数值类型
🚩字符串类型
🚩日期类型
🎄表操作
🚩列出当前数据库的表
🚩创建表
🚩查看表结构
🚩删除表
🌳介绍
SQL本质是一个"编程语言",专门用来操作数据库的编程语言,和Java,C之类的画风差别很大。
SQL是各个数据库之间通用的,各种数据库使用的语言都是SQL
MySQl是一个"客户端-服务器"结构的程序,很多场景,是需要多个程序相互配合,完成一系列的工作,这个过程中,多个程序之间,往往会使用网络进行通信(这些在前面已经具体讲述过)。
- 客户端(Client):主动发起请求的一方
- 服务器(Server):被动接收请求的一方
- 请求(Request):客户端主动给服务器发送的数据
- 响应(Response):服务器给客户端返回的数据
MySQL其实涉及到两个部分,既有客户端,也有服务器。
MySQL服务器:
MySQL客户端:
输入密码之后,看到红色框框里面的了,此时就是客户端连上数据库服务器了
MySQL存储数据,是存储在硬盘上的。
一个MySQL服务器上,可以有多个数据库(这里指数据集合),每个数据库里可以有多个数据表,每个数据表里可以有很多行,每个行中可以有很多列。
🎄数据库操作
针对数据集合的操作
🚩显示当前数据库
show databases;
使用如下:
🚩创建数据库
创建一个新的数据集合
create database 数据库名;
collate: 指定数据库字符集的校验规则
使用如下:
注意:数据库名要求不能和SQL中的关键字重复,也就是带有特定含义的单词,例如create,database....但是MySQL也给我们留了个口子,如果实在想用关键字作为数据库名,可以使用反引号(`),把这个名字引起来。
在创建数据库的时候,还可以指定字符集
字符集:在计算机中,一个汉字没有固定的字节个数,和字符编码是密切相关的,例如在ASCII中,约定了某个数字就表示某个字符(A=>65),对于汉字来说,数目远远超过ASCII字符,汉字大概有6w多个,这里也是搞了一个表格使用不同的数字表示不同的汉字,但是在市面上这样的表格不止一个,实际上有多个,并且编码规则不同,到今天,当下主流的汉字编码方式有两种,GBK(两个字节表示一个汉字),utf-8(变长编码,对于汉字来说表示三个字节,广泛使用,能表示世界上各种语言的文字)。
后续创建数据库的时候,建议使用utf8作为字符集,mysql 5.7默认的字符集是拉丁文,不支持中文
create database 数据库名 charset 字符集名;
🚩使用/选中 数据库
上述显示数据库,看到有各种数据库,就需要选中某个数据库在进行操作
use 数据库名;
使用如下:
接下里的操作都是针对这个被选中的数据库进行的。
🚩删除数据库
drop database 数据库名;
使用如下:
注意:这是一个高风险的操作,在工作中删除数据库饭碗也没了。
🌴常用的数据类型
🚩数值类型
注意:float和double存在精度误差,不适合用来表示对于"精度要求"很高的场景,如算钱,科学计算等。也慎重使用浮点数进行比较,例如 0.1 + 0.2 == 0.3 => false
DECIMAL(M,D)就能解决上述问题了,可精确的存储小数,但是也会付出一些代价,相对于float和double来说,存储的时候会消耗更多的空间,计算的时候也需要更多的时间。
🚩字符串类型
VARCHAR(SIZE)可变长的字符串,例如SIZE为256,那么这个长度可能比256少,不会超过256;TEXT为长文本数据,单位是字符,一个汉字就是一个字符。
🚩日期类型
数据类型小结:
表示整数 => int ; 表示小数 => double ; 表示字符串 => varchar ;表示时间日期 => datetime 重点掌握,其他简单了解即可
🎄表操作
注意:再进行对数据库的表操作之前,一定要先 use 选中数据库。
🚩列出当前数据库的表
show tables;
由于当前的数据库中没有创建任何的表,所以是空的
🚩创建表
create table 表名(列名 类型,列名 类型......);
设定表名/列名的时候,也是不能和SQL的关键字重复的,若要重复,也需要反引号(``)引起来,同一个数据库中,表名不能重复(不同数据库中就可以了)。
显示当前数据库的表:
🚩查看表结构
desc 表名;
🚩删除表
drop table 表名;
这个操作不仅删除了表的本身,里面的数据也都删除了。
注意:删除表是一个比删除数据库还要危险的操作!!!