MySQL8.0入门:即学即用【第二章】SQL语法

本文介绍了SQL的基本概念,包括SQL的三大语言类别:数据定义语言、数据操纵语言和数据控制语言,以及关键语句如create、insert、select等。文章还详细讲解了MySQL中的数据类型,如数值、字符串、日期时间、二进制,并提到了命名规则和注释方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注:该学习笔记是根据莫振杰老师编写的《从0到1:MySQL即学即用》所学习整理的笔记。

第二章 SQL语法

一、SQL是什么

1、SQL简介

SQL即结构化查询语言,它是数据库的标准语言。SQL非常简洁,它只有6个常用动词:insert(增)、delete(删)、select(查)、update(改)、create(创建)、grant(授权)。

SQL可以分为三大类:数据定义语言、数据操纵语言、数据控制语言。

1)、数据定义语言

数据定义语言:主要用于对数据表进行创建、删除、修改等操作。

语句说明
create table创建表
drop table删除表
alter table修改表
2)、数据操作语言

数据操纵语言:主要用于对数据进行增、删、查、改的操作。

语句说明
insert增加数据
delete删除数据
select查询数据
update更新数据
3)、数据控制语言

数据控制语言:主要用于对数据库和表的权限进行管理。

语句说明
grant赋予用户权限
revoke取消用户权限

2、关键字

关键字指的是SQL本身“已经在使用”的单词或词组,因此在给数据库、表、列等命名时不能使用这些单词或词组。

常见的关键字有:select、from、where、group by、order by、distinct、like、insert、delete、update、create、table、alter、drop、is not、inner join、left outer join、right outer join、procedure、function等。

3、语法规则

1)、不区分大小写

对于表名、列名、关键字等,SQL是不区分大小写的。约定俗成是要求关键字一律大写,但是会增加初学者的辨识难度,所以可以不强求。

2)、SQL语句应该以分号结尾

如果执行一条SQL语句,则它的结尾加不加英文半角分号(;)都是可以的。但是如果同时执行多条SQL语句,则每一条语句的后面都必须加上银文半角分号才行。

4、命名规则

命名规则主要是针对数据库、表、列的。对于数据库、表、列的命名,需要遵循以下两条规则:

  • 不能是SQL关键字
  • 只能使用英文字母、数字、下划线

二、数据类型

MySQL的数据类型主要有以下四大类:

  • 数值
  • 字符串
  • 日期时间
  • 二进制

Mysq是不存在布尔类型的,但是在实际开发过程中,我们可以使用tinyint(1)、tinyint(0)这种方式来表示,其中1表示True、0表示False。

1、数值

数值是有0~9、正号(+)、符号(-)、小数点(.)组成的。
数值可以分为三大类:整数、浮点数、定点数

1)、整数
类型说明取值范围
tinyint很小的整数-2^7 ~ 2^7-1(-128~127)
smallint小的整数-2^15 ~ 2^15-1(-32768~32767)
mediumint中等的整数-2^23 ~ 2^23-1
int(或integer)普通的整数-2^31 ~ 2^31-1
bigint大整数-2^63 ~ 2^63-1
2)、浮点数
类型说明有效位
float单精度7位
double双精度15位
3)、定点数
类型说明有效位
decimal(m,d)定点数取决于m和d

decimal(m,d)的m表示该数值最多包含的有效数字的个数,d表示有多少为小数。

2、字符串

字符串起始就是一串字符。在MySQL中,字符串都是使用英文半角单引号或双引号引起来的。常用的字符串类型有下列7种:

类型说明字节
char定长字符串0~255
varchar变长字符串0~65535
tinytext短文本0~255
text普通长度文本0~65535
mediumtext中等长度文本0~16777215
longtext长文本0~4294967295
enum枚举类型取决于成员个数(最多64个)

实际开发中,最常用的是char、varchar、text、enum这4种类型。

1)、char

固定长度字符串,也叫作定长字符串,它的长度是固定的,存储相同数据时占用的空间大,但是性能稍高。

  • 语法结构:
    • char(n)
  • 参数说明:
    • n:表示指定的长度,它是一个整数,取值范围为0~255。
2)、varchar

可变长度字符串,也叫作变长字符串,它的长度是可变的,存储相同数据时占用的空间小,但是性能稍低。与char不同的是,varchar的占用空间是由字符串的实际长度来决定的。

  • 语法结构:
    • varchar(n)
  • 参数说明:
    • n:表示指定的长度,取值范围为0~65535。
3)、text

text相当于varchar(65535),它本质上也是一个变长字符串。

4)、enum

实际开发中,有些变量只有几种可能得取值,比如人的性别:男、女。星期的取值:1、2、3、4、5、6、7。
在MySQL中,可以将某个字段定义为enum类型,然后限定该字段在某个范围内取值。
如果enum类型加上not null属性,则其默认值就是枚举列表的第一个元素。如果不加not null属性,则enum类型将允许插入null,而且null为默认值。

3、日期时间

日期时间主要用于表示“日期(年月日)”和”时间(时分秒))“。MySQL的日期时间类型有5种,如下:

类型格式说明举例
dateYYYY-MM-DD日期型2023-01-01
timeHH:MM:SS时间型08:05:30
datetimeYYYY-MM-DD HH:MM:SS日期时间型2023-01-01 08:05:30
yearYYYY年份型2023
timestampYYYYMMDD HHMMSS时间戳型20230101 080530

每个类型都有特定的格式以及取值范围,当指定不合法的值时,系统就会将“0”插入数据库中。

4、二进制

二进制类型适用于存储图像、有格式的文本(如Word、Excel等)、程序文件等数据。MySQL的二进制类型有5种。

类型说明字节
bit0~255
tinyblob二进制类型的短文本0~255
blob二进制类型的普通文本0~65535
mediumblob二进制类型的中文本0~16777215
longblob二进制的长文本0~4294967295

实际开发中,并不推荐在数据库中存储二进制数据,主要是因为二进制数据往往非常大,占用的存储空间过多,这对数据库的性能会有所影响。

三、注释

方式1,适合单行注释
-- 注释内容

方式2,MySQL独有
# 注释内容

方式3,通用的注释方式,可注释多行
/*注释内容*/

/*  
	注释内容
	注释内容
	注释内容
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MeJonKing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值