MySQL命令大全

MySQL命令大全

官网下载地址:link

一、数据库的类型

使用MySQL数据库存储数据时,不同的数据类型决定了 MySQL存储数据方式的不同。为此,MySQL数据库提供了多种数据类型,其中包括整数类型、浮点数类型、定点 数类型、日期和时间类型、字符串类型、二进制…等等数据类型。

1.整数类型

根据数值取值范围的不同MySQL 中的整数类型可分为5种,分别是TINYINT、SMALUNT、MEDIUMINT、INT和 BIGINT。下图列举了 MySQL不同整数类型所对应的字节大小和取值范围而最常用的为INT类型的,

在这里插入图片描述

2.浮点数和定点数

在MySQL数据库中使用浮点数和定点数来存储小数。浮点数的类型有两种:单精度浮点数类型(FLOAT)和双精度浮点数类型(DOUBLE)。而定点数类型只有一种即DECIMAL类型。下图列举了 MySQL中浮点数和定点数类型所对应的字节大小及其取值范围:
在这里插入图片描述
从上图中可以看出:DECIMAL类型的取值范围与DOUBLE类型相同。但是,请注意:DECIMAL类型的有效取值范围是由M和D决定的。其中,M表示的是数据的长 度,D表示的是小数点后的长度。比如,将数据类型为DECIMAL(6,2)的数据6.5243 插人数据库后显示的结果为6.52

3.字符串类型

在MySQL中常用CHAR 和 VARCHAR 表示字符串。两者不同的是:VARCHAR存储可变长度的字符串。
当数据为CHAR(M)类型时,不管插入值的长度是实际是多少它所占用的存储空间都是M个字节;而VARCHAR(M)所对应的数据所占用的字节数为实际长度加1
在这里插入图片描述

4.字符串类型

文本类型用于表示大文本数据,例如,文章内容、评论、详情等,它的类型分为如下4种:
在这里插入图片描述

5.日期与时间类型

MySQL提供的表示日期和时间的数据类型分别是 :YEAR、DATE、TIME、DATETIME 和 TIMESTAMP。下图列举了日期和时间数据类型所对应的字节数、取值范围、日期格式以及零值:
在这里插入图片描述

5.1 YEAR类型

YEAR类型用于表示年份,在MySQL中,可以使用以下三种格式指定YEAR类型 的值。
1、使用4位字符串或数字表示,范围为’1901’—'2155’或1901—2155。例如,输人 ‘2019’或2019插人到数据库中的值均为2019。
2、使用两位字符串表示,范围为’00’—‘99’。其中,‘00’—'69’范围的值会被转换为 2000—2069范围的YEAR值,‘70’—'99’范围的值会被转换为1970—1999范围的YEAR 值。例如,输人’19’插人到数据库中的值为2019。
3、使用两位数字表示,范围为1—99。其中,1—69范围的值会被转换为2001— 2069范围的YEAR值,70—99范围的值会被转换为1970—1999范围的YEAR值。例 如,输人19插入到数据库中的值为2019。
请注意:当使用YEAR类型时,一定要区分’0’和0。因为字符串格式的’0’表示的YEAR值是2000而数字格式的0表示的YEAR值是0000。

5.2 TIME类型

TIME类型用于表示时间值,它的显示形式一般为HH:MM:SS,其中,HH表示小时, MM表示分,SS表示秒。在MySQL中,可以使用以下3种格式指定TIME类型的值。
1、以’D HH:MM:SS’字符串格式表示。其中,D表示日可取0—34之间的值, 插人数据时,小时的值等于(DX24+HH)。例如,输入’2 11:30:50’插人数据库中的日期为59:30:50。
2、以’HHMMSS’字符串格式或者HHMMSS数字格式表示。 例如,输人’115454’或115454,插入数据库中的日期为11:54:54
3、使用CURRENT_TIME或NOW()输人当前系统时间。

5.3 DATETIME类型

DATETIME类型用于表示日期和时间,它的显示形式为’YYYY-MM-DD HH: MM:SS’,其中,YYYY表示年,MM表示月,DD表示日,HH表示小时,MM表示分,SS 表示秒。在MySQL中,可以使用以下4种格式指定DATETIME类型的值。
以’YYYY-MM-DD HH:MM:SS’或者’YYYYMMDDHHMMSS’字符串格式表示的日期和时间,取值范围为’1000-01-01 00:00:00’—‘9999-12-3 23:59:59’。例如,输人’2019-01-22 09:01:23’或 ‘20140122_0_90123’插人数据库中的 DATETIME 值都为 2019-01-22 09:01:23。
1、以’YY-MM-DD HH:MM:SS’或者’YYMMDDHHMMSS’字符串格式表示的日期和时间,其中YY表示年,取值范围为’00’—‘99’。与DATE类型中的YY相同,‘00’— '69’范围的值会被转换为2000—2069范围的值,‘70’—'99’范围的值会被转换为1970—1999范围的值。
2、以YYYYMMDDHHMMSS或者YYMMDDHHMMSS数字格式表示的日期 和时间。例如,插入20190122090123或者190122090123,插人数据库中的DATETIME值都 为 2019-01-22 09:01:23。
3、使用NOW来输人当前系统的日期和时间。

5.4 TIMESTAMP类型

TIMESTAMP类型用于表示日期和时间,它的显示形式与DATETIME相同但取值范围比DATETIME小。在此,介绍几种TIMESTAMP类型与DATATIME类型不同的形式:
1、使用CURRENT_TIMESTAMP输人系统当前日期和时间。
2、输人NULL时系统会输人系统当前日期和时间。
3、无任何输人时系统会输入系统当前日期和时间。

6.二进制类型

在MySQL中常用BLOB存储二进制类型的数据,例如:图片、PDF文档等。BLOB类型分为如下四种:
在这里插入图片描述

二、数据库、数据表的基本操作

1.数据库的基本操作

MySQL安装完成后,要想将数据存储到数据库的表中,首先要创建一个数据库。
创建数据库就是在数据库系统中划分一块空间存储数据,语法如下:

1.1、创建数据库

          create database 数据库名称;

例如:创建一个叫db1的数据库MySQL命令:

(1)、展示数据库中存在的数据库: show databases;
(2)、创建需要创建的数据库: create database 数据库名;
(3)、创建数据库后查看该数据库基本信息: show create database 数据库名;

(2)、删除数据库
1、drop database 数据库名;

2、数据表的基本操作

注意:操作数据标前需要选择要操作的的数据库:

use 数据库名;

2.1、创建数据表: create table 表名(

        字段1 字段类型,
        字段2 字段类型,
       …
       字段n 字段类型

);
示例:创建学生表 MySQL命令:在这里插入图片描述
运行效果展示:
在这里插入图片描述

2.2查看数据表

语法: show tables;
运行效果展示:在这里插入图片描述
示例:查表的基本信息 MySQL命令:show create table 数据表名;
例如:show create table student;
运行效果展示:
在这里插入图片描述
查看表的字段信息 MySQL命令:desc 数据表名;
例如: desc student;
运行效果展示:
在这里插入图片描述

2.3 修改数据表

有时,希望对表中的某些信息进行修改,例如:修改表名、修改字段名、修改字段 数据类型…等等。在MySQL中使用alter table修改数据表
修改表名: alter table 旧表名 rename to 新表名;
例如:alter table student rename to stu;
运行效果展示:
在这里插入图片描述
修改字段名: alter table表名 change 旧属性名 新数据名 新数据类型;
例如: alter table stu change name sname varchar(10);
运行效果展示:
在这里插入图片描述
修改字段数据类型: alter table 旧表名 modify 新属性名 新数据类型;
例如:alter table stu modify sname int;
运行效果展示:在这里插入图片描述
增加字段 : alter table 表名 add 新属性名 新数据类型;
例如: alter table stu add address varchar(50);
运行效果展示:在这里插入图片描述
删除字段 :alter table stu drop 字段;
例如:alter table stu drop address;
运行效果展示:在这里插入图片描述

2.4 删除数据表(drop)

语法: drop table 表名;
示例:删除数据表 : drop table stu;
运行效果展示:在这里插入图片描述

三、数据表的约束

为防止错误的数据被插入到数据表,MySQL中定义了一些维护数据库完整性的规则;这些规则常称为表的约束。常见约束如下:
在这里插入图片描述
以上五种约束条件针对表中字段进行限制从而保证数据表中数据的正确性和唯一性。换句话说,表的约束实际上就是表中数据的限制条件。

1.主键约束

主键约束即primary key用于唯一的标识表中的每一行。被标识为主键的数据在表中是唯一的且其值不能为空。这点类似于我们每个人都有一个身份证号,并且这个身份证号是唯一的。
主键约束基本语法:在这里插入图片描述

设置主键约束(primary key)的第一种方式:

例如:在这里插入图片描述
运行效果展示:
在这里插入图片描述在这里插入图片描述

设置主键约束(primary key)的第二种方式:

例如:create table student01(
id int,
name varchar(20),
primary key(id)
);

运行效果展示:在这里插入图片描述

2.非空约束

非空约束即 NOT NULL指的是字段的值不能为空,基本的语法格式如下所示: 在这里插入图片描述
例如: create table student02(
id int,
name varchar(20) not null
);
运行效果展示:在这里插入图片描述

3.默认值约束

默认值约束即DEFAULT用于给数据表中的字段指定默认值,即当在表中插入一条新记录时若未给该字段赋值,那么,数据库系统会自动为这个字段插人默认值;其基本的语法格式如下所示:
在这里插入图片描述
例如:在这里插入图片描述

运行效果展示:在这里插入图片描述

4.唯一性约束

唯一性约束即UNIQUE用于保证数据表中字段的唯一性,即表中字段的值不能重复出现,其基本的语法格式如下所示:在这里插入图片描述
例如:在这里插入图片描述
在这里插入图片描述

5.外键约束

外键约束即FOREIGN KEY常用于多张表之间的(关系)约束。基本语法如下:在这里插入图片描述
示例:创建一个学生表 MySQL命令:在这里插入图片描述
示例:创建一个班级表 MySQL命令:在这里插入图片描述
示例:学生表作为主表,班级表作为副表设置外键, MySQL命令:在这里插入图片描述
运行结果展示:在这里插入图片描述

5.1 数据一致性概念

大家知道:建立外键是为了保证数据的完整和统一性。但是,如果主表中的数据被删除或修改从表中对应的数据该怎么办呢?很明显,从表中对应的数据也应该被删除,否则数据库中会存在很多无意义的垃圾数据。

5.2 删除外键

语法如下:
在这里插入图片描述
示例:删除外键在这里插入图片描述
运行过程展示:
在这里插入图片描述

5.3 关于外键约束需要注意的细节

1、从表里的外键通常为主表的主键
2、从表里外键的数据类型必须与主表中主键的数据类型一致
3、主表发生变化时应注意主表与从表的数据一致性问题

四、数据表插入数据(insert into)

若要在插入数据化查询数据表内的内容: select * from 数据表名; ( * 代表表内全部内容)

在MySQL通过INSERT语句向数据表中插入数据。在此,我们先准备一张学生表,代码如下:在这里插入图片描述

1. 为表中所有字段插入数据

每个字段与其值是严格一一对应的。也就是说:每个值、值的顺序、值的类型必须与对应的字段相匹配。但是,各字段也无须与其在表中定义的顺序一致,它们只要与 VALUES中值的顺序一致即可。
语法如下:在这里插入图片描述
示例:向学生表中插入一条学生信息 MySQL命令:在这里插入图片描述

2. 为表中指定字段插入数据

语法如下:在这里插入图片描述
在该方式中:(字段名1,字段名2,…)是可选的,它用于指定插人的字段名;(值 1,值 2,…),(值 1,值 2,…)表示要插人的记录,该记录可有多条并且每条记录之间用逗号隔开。
示例:向学生表中插入多条学生信息 MySQL命令:
在这里插入图片描述

运行效果展示:
在这里插入图片描述

五、更新数据(update)

更新数据并非插入数据,是在原有数据的基础上将需要变更(更新)的数据进行操作,常见的更新数据方法有以下几种:

1. update基本语法

在这里插入图片描述
在该语法中:字段名1、字段名2…用于指定要更新的字段名称;值1、值 2…用于表示字段的新数据;WHERE 条件表达式 是可选的,它用于指定更新数据需要满足的条件

2. UPDATE更新部分数据

示例:将name为tom的记录的age设置为20并将其gender设置为female MySQL命令:
update student set age=20,gender='female' where name='tom';
运行结果展示:在这里插入图片描述

3. UPDATE更新全部数据

示例:将所有记录的age设置为18 MySQL命令:在这里插入图片描述
运行结果展示:在这里插入图片描述

六、删除数据(delete)

在MySQL通过DELETE语句删除数据表中的数据。在此,我们先准备一张数据表,创建一张数据表再插入数据,代码如下:在这里插入图片描述
运行结果展示:
在这里插入图片描述

1. DELETE基本语法

在该语法中:表名用于指定要执行删除操作的表;[WHERE 条件表达式]为可选参数用于指定删除的条件。在这里插入图片描述

2. DELETE删除部分数据

语句:delete from 表名 where 需要删除的属性=需要删除的属性值
示例:删除age等于14的所有记录 MySQL命令

在这里插入图片描述
运行结果展示:
在这里插入图片描述
在这里插入图片描述

3. DELETE删除全部数据

语句:delete from 表名;
示例:删除student表中的所有记录:在这里插入图片描述
运行结果展示:在这里插入图片描述

4. TRUNCATE和DETELE的区别

truncate和delete都能实现删除表中的所有数据的功能,但两者也是有区别的:
1、delete语句后可跟where子句,可通过指定where子句中的条件表达式只删除满足条件的部分记录;但是,truncate语句只能用于删除表中的所有记录。
2、使用truncate语句删除表中的数据后,再次向表中添加记录时自动增加字段的默认初始值重新由1开始;使用delete语句删除表中所有记录后,再次向表中添加记录时自动增加字段的值为删除时该字段的最大值加1
3、DELETE语句是DML语句,TRUNCATE语句通常被认为是DDL语句

七、查询数据

查询是针对表中存储的数据进行“”筛选“”,把符合条件的行和列组织起来,形成一个类似表的结构,也就是查询的结果

1.查询概述

简单查询即不含where的select语句。在此,我们讲解简单查询中最常用的两种查询:查询所有字段和查询指定字段。
在此,先准备测试数据,代码如下:在这里插入图片描述

运行结果展示:在这里插入图片描述

2.查询所有字段(方法不唯一只是举例)

语法:select * from 表名;
查询所有字段 MySQL命令:在这里插入图片描述
运行结果展示:在这里插入图片描述

3.查询指定字段

语法:select 属性1,属性2 from student;
示例:查询指定字段(sid、sname):
在这里插入图片描述
运行结果展示:在这里插入图片描述

4.查询指定记录

语法:select * from 表名 where 属性=“属性值”;
示例:查询student表中age=17的值
运行结果展示:在这里插入图片描述

4.1 and,or多条件查询

1.and 用来连接多个条件,实现多条件查询

语法: select * from student where 属性1=“属性值1” and 属性2=“属性值2”

2.or 也用来连接多个条件,实现多条件查询,但是与and不同,他表示只要满足这几个条件中的一个,记录就会被查询出来

语法: select * from student where 属性1=“属性值1” or 属性2=“属性值2”

4.2 between…and范围查询

1.between…and : 可以判断某个字段的值是否在指定的范围内

语法:select * from 表名 where 属性 between “属性数值1” and “属性值2”;
示例:查询studen表中age在15到17之间的数据
在这里插入图片描述

4.3关键字查询

1.in关键字: 可以判断某个字段的值是否在指定的集合中,如果字段的值恰好在指定的集合中,则将字段所在的记录将査询出来。

语法:select * from 表名 where 属性 in (“查询的属性值1”,“查询的属性值2”)
示例:查询student表中sname中"wang"和"tywd"学生的信息
在这里插入图片描述
运行结果展示:
在这里插入图片描述

4.4模糊查询

like关键字: like关键字可以进行模糊查询,一般用来匹配字符串

4.4.1普通字符串

语法:select * from student where 属性 like “属性名”;
示例: 查询sname中与tywd匹配的学生信息 MySQL命令:
在这里插入图片描述

4.4.2含有%通配的字符串

%用于匹配任意长度的字符串。例如,字符串“a%”匹配以字符a开始任意长度的字符串

(1) %在后:查询以某某字段开头的数据信息

语法:select * from 表名 where 属性 like ‘字段%’;
示例:查询student表中sname以li字段开头的数据信息:
在这里插入图片描述
运行结果展示:
在这里插入图片描述

(2) %在前:查询以某某字段结尾的数据信息

语法: select * from 表名 where 属性 like ‘%字段’;
示例:查询student表中sname以"g"字段结尾的数据信息:
在这里插入图片描述

(3)查询学生姓名包含某某字段的记录:

语法: select * from 表名 where 属性 like ‘%字段%’;
示例:查询student表中sname包含有"s"字段结尾的数据信息:
运行结果展示:在这里插入图片描述

4.5含有_通配的字符串

下划线通配符只匹配单个字符,如果要匹配多个字符,需要连续使用多个下划线通配符。例如,字符串“ab_”匹配以字符串“ab”开始长度为3的字符串,如abc、abp等等;字符串“a__d”匹配在字符“a”和“d”之间包含两个字符的字符串,如"abcd"、"atud"等等。
一个下划线(_)代表一个字符长度
示例: 查询学生姓名以zx开头且长度为4的记录:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值