SQL通用语法以及分类图文详解

目录
  • MySQL的启动和连接&数据模型
  • SQL通用语法及分类
  • Data Definition Language
    • DDL - 数据库操作
    • DDL - 表操作
      • 表操作 - 数据类型
      • 表操作-修改&&删除
    • DDL总结
  • Data Manipulation Language
    • DML - 插入数据insert
    • DML - 更新数据update
    • DML - 删除数据delete
  • Data Query Language
    • DQL --- 基础查询
    • DQL --- 条件查询
    • DQL - 聚合函数
    • DQL - 分组查询
    • DQL - 排序查询
    • DQL - 分页查询
    • DDL - 语句执行顺序
    • DQL总结
  • Data Control Language
    • DCL - 用户管理
    • DCL - 权限控制
  • 总结

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

insert into 表名(字段,字段...) values(值1,值2...);
-- 表中的字段和值一一对应
insert into 表名(字段1,字段2...) values(值1,值2...),(值1,值2...);
-- 一次添加多组数据,字段值和值要一一对应
insert into 表名 values(值1,值2...);
-- 值要和表中的字段一一对应

insert into 表名 values(值1,值2...),(值1,值2...);
-- 一次添加多组数据,数据要和表中的字段一一对应

插入数据的注意事项

  • 插入的数据应当与表中的字段一一对应
  • 插入数据如果类型是字符串或者日期,应当用引号修饰
  • 添加的数据应当在定义的数据类型的范围内

DML - 更新数据update

update 表名 set 字段1=值1,字段2=值2...[where 条件];
-- update是针对字段来进行操作的

DML - 删除数据delete

delete from 表名 [where 条件];
-- delete针对的操作对象是表中的一整条数据 

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

使用insert向表中添加数据:

使用update更新表中的数据:

使用delete删除表中的数据:

Data Query Language

DQL --- 基础查询

查询多个字段

select 字段1[as 别名],字段2[as 别名],字段3[as 别名]...from 表名;
//as可以省略

select * from 表名;
//返回表中的所有字段中的信息

查询多个字段去重

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

DQL --- 条件查询

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 - 排序查询

select 字段列表 from 表名 order by 字段名 排序方式,字段名,排序方式;
//当按照第一个字段排序时顺序相同时,就按照第二个字段及其规则进行排序返回
//asc    升序排列(默认值,可以省略)
//desc   降序排列

DQL - 分页查询

select 字段列表 from 表名 limit 起始索引,每页查询的数据条数;
-- 起始索引为: (页数 - 1) * 每页数据的条数
-- 第一页的起始索引可以省略

DDL - 语句执行顺序

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

DQL总结

-- 基础查询
select 字段列表 from 表名;

-- 条件查询
select 字段列表 form 表名 where 条件;

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

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

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

Data Control Language

DCL - 用户管理

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

-- 查询用户
use mysql;
select * from user;

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

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

-- 删除用户
drop user '用户名'@'主机名';

DCL - 权限控制

-- 查询权限
show grants for '用户名'@'主机名';

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

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

总结

到此这篇关于SQL通用语法以及分类的文章就介绍到这了,更多相关SQL通用语法及分类内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • MySQL SQL 语法参考

    一.资料定义 ddl(data definition language)  资料定语言是指对资料的格式和形态下定义的语言,他是每个资料库要建立时候时首先要面对的,举凡资料分哪些表格关系.表格内的有什麽栏位主键.表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好的. 1.建表格:  create table table_name(  column1 datatype [not null] [not null primary key],  column2 datatype [not nu

  • MySQL 最基本的SQL语法/语句

    DDL-数据定义语言(Create,Alter,Drop,DECLARE) DML-数据操纵语言(Select,Delete,Update,Insert) DCL-数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1.说明:创建数据库 Create DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份数据的 device USE mas

  • MySQL DELETE语法使用详细解析

    以下的文章主要描述的是MySQL DELETE语法的详细解析,首先我们是从单表语法与多表语法的示例开始的,假如你对MySQL DELETE语法的相关内容十分感兴趣的话,你就可以浏览以下的文章对其有个更好的了解. 单表语法: 复制代码 代码如下: DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name   [WHERE where_definition]   [ORDER BY ...]   [LIMIT row_count] 多表语法: 复制代码

  • SQL语法 分隔符理解小结

    两者主要的区别在于:分隔的标识符被括在双引号中(Transact-SQL也支持方括号的使用:[标识符])并且是区分大小写的.单引号只用于字符串的定界.总的来说,引入分隔的标识符是为了对标识符进行规范,否则就会与保留字相同了.特别要提到的是,分隔的标识符能够使你在命名(标识符或变量的名字)的时候,免于使用在将来的SQL标准中可能出现的保留字.另外,分隔的标识符能够包含一些在通常的标识符名称中被视为不合法的字符,如空格. 在SQL SERVER中,双引号的使用由SET 语句中的QUOTED_IDEN

  • SQL语句的基本语法

    SQL语句的基本语法  尹红写的,实在忍不主贴在这里做为查看资料. 因为原文是在word里面写的,段落有点乱. 一.Select语句的完整语法为: Select[ALL|DISTINCT|DISTINCTROW|TOP] {*|talbe.*|[table.]field1[AS alias1][,[table.]field2[AS alias2][,-]]} FROM tableexpression[,-][IN externaldatabase] [Where-] [GROUP BY-] [H

  • MySQL Order By语法介绍

    今天在使用ORDER BY的过程中出现了一点问题,发现之前对ORDER BY理解是错误的. 之前在w3s网站上看到ORDER BY的用法,以为是对选出来的数据按关键字升序或者降序排列,结果今天尝试select数据集数据的时候,发现使用ORDER BY 和ORDER BY DESC得出的查询结果完全不一样,按照自己之前的理解它们应该是结果相同,而内部顺序不一样而已. 问了一下同事,查了一下文档,才恍然大悟.如果我们在执行select语句的时候使用ORDER BY (DESC),那么它首先会对所有记

  • SQL通用语法以及分类图文详解

    目录 MySQL的启动和连接&数据模型 SQL通用语法及分类 Data Definition Language DDL - 数据库操作 DDL - 表操作 表操作 - 数据类型 表操作-修改&&删除 DDL总结 Data Manipulation Language DML - 插入数据insert DML - 更新数据update DML - 删除数据delete Data Query Language DQL --- 基础查询 DQL --- 条件查询 DQL - 聚合函数 DQ

  • Microsoft Sql server2005的安装步骤图文详解及常见问题解决方案

    一:安装sql server 2005过程中出现如下问题:"选择的功能中没有任何功能可以安装或升级": 解决方案:Microsoft SQL Server 2005→配置工具→SQL配置管理器→SQL Server 2005服务→右边的两个服务启动SQL Server FullTest Search() 和服务SQl Sever(计算机名) 二:无法将数CLSID写入\Software\Classes\PROTOCOLS\Handler\ms-help. 解决办法:退出电脑安全软件 三

  • SQL SERVER 2000安装教程图文详解

    注意:Windows XP不能装企业版.win2000\win2003服务器安装企业版一.硬件和操作系统要求 下表说明安装 Microsoft SQL Server 2000 或 SQL Server 客户端管理工具和库的硬件要求. 硬件 最低要求计算机 Pentium 166 MHz 或更高. 内存 (RAM)至少 64 MB,建议 128 MB 或更多.根据笔者的经验,内存容量可以和数据容量保持1:1的比例,这样可以更好的发挥其效能.硬盘空间需要约500MB的程序空间,以及预留500M的数据

  • SQL Server 2016 Alwayson新增功能图文详解

    概述 SQLServer2016发布版本到现在已有一年多的时间了,目前最新的稳定版本是SP1版本.接下来就开看看2016在Alwyson上做了哪些改进,记得之前我在写2014Alwayson的时候提到过几个需要改进的问题在2016上已经做了改进. 一.自动故障转移副本数量 在2016之前的版本自动故障转移副本最多只能配置2个副本,在2016上变成了3个. 说明:自动故障转移增加到三个副本影响并不是很大不是非常的重要,多增加一个故障转移副本也意味着你的作业也需要多维护一个副本.重要程度(一般).

  • vue组件三大核心概念图文详解

    前言 本文主要介绍属性.事件和插槽这三个vue基础概念.使用方法及其容易被忽略的一些重要细节.如果你阅读别人写的组件,也可以从这三个部分展开,它们可以帮助你快速了解一个组件的所有功能. 本文的代码请猛戳 github博客 ,纸上得来终觉浅,大家动手多敲敲代码! 一.属性 1.自定义属性props prop 定义了这个组件有哪些可配置的属性,组件的核心功能也都是它来确定的.写通用组件时,props 最好用对象的写法,这样可以针对每个属性设置类型.默认值或自定义校验属性的值,这点在组件开发中很重要,

  • MySQL与sqlyog安装教程图文详解

    1. MySQL1.1 MySQL安装 mysql-5.5.27-winx64下载 (1)欢迎安装 (2)协议接受 (3)安装模式选择 Typical:表示一般常用的组件都会被安装,默认情况下安装到C:\Program Files\MySQL\MySQL Server 5.5\下. Complete:表示会安装所有的组件.此套件会占用比较大的磁盘空间. Custom:表示用户可以选择要安装的组件,可以更改默认按照的路径.这种按照类型最灵活,适用于高级用户. (4)选择安装组件与路径选择 (5)安

  • python2利用wxpython生成投影界面工具的图文详解

    本投影界面工具的功能: 准备好.prj投影文件,将输入文件夹内的WGS84经纬度坐标shp文件,投影为平面文件,成果自动命名为prj_***并新建在输入文件夹同一路径下. 下一步目标: 利用pyinstaller或其他打包库生成exe文件,目前停滞在python2语法.arcpy打包出错相关问题上. 参考文献: <Using Py2exe with Arcpy- It can be done easily!> <如何使用py2exe打包arcpy脚本?> GUI界面示意图 投影文件

  • 一款高颜值且免费的 SQL 开发工具之Beekeeper Studio详解

    目录 Beekeeper Studio 简介 Beekeeper Studio 安装 Beekeeper Studio 使用教程 连接数据库 文件关联 SQL 编辑器 表格浏览器 快捷键 SQLTools 工具 今天给大家介绍一款简单易用而且美观的免费 SQL 客户端:Beekeeper Studio. Beekeeper Studio 简介 Beekeeper Studio 是一款免费开源的 SQL 开发和数据库管理工具,具有美观高效.简单易用的特点.Beekeeper Studio 基于 V

  • mysql语法之DQL操作详解

    目录 简单查询 运算符查询 排序查询 聚合查询 分组查询 分页查询 一张表查询结果插入到另一张表 SQL语句分析 DQL小练习1 DQL小练习2 正则表达式 总结 DQL(Data Query Language),数据查询语言,主要是用来查询数据的,这也是SQL中最重要的部分! 简单查询 #DQL操作之基本查询 #创建数据库 CREATE DATABASE IF NOT EXISTS mydb2; #使用数据库 USE mydb2; #创建表 CREATE TABLE IF NOT EXISTS

  • 通达OA 使用Ajax和工作流插件实现根据人力资源系统数据增加OA账号(图文详解)

    本次小飞鱼开发的程序主要解决某下属公司在人力系统中增加账号不能马上审批完毕的问题,可以通过这个流程审批后由插件在后台判断自动增加OA账号,增加机制与hr与OA系统同步相同. 只进行增加操作,没有修改.删除的操作.原有已经进行了两个系统的数据自动同步开发,因此这次的开发属于一个补充的内容,仅在此提供一个应用的思路和开发过程的探讨. 前端发起人申请时填写hr系统中已经分配的工号,即可对应查询出其他相关数据.为了避免查出数据后对工号修改,增加一个确认工号输入框.其他信息由Ajax自动获取为只读形式.这

随机推荐