Mysql数据库

1.第一章

1.数据库的优点:(1)数据结构化 (2)实现数据共享 (3)数据独立性高 (4)数据统一管理与控制。

2.数据库(DB)、数据库管理系统(DBMS)、数据库应用系统(DBAS)、数据库系统(DBS)。

3.MySql数据类型:(1)数值类型(2)日期和时间型(3)字符串型

【CHAR类型和VARCHAR类型
基本语法: 列名称 char(L) 或varchar(L)语法说明: L表示字符串的最大长度,即最大字符数(中文与英文字母一样)。实际需要多少存储空间(字节数)取决于所使用的字符集,一个英文字母或常用字符通常占用一个字节,个中文在gbk编码方式占用2个字节、在utf8编码方式占用3个字节的空间。拳char: 存储固定长度的字符串,如果字符串长度不足L,则存储时在右边填充空格补产以达到指定长度L。
拳varchar : 存储可变长度的字符串,长度可以在0到L之间变化,存储时需要额外增加一个或两个字节存储字符串长度,超过255的长度需要额外增加2个字节。拳char和varchar后面如果有空格: char会自动去掉空格后存储,但取值时会把存值后面的空格去除掉;varchar存储时不会去掉空格,取值时后面有空格会保留,但在进行字符串比较时,会去掉空格进行比较
拳相同点:在存储或检索过程中都不进行大小写转换

如果需要存储的字符串的长度跟所有值的平均长度相差不大,适合用char。对于经常改变的值,char优于varhar,原因是固定长度的行不容易产生碎片。对于很短的列,char优于varchar,原因是varchar需要额外开销一个或两个字节存储字符串的长度;如果存储数据长度相差大、不是经常改变、不是很短,则使用varchar类型。】

2. 第二章

2.1数据库的基本操作

1.(1)用SQL语句创建数据库
语句: CREATE DATABASE [IF NOT EXISTS] 数据库名称 [库选项];
【IF NOT EXISTS可选项: 如果数据库不存在,则创建数据库;防止创建的数据库已存在,程序报错 。数据库名称:由字母、数字和下划线等组成的任意字符串。库选项:用于设置此数据居的相关特性,如字符集CHARSET。】

(2)用SQL语句查看数据库
查看MySQL服务器下所有数据库语句: SHOW DATABASES;
查看指定数据库的创建信息
语句: SHOW CREATE DATABASE 数据库名称;

示例:SHOW CREATE DATABASE mydb;

【系统数据库
information_schema: 数据字典  performance schema:  性能字典  mysql:  控制和管理信息】。

(3)用SQL语句选择数据库
语句: USE 数据库名称;

示例: USE mydb;

(4)用SQL语句删除数据库

语句: DROP DATABASE [IF EXISTS] 数据库名称;
(IF EXISTS可选项: 如果数据库存在,则删除数据库;防止删除的数据库不存在,程序会报错)。

2.1数据表的基本操作

1.使用SQL语句创建数据表

语法格式:

CREATE TABLE<表名>

(

  列名1 数据类型[列/行级别约束...],

  列名1 数据类型[列/行级别约束...],

  ...

[行/表级别约束...],

[行/表级别约束...],

...

);

数据表的名称,一般选用数据库的前几个字母或tb_作为前缀。

创建数据表时,要选择数据库,选择数据库可使用语句:

USE<数据库名>; 或语法:<数据库名>,<表名>】 。

2.使用SQL语句查看数据表

格式:SHOW TABLES[LIKE 匹配模式];

【省略可选项,表示查看当前数据库中的所有数据表。

    添加可选项,则按照“匹配模式”查看数据表。

    匹配模式符"%"匹配一个或多个字符,代表任意长度的字符串。

    匹配模式符"_"仅可以匹配一个字符。】

3.查看表结构(字段信息)、查看表的创建语句

语句 1:DESC|DESCRIBE 数据表名;

功能:查看所有字段的信息;

语句2:DESC|DESCRIBE 数据表名 字段名;

功能:查看指定字段的信息

语句:SHOW CREATE TABLE 表名;

功能:查看创建数据表的具体SQL语句,含字符编码。

4.使用SQL语句删除数据表

格式: DROP TABLE [IF EXISTS] 数据表1[,数据表2...];

5.使用SQL语句修改表结构(*)

修改字段:

ALTER TABLE 数据表名 CHANGE [COLUMN] 旧字段 新字段名 字段类型 [字段属性]

                   ALTER TABLE 数据表名 MODIFY [COLUMN] 字段名 新类型 [字段属性];

新增字段: 

#格式1:新增一个字段,并可指定其位置ALTER TABLE 数据表名 ADD [COLUMN] 新字段名 字段类型[FIRST| AFTER 字段名]
#格式2:同时新增多个字段
ALTER TABLE 数据表名 ADD [COLUMN](新字段名1 字段类型1,新字段名2 字段类型2,...);

6.使用SQL语句修改表结构、修改表名(*)

删除字段:ALTER TABLE 数据表名 DROP [COLUMN] 字段名;

修改表名:#格式1   ALTER TABLE 旧表名 RENAME [TO|AS] 新表名;

                  #格式2   RENAME TABLE 旧表名1 TO 新表名1[,表名2 TO 新表名2...];

2.4字符集与校对集

1.为数据表设置字符集示例

使用SQL语句

CREATE TABLE my_charset(

  username VARCHAR(20)

)CHARSET utf8 COLLATE utf8_bin;

2.为字段设置字符集示例

使用SQL语句

CREATE TABLE my_charset(

  username VARCHAR(20)CHARACTER SET utf8 COLLATE utf8_bin

);

3.第三章

3.1数据的插入

1.使用SQL语句插入数据

语句:INSERT [INTO]表名[(字段名1,字段名2,...)]

            VALUES(值1,值2...)[,(值1,值2,...),...];

 2.关于INSERT语句的赋值问题:

(1)(值1,值2....)中的值:可以是常量、变量、函数、表达式,及NULL、0、DEFAULT等;

(2)字符串常量:使用英文单引号'将字符串括起来,用来标识这是一个字符串,如'abc';

(3)日期时间常量:使用英文单引号'将其括起来,如'2021-01-26';

   (4)数值常量:不需要使用任何符号标识,直接书写数字即可,如1000;

   (5)变量、函数、表达式、NULL、0、DEFAULT: 不需要使用任何符号标识,直接书写即可;

   (6)字符串常量是区分大小写的: 如'abc'、'ABC'、'Abc'是不一样的。\

3.关于空、空串、空格串的说明:

NULL: 空、空值,表示值未知、不确定的值;

" :空串,表示空字符串,一个字符都没有;
' ' :空格串,表示含有空格的字符串,有一个或多个空格;

'0' :只有一个数字0的字符串;
0 : 取值为数值0。

3.2数据的更新

1.修改数据:

用SQL语句

格式:UPDATE 表名

            SET 字段名1=值1[,字段名2 =值2,...]

             [WHERE 条件表达式];

2.删除数据:

格式:DELETE FROM 表名 [WHERE 条件表达式];

 清空数据

格式2:(无条件格式)
DELETE FROM 表名;1

格式3:(清空表)
TRUNCATE [TABLE] 表名;

 【二语句的区别:
(1)DELETE语句是DML语句,TRUNCATE语句通常被认为是DDL语句。

(2)DELETE语句后面可以跟WHERE子句,通过指定WHERE子句中的条件表达式只删除满足条件的部分记录,而TRUNCATE语句只能用于删除表中的所有记录。

(3)使用TRUNCATE语句删除表中的数据,再向表中添加记录时,自动增加字段的默认初始值重新由1开始,使用DELETE语句删除表中所有记录,再向表中添加记录时,自动增加字段的值为删除时该字段的最大值加1。

(4)使用DELETE语句时,每删除一条记录都会在日志中记录,而使用TRUNCATE语句时,不会在日志中记录删除的内容,因此TRUNCATE语句的执行效率比DELETE语句高。】

 4.第四章

1.数据完整性分为、实体完整性、参照完整性。

4.1域完整性

2.域完整性:NOT NULL(非空约束)、DEFAULT(默认约束值);

    实体完整性:PERMARY KEY(主键约束-用于唯一标识行)、UNIQUE(唯一约束)、AUTO_INCERMENT(自增约束-由系统实现唯一性);

    参照完整性:FOREIGN KEY(外键约束)。

【约束的创建和管理有三种常用方法:
(1)使用表设计器创建和管理约束;

(2)使用CREATE TABLE语句创建约束;
(3)使用ALTER TABLE语句创建和管理约束】

3.插入记录测试默认值约束:

语句: INSERT [INTO] 表名[(字段名1,字段名2,...)]

          VALUES(值1,值2...)[,(值1,值2,...),....];

  格式1:(简化格式)
  INSERT INTO 表名
  VALUES(值1,值2,...,值n);

格式2:(基本格式)
INSERT INTO 表名(字段名1,字段名2,...)

VALUES(值1,值2,...);

【基本规则:
(1)对应在默认值列插入default,MySQL自动为该列插入预设的默认值。

(2)默认值列可以省略,MySQL自动为该列插入预设的默认值;】

4.插入记录测试默认值约束

语句: INSERT [INTO] 表名[(字段名1,字段名2,...)]

          VALUES(值1,值2...)[(值1,值2,...)....];

格式1:(简化格式)
  INSERT INTO 表名
  VALUES(值1,值2,...,值n);

格式2:(基本格式)
INSERT INTO 表名(字段名1,字段名2,...)

VALUES(值1,值2,...);

【基本规则:
(1)对应在默认值列插入default,MySQL自动为该列插入预设的默认值;

(2)默认值列可以省略,MySQL自动为该列插入预设的默认值;

(3)非空列一定要插入具体值,原则上不能省略! ! !

(4)允许空列可以省略,MySQL自动为该列插入NULL值;

(5)非空叠加默认值列可以省略,MySQL自动为该列插入预设的默认值。】

5.创建非空约束( NOT NULL)

非空约束字段的值不能为NULL。

语法如下:NOT NULL。

6.插入记录测试非空约束

语句: INSERT [INTO] 表名[(字段名1,字段名2,...)]

          VALUES(值1,值2....)[(值1,值2,.),...];

【基本规则:
(1)对应在默认值列插入default,MySQL自动为该列插入预设的默认值;

(2)默认值列可以省略,MySQL自动为该列插入预设的默认值;

(3)非空列一定要插入具体值,原则上不能省略! ! !

(4)允许空列可以省略,MySQL自动为该列插入NULL值;

(5)非空叠加默认值列可以省略,MySQL自动为该列插入预设的默认值。】

4.2实体完整性

1.使用SQL语句创建主键

语法:# 单字段主键
           PRIMARY KEY
           # 单/多字段主键
           PRIMARY KEY(字段名1,字段名2,...)

2.主键列不允许插入重复值,也不允许插入NULL.

3.唯一约束保证数据表中字段的唯一性,即表中字段的值不能重复出现。
(1)UNIQUE 约束列的任意两行不能有相同的值;

(2)在一个表上允许创建多个 UNIQUE 约束;
(3)允许插入多个NULL;
(4)可在一个或者多个列上定义。

4.使用SQL语句创建唯一约束

语法:# 单字段唯一键
            UNIQUE
            # 单/多字段唯一键
            UNIQUE(字段名1,字段名2,...)

5.PRIMARY KEY 和 UNIQUE 约束的区别

(1)表中只能有一个PRIMARY KEY(主键),但UNIQUE(唯一键)可以有多个。

(2)PRIMARY KEY的各个列必须声明为 NOT NULL;而UNIQUE的各个列可以声明为 NULL 值,且可以接受多个NULL 值。

(3)定义主键时自动创建PRIMARY聚族索(CLUSTERED,索引名 PRIMARY,不可更改);定义唯一键时自动创建UNIQUE非聚集索引(NO CLUSTERED,索引名默认为字段名,可更改)。

6.自增约束(AUTO INCREMENT)

在数据表中,若想为表中插入的新记录自动生成唯一的ID,可以使用
AUTO INCREMENT来实现。

语法:AUTO INCREMENT

7.插入记录测试自增约束
语句: INSERT[INTO] 表名[(字段名1,字段名2,...)]

          VALUES(值1,值2....)[(值1,值2...)....];

4.3参照完整性

1.使用SQL语句创建外键

#表级约束
FOREIGN KEY(外键列名) REFERENCES 主表名(被引用列名)

2.外键功能

阻止执行:
(1)从表插入新行,其外键值不是主表的主键值便阻止插入;

(2)从表修改外键值,新值不是主表的主键值便阻止修改;
(3)主表删除行,其主键值在从表里存在便阻止删除(要想删除,必须先删除从表的相关行);

(4)主表修改主键值,旧值在从表里存在便阻止修改(要想修改,必须先删除从表的相关行)。
级联执行:
(1)主表删除行,连带从表的相关行一起删除

(2)主表修改主键值,连带从表相关行的外键值一起修改

3.数据表之间的三种关联关系:多对一、一对一。[在开发中,最常见的关联关系就是多对一(一对多)关系]

5.第五章

5.1基础查询

SELECT完整语句格式:

主语句
SELECT [DISTINCT] *{字段名1,字段名2,字段名3,...}FROM 表名

子语句
[WHERE 条件表达式1]
[GROUP BY 字段名 [HAVING 条件表达式2]]
[ORDER BY 字段名[ASCIDESC]]
[LIMIT [OFFSET,] 记录数];

5.2条件查询

SELECT完整语句格式:

主语句
SELECT [DISTINCT] *|{字段名1,字段名2,字段名3,...}FROM 表名

子语句

[WHERE 条件表达式1]

[GROUP BY 字段名 [HAVING 条件表达式2]]
[ORDER BY 字段名[ASCIDESC]]
[LIMIT [OFFSET,] 记录数];

(1)比较条件的组合使用:

运算符     描述
AND          逻辑与,操作数全部为真,则结果为1,否则为0
OR            逻辑或,操作数中只要有一个为真,则结果为1,否则为0
NOT          逻辑非,操作数为0,则结果为1,操作数为1,则结果为0

(2)BETWEEN关键字

运算符                                描述

BETWEEN...AND..            在指定的闭区间范围内
NOT BETWEEN...AND...   不在指定的闭区间范围内
(3)IN(关键字

函数名           描述
IN()                 在给定的集合内
NOT IN()        不在给定的集合内
(4)LIKE关键字

运算符                              示例
LIKE 匹配模式                 获取匹配到的数据(用于模糊匹配)
NOT LIKE只匹配模式      获取匹配不到的数据
(5)IS NULL关键字

运算符                示例
IS NULL             比较一个数据是否是NULL
IS NOT NULL    比较一个数据是否不是NULL


5.3高级查询

1.SELECT完整语句格式:

主语句
SELECT [DISTINCT] *{字段名1,字段名2,字段名3,......}
FROM 表名
子语句

[WHERE 条件表达式1]
[GROUP BY 字段名 [HAVING 条件表达式2]]
[ORDER BY 字段名[ASC|DESC]]
[LIMIT [OFFSET,] 记录数];

2.DISTINCT关键字

语法:DISTINCT 字段名1[,字段名2]...

实际应用中,出于对数据的分析需求,有时需要去除查询记录中重复的数据可使用DISTINCT(去重复值子句)去除重复记录(消除重复行,只保留一条)。

3.ORDER BY子句

在项目开发时,为了使查询的数据结果满足用户的要求,通常使用ORDER BY(排序子句)对查询出的数据进行上升或下降的排序。MySQL提供了两种排序的方式,分别为单字段排序和多字段排序。单字段排序 (单重排序)。

语法: ORDER BY 字段名[ASC|DESC]

多字段排序(多重排序)

语法:ORDER BY 字段名1[ASC| DESC][ 字段名2 [ASC| DESC]]...

说明: 多字段排序首先按照第一字段值排序,当第一字段的值相同时,再按照第二字段值进行排序,依次类推。

4.LIMIT关键字

关于记录数的限量问题:对于一次性查询出的大量记录,不仅不便于阅读查看,还会浪费系统效率。MySQL中提供了一个关键字LIMIT(限量子句),可以限定记录的数量,也可以指定查询从哪一条记录开始(通常用于分页)。

语法: LIMIT [偏移量,] 记录数

5.常用聚合函数

函数                      描述
COUNT(字段名)    返回参数字段的数量,参数可以使用*,即COUNT(*)
SUM(字段名)         返回参数字段之和
AVG(字段名)          返回参数字段的平均值
MAX(字段名)          返回参数字段的最大值
MIN(字段名)           返回参数字段的最小值

5.4分组查询

1.SELECT完整语句格式:

主语句
SELECT [DISTINCT] *{字段名1,字段名2,字段名3,......}
FROM 表名
子语句
[WHERE 条件表达式1]
[GROUP BY 字段名 [HAVING 条件表达式2]]

[ORDER BY 字段名 [ASCIDESC]]

[LIMIT [OFFSET,] 记录数];

2.分组统计:在应用中,通常需要对数据按照某个或多个字段进行分组统计

语法: GROUP BY 字段名

3.多字段分组统计: 按某个字段进行分组后,对已经分组的数据进行再次分组的操作。
语法: GROUP BY 字段名1,字段名2...

4.分组排序:为分组字段进行升序或降序排序,默认升序排序

语法: GROUP BY 字段名[ASC| DESC]

5.HAVING子句

分组筛选:对查询的数据分组时,可以利用HAVING子句对分组筛选。
语法如下:
SELECT 查询列表FROM 数据表名
[WHERE条件表达式]
GROUP BY 字段名[ASC| DESC][,...]
HAVING 条件表达式

;

6.HAVING子句与WHERE的区别
WHERE子句是在分组前对数据进行筛选,条件不可以使用聚合函数。

HAVING子句对分组统计后的结果进行筛选,条件使用聚合函数。

6.第六章

6.1子查询

多表查询的三种常见方式
1.连接查询: 常用于查询字段来自于多张表

2.子查询: SQL语句中嵌套select语句,又称嵌套查询

3.联合查询: 将多个查询结果合并成一个结果集,也称合并结果集。

6.1连接查询

(1)内连接查询语法                                            
隐式的等值连接                                              显式的等值连接
SELECT 查询列表                                          SELECT 查询列表
FROM 表1,表2                                                FROM 表1 [INNER]JOIN 表2
WHERE 表2.公共列=表1.公共列                     ON 表2.公共列=表1.公共列:

(2)使用表的别名:
语法1: 表名 AS 别名
语法2: 表名 别名

(3)外连接查询语法

左外连接
语法: 左表 LEFT [OUTER] JOIN ON 右表
说明: 左表(主表)的所有数据均显示,右表(辅表)匹配内容显示无匹配内容使用NULL填充

右外连接
语法: 左表 RIGHT [OUTER]JOIN ON 右表
说明: 右表(主表)的所有数据均显示,左表(辅表)匹配内容显示无匹配内容使用NULL填充

(4)交叉连接

交叉连接后的记录数=表1记录数*表2记录数 (笛卡尔积)

6.2子查询

1.子查询: SQL语句中嵌套SELECT语句,又称嵌套查询
可使用子查询的语句: SELECT、DELETE、UPDATE、INSERT、CREATE TABLE

SELECT嵌套: SELECT语句嵌套SELECT语句,首先会执行内层查询(子查询),然后将返回的结果作为外层查询(主查询)的过滤(筛选)条件或数据源。

(1) 子查询出现的位置: where后、from后

where子查询:子查询作为查询条件

from子查询:子查询作为表
注意:通常情况下,where子查询的语句均可采用连接查询语句

(2) 根据子查询的返回结果不同,可分为:标量子查询、列子查询、行子查询、表子查询。

 2.where子查询常见语法
(1)标量子查询:子查询返回的结果是单个值(数字、字符串、日期等),即一行一列。

语法:SELECT主查询 WHERE 字段名=(标量子查询)

#常用操作符: = !=(<><=较运算符

(2)列子查询: 子查询返回的结果为一列(可以是多行),即一列多行。

语法: SELECT主查询 WHERE 字段名 in(列子查询)

#常用操作符: IN、NOT IN、ANY、SOME、ALL

(3)行子查询*:子查询返回的结果是一行(可以是多列),即一行多列。

语法: SELECT主查询 WHERE(字段名1,字段名2....)=(行子查询)

#常用操作符: =、<>、IN、NOT IN

(4)表子查询*:子查询返回的结果是多行多列

语法: SELECT主查询 WHERE(指定字段名1,指定字段名2,...) in(表子查询)

#常用操作符: IN

(5)from子查询
FROM子查询:子查询的返回结果用于FROM数据源,它是一个符合二维表结构的数据,可以是一行一列、一列多行、一行多列或多行多列。

语法: SELECT 输出项 FROM (SELECT子查询)[AS] 别名

说明: 当FROM后数据源是子查询时必须为其设置别名,同时也是为了将查询结果作为一个表使用时,可以进行条件判断、分组、排序以及限量等操作。

6.3 合并结果集

联合查询:在保证多个SELECT语句的查询字段数相同的情况下,把多次查询的结果合并起来,形成一个新的查询结果集。
方法: union|union all
说明: union all会将全部的数据直接合并在一起,union会对合并之后的数据去重

语法:
SELECT 查询语句1

UNION [ALL]

SELECT 查询语句2;

6.4将查询结果存入新表

将查询结果存入新表
可以在查询的基础上创建新表,新表的行和列是来自查询结果,新表可以是基本表(永久表),也可以是临时表 [TEMPORARY](仅驻留内存)。

语法如下:

CREATE [TEMPORARY] TABLE 新表名

SELECT查询语句;

7.第七章

7.1视图

1.创建视图的基本语法

CREATE VIEW[数据库名.]视图名
AS
SELECT语句
[WITH CHECK OPTION];

2.查看视图三种语法
语法1: DESCRIBE 视图名;或DESC 视图名;
功能:查看视图的字段信息
示例: DESC v_book_1;
语法2: SHOW TABLE STATUS LIKE '视图名'
功能:查看视图的基本信息。
示例: SHOW TABLE STATUS LIKE'v_book_1;
语法3:SHOW CREATE VIEW 视图名;
功能: 不仅可以查看创建视图时的定义语句,还可以查看视图的字符编码。

示例: SHOW CREATE VIEW v_book_1

3.修改视图的基本语法
ALTER VIEW[数据库名.]视图名
As
SELECT语句
[WITH CHECK OPTION];
说明: WITH CHECK OPTION: 可选,将更新限制在视图范围内,不可超出WHERE设定的条件范围;

4.删除视图
当视图不需要时,可以将其删除,删除视图时,只能删除视图的定义,不会删除数据。
删除视图的基本语法格式如下所示:
DROP VIEW [IF EXISTS][数据库名.]视图名1[,视图名2,...]
示例:DROP VIEW v_book_class;

7.2索引

1.索引: 是一种特殊的数据结构,可以看做是利用MySQL提供的语法将数据表中的某个或某些字段的值与记录的位置建立一个对应的关系,并按照一定的顺序(升序或降序)排序好。

2.MySQL数据检索方式:表扫描、索引查询

3.根据索引实现语法的不同分为五类:普通索引、唯一性索引、主键索引、全文索引、空间索引

分为单列索引和复合索弓:单列索引、复合索引

按索引结构不同分为:聚簇索引、非聚簇索引

按索引实现的功能不同分为:唯一索引、非唯一索引

4.创建索引

使用SQL语句,有三条语句可供选择:
ALTER TABLE语句:用于给已建好的数据表添加索引
CREATEINDEX语句: 用于给已建好的数据表添加索引(除主键索引之外)

CREATE TABLE语句:用于在创建数据表时同时创建索引

5.使用SQL语句删除索引
由于索引会占用一定的磁盘空间,因此,为了避免影响数据库性能,应该及时删除不再使用的索引。删除索引有二种语法格式:

语句1: ALTER TABLE 表名 DROP INDEX 字段名;

语句2: DROPINDEX 索名 ON 表名;
 

8.第八章

8.1函数

1.函数
函数:指的是一段用于完成特定功能的代码。

使用函数时,只需关心函数的参数和返回值,就可以完成一个特定的功能。

MySQL中的函数分类: 内置函数,自定义函数。
内置函数: 也称为系统函数,MySQL提供的函数,无需定义、直接使用即可。

按功能可划分为: 数学函数、数据类型转换函数、字符串函数、日期和时间函数、加密函数、系统信息函数、JSON函数以及其他常用函数。

2.条件函数--用于条件判断
IF(条件表达式,表达式1,表达式2)

【说明:当条件表达式的值为真时,返回表达式1的值,否则返回表达式2的值。】

3.自定义函数的调用|删除
当数据库中存在废弃的自定义函数时,则应删除,语法如下
DROP FUNCTION 函数名;

4.查看自定义函数
(1)查看函数的创建语句
语法: SHOW CREATE FUNCTION 函数名;

示例: SHOW CREATE FUNCTION sayHello;

(2)查看系统中所有或符合要求的自定义函数;

语句: SHOW FUNCTION STATUS [LIKE'匹配模式'];

示例:SHOW FUNCTION STATUS LIKE 'sayHello' ;

  • 19
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值