Mysql
主页 > 数据库 > Mysql >

SQL通用语法以及分类图文介绍

2023-01-01 | 佚名 | 点击:

MySQL的启动和连接&数据模型

MySQL的启动和停止

1.services.msc

2.命令行启停

启动:net start mysql80

停止:net stop mysql80

(命令行窗口以管理员权限打开,否则无访问系统服务权限)

MySQL数据库客户端连接

1.MySQL提供的客户端命令行工具

(先确保mysql正在运行中),否则会出现输入密码命令行窗口闪退的情况

mysql正常运行中,在windows开始菜单下找到:

单击打开命令行窗口后输入MySQL密码,即可进入访问(密码输入错误会闪退命令行窗口):

 2.系统自带的命令行执行指令

(使用此方法必须提前配置系统的path环境变量)

mysql -u root -p[回车] -password

MySQL数据模型

1.在清楚MySQL数据模型前,需要先了解一个概念:关系型数据库(RDBMS).

概念:建立在关系模型基础上,由多张相互连接的二维表组成的数据库

特点:

 2.数据模型

SQL通用语法及分类

1.SQL通用语法

2.SQL分类

分类 全称 说明
DDL Date Definition Language 数据定义语言,用来定义数据库对象(数据库,表,字段,索引)
DML Date Manipulation Language 数据库操作语言,用来对数据库表中的数据进行增删改
DQL Date Query Language 数据库查询语言,用来查询数据库中表的记录
DCL Date Control Language 数据库控制语言,用来创建数据库用户,控制数据库访问权限

Data Definition Language

DDL - 数据库操作

查询数据库

创建数据库

删除数据库

使用数据库

使用上述指令进行整体操作

DDL - 表操作

表操作 - 创建&&查询 创建表

(创建表的最后一条语句不加逗号,整条语句以分号结束)查询当前数据库的所有表

查询表结构

查询特定表的建表语句

使用上述指令进行整体操作

表操作 - 数据类型

MySQL中主要有数值类型、日期类型和字符串类型。

数值-整数类型

类型名称 说明 存储需求 有符号(SIGNED) 无符号(UNSIGNED)
TINYINT 很小的整数 1byte -128 - 127 0 - 255
SMALLINT 小的整数 2byte -32768 - 32767 0 - 65535
MEDIUMINT 中等大小的整数 3byte -8388608 - 8388607 0 - 16777215
INT(INTEGER) 普通大小整数 4byte -2147483648 - 2147483647 0 - 4294967295
BIGINT 大整数 8byte -9223372036854775808 - 9223372036854775807 0 - 18446744073709551615

dd

类型名称 说明 存储需求 有符号(SIGNED) 无符号(UNSIGNED)
TINYINT 很小的整数 1byte -128 - 127 0 - 255
SMALLINT 小的整数 2byte -32768 - 32767 0 - 65535
MEDIUMINT 中等大小的整数 3byte -8388608 - 8388607 0 - 16777215
INT(INTEGER) 普通大小整数 4byte -2147483648 - 2147483647 0 - 4294967295
BIGINT 大整数 8byte -9223372036854775808 - 9223372036854775807 0 - 18446744073709551615

数值-小数类型

 DECIMAL中的M:精度、D:标度

 精度M:整个数的长度

 标度D:小数的位数

日期与时间类型

类型名称 日期格式 日期范围 存储需求
YEAR YYYY 1901-2155 1byte
TIME HH:MM:SS -838:59:59-835:59:59 3byte
DATE YYYY-MM-DD 1000-01-01~9999-12-31 3byte
DATETIME YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00~9999-12-31 23:59:59 8byte
TIMESTAMP YYYY-MM-DD HH:MM:SS 1970-01-01 00:00:01 UTC~2038-01-19 03:14:07 UTC 4byte

字符串类型

文本字符串数据类型
类型名称 说明 存储需求
CHAR(M) 定长文本字符串 M字节,1 - 255
VARCHAR(M) 变长文本字符串 length +1字节
TINYTEXT 非常小的文本字符串 length +1字节
TEXT 小的文本字符串 length +2字节
MEDIUMTEXT 中等大小的文本字符串 length +3字节
LONGTEXT 大的文本字符串 length +4个字节
EUNM 枚举类型,只能有一个枚举字符串值 1或2byte,取决于枚举字符串的树木
SET

一个设置,字符串对象可以有一个或多个set成员

1,2,3,4或8,取决于集合成员的数量
二进制字符串类型
类型名称 说明 存储需求
BIT(M) 位字段类型 (M+7)/8 byte
BINARY(m) 定长二进制字符串 Mbyte
VARBINARY(M) 变长二进制字符串 M+1byte
TINYBLOB(M) 非常小的BLOB

L+1 byte

BOLB(M) 小的BLOB L+2byte
MEDIUMBLOB(M) 中等大小的BLOB L+3byte
LONGBLOB(M) 非常大的BLOB L+4byte

表操作-修改&&删除

添加字段

修改字段数据类型

修改字段名和字段类型

删除表中的字段

修改表名

删除表

格式化表(删除表中的数据并重新创建)

 使用上述指令进行整体操作

DDL总结

DDL数据库操作

DDL表操作

(可视化工具 - dataTrip)????

Data Manipulation Language

DML - 插入数据insert

1

2

insert into 表名(字段,字段...) values(值1,值2...);

-- 表中的字段和值一一对应

1

2

insert into 表名(字段1,字段2...) values(值1,值2...),(值1,值2...);

-- 一次添加多组数据,字段值和值要一一对应

1

2

3

4

5

insert into 表名 values(值1,值2...);

-- 值要和表中的字段一一对应

  

insert into 表名 values(值1,值2...),(值1,值2...);

-- 一次添加多组数据,数据要和表中的字段一一对应

插入数据的注意事项

DML - 更新数据update

1

2

update 表名 set 字段1=值1,字段2=值2...[where 条件];

-- update是针对字段来进行操作的

DML - 删除数据delete

1

2

delete from 表名 [where 条件];

-- delete针对的操作对象是表中的一整条数据

 使用上述SQL命令整体进行表的数据操作:

使用insert向表中添加数据:

使用update更新表中的数据:

使用delete删除表中的数据:

Data Query Language

DQL --- 基础查询

查询多个字段

1

2

3

4

5

select 字段1[as 别名],字段2[as 别名],字段3[as 别名]...from 表名;

//as可以省略

  

select * from 表名;

//返回表中的所有字段中的信息

查询多个字段去重

1

select distinct 字段列表 from 表名; -- 去重查询

DQL --- 条件查询

1

select 字段列表 from 表明 where [条件列表];

使用上述查询进行整体操作:

 DQL - 聚合函数

函数 作用
avg() 返回某列的平均值
sum() 返回某列值的和
count() 返回某列的行数
max() 返回某列的最大值
min() 返回某列的最小值

select 聚合函数(字段列表) from 表名;

使用聚合函数进行查询时,null不参与聚合函数的运算,如果统计表的行数,使用count(*)即可。

使用上述查询进行整体操作:

DQL - 分组查询

select 字段列表 from 表名 [where条件] group by 分组字段名 [having分组后的过滤条件];

where和having的区别:

使用上述查询:

DQL - 排序查询

1

2

3

4

select 字段列表 from 表名 order by 字段名 排序方式,字段名,排序方式;

//当按照第一个字段排序时顺序相同时,就按照第二个字段及其规则进行排序返回

//asc    升序排列(默认值,可以省略)

//desc   降序排列

DQL - 分页查询

1

2

3

select 字段列表 from 表名 limit 起始索引,每页查询的数据条数;

-- 起始索引为: (页数 - 1) * 每页数据的条数

-- 第一页的起始索引可以省略

DDL - 语句执行顺序

DQL总结

1

2

3

4

5

6

7

8

9

10

11

12

13

14

-- 基础查询

select 字段列表 from 表名;

  

-- 条件查询

select 字段列表 form 表名 where 条件;

  

-- 分组查询

select 字段列表 from 表名 [where条件] group by 分组字段名 [having过滤条件];

  

-- 排序查询

select 字段列表 from 表名 [where条件] order by 字段名 排序方式,字段名 排序方式;

  

--分页查询

select 字段列表 from 表名 [where条件] limit 起始索引,每页查询的信息条数;

Data Control Language

DCL - 用户管理

1

2

3

4

5

6

7

8

9

10

11

12

13

14

-- 使用管理员账号进入mysql数据库下

  

-- 查询用户

use mysql;

select * from user;

  

-- 创建用户

create user '用户名'@'主机名' identified by '密码';

  

-- 修改用户密码

alter user '用户名'@'主机名' identified with mysql_native_password by '密码';

  

-- 删除用户

drop user '用户名'@'主机名';

DCL - 权限控制

1

2

3

4

5

6

7

8

-- 查询权限

show grants for '用户名'@'主机名';

  

-- 授予权限

grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';

  

-- 撤销权限

revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';

原文链接:https://blog.csdn.net/weixin_64450588/article/details/127580999
相关文章
最新更新