广告位联系
返回顶部
分享到

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

Mysql 来源:互联网 作者:佚名 发布时间:2023-01-01 20:00:27 人浏览
摘要

MySQL的启动和连接数据模型 MySQL的启动和停止 1.services.msc 2.命令行启停 启动:net start mysql80 停止:net stop mysql80 (命令行窗口以管理员权限打开,否则无访问系统服务权限) MySQL数据库客户

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).

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

特点:

  • 使用表存储结构,格式统一,便于维护
  • 使用SQL语言操作,标准统一,便于操作

 2.数据模型

SQL通用语法及分类

1.SQL通用语法

  • SOL语句可以单行或多行书写书写,以分号结尾
  • SQL语句可以使用空格和缩进来增强程序的可读性
  • MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
  • 注释:
    单行注释:--注释内容  或者   #注释内容(MySQL特有)
    多行注释:/*注释内容*/

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数据库操作

  • show databases;
    显示当前的所有数据库
  • create database [if not exists] 数据库名;
    创建数据库
  • use 数据库名;
    使用/进入当前数据库
  • select database();
    查询当前所在数据库
  • drop database [if exists] 数据库名;
    删除当前数据库

DDL表操作

  • show tables;
    显示当前数据库中的所有表
  • create table 表名(字段 字段类型 [comment '注释'], 字段 字段类型 [comment '注释'] ...) [coomment '注释'] ;
    在当前数据库中新建一张表
  • desc 表名;
    查询当前表的结构
  • show create table 表名;
    显示创建该表时的语句
  • alter table add/modify/change/drop/rename to
    添加字段,修改字段类型,修改字段,删除字段,重命名表
  • drop table 表名;
    删除当前表

(可视化工具 - 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的区别:

  • where是对分组前的数据进行过滤,不满足分组条件的数据不参与分组,而having是对分组之后的数据进行过滤
  • where不能对聚合函数进行判断,having可以

使用上述查询:

DQL - 排序查询

1

2

3

4

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

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

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

//desc   降序排列

DQL - 分页查询

1

2

3

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

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

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

DDL - 语句执行顺序

  • from -- 找到对应的表
  • where -- 根据条件进行筛选
  • group -- 筛选后分组
  • select -- 选出处理后的数据
  • order by -- 进行数据的排序
  • limit -- 数据分页

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 '用户名'@'主机名';


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 : https://blog.csdn.net/weixin_64450588/article/details/127580999
相关文章
  • MySQL不用like+%实现模糊查询

    MySQL不用like+%实现模糊查询
    我们都知道 InnoDB 在模糊查询数据时使用 %xx 会导致索引失效,但有时需求就是如此,类似这样的需求还有很多,例如,搜索引擎需要根基用
  • SQL通用语法以及分类图文介绍
    MySQL的启动和连接数据模型 MySQL的启动和停止 1.services.msc 2.命令行启停 启动:net start mysql80 停止:net stop mysql80 (命令行窗口以管理员权限打
  • mysql开启各种日志的方法
    以下日志开启均在mysql5.7.32进行测试 general_log general_log支持热开启,热关闭。开启general_log会记录所有操作mysql命令,所以会产生大量文件,
  • Mysql备份的几种方法教程
    1. mysqldump mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等
  • 深入了解MySQL中的慢查询
    一、什么是慢查询 什么是MySQL慢查询呢?其实就是查询的SQL语句耗费较长的时间。 具体耗费多久算慢查询呢?这其实因人而异,有些公司慢
  • MySQL中with rollup的用法及说明

    MySQL中with rollup的用法及说明
    MySQL with rollup的用法 当需要对数据库数据进行分类统计的时候,往往会用上groupby进行分组。 而在groupby后面还可以加入withcube和withrollup等关
  • mysql分组统计并求出百分比的方法

    mysql分组统计并求出百分比的方法
    mysql分组统计并求出百分比 1、mysql 分组统计并列出百分比 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 SELECT point_id, pname_cn, play_
  • 30种SQL语句优化的方法总结
    1)对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2)应尽量避免在 where 子句中使用!=或操作符
  • 达梦数据库获取SQL实际执行计划的方法

    达梦数据库获取SQL实际执行计划的方法
    环境说明: 操作系统:银河麒麟V10 数据库:DM8 相关关键字:DM数据库、SQL实际执行计划 一、set autotrace trace disql下执行set autotrace trace开启
  • MySQL数据库约束的介绍

    MySQL数据库约束的介绍
    基本介绍 约束用于确保数据库的数据满足特定的商业规则 在mysql中,约束包括:not null,unique,primary key,foreign key 和check5种 1.primary key(主键
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计