网站首页 > 知识剖析 正文
- SQL通用语法
- SQL语句可以单行或多行书写,以分号(“;”)结尾。
- SQL语句可以使用空格或缩进增强可读性。
- MySQL数据库的SQL语句不区分大小写(建议关键字大写)。
- 注释
- 单行注释:
- -- 内容# 内容(MySQL特有)
- 多行注释:
- /* 内容 */
- SQL语句分类分类全称说明DDLData Definition Language数据定义语言,用于定于数据库对象(数据库、表、字段)DMLData Manipulation Language数据操作语言,用来对数据库表中数据进行增加、删除、修改DQLData Query Language数据查询语言,用于查询数据库表中的记录DCLData Control Language数据控制语言,用于创建数据库、操控数据库的访问权限
数据定义语言
- 数据库操作 —— 数据定义(DDL)
- 查询:
- 查询所有数据库:
- show databases;
- 查询当前数据库:
- select database();
- 创建:
- create database [if not exists] 数据库名称 [default charset 字符集] [collate 排序规则];
- (PS:方括号("[]")内的为可选项;字符集推荐使用utf8mb4;)
- (意义:[if not exists]意义为若数据库内已存在该名称的数据库则不执行;)
- 删除:
- drop database [if exists] 数据库名称;
- (PS:方括号("[]")内的为可选项;)
- (意义:[if exists]意义为若数据库存在则执行删除;)
- 使用:
- use 数据库名称;
- 数据库操作 —— 数据定义(DDL)- 查询
- 查询当前数据库所以的表:
- show table;
- 查询表结构:
- desc 表名;
- 查询指定表的建表语句:
- show create table 表名;
- 数数据库操作 —— 数据定义(DDL)- 创建
- <数据库操作(DDL)- 创建 - 数据库:tb_user>
- create table 表名( 字段1 字段1的类型 [comment 字段1注释], 字段2 字段2的类型 [comment 字段2注释], 字段3 字段3的类型 [comment 字段3注释]) [comment 表注释]
- (PS:方括号("[]")内的为可选项;)
- 数据库操作 —— 数据定义(DDL)- 数据类型
- <数据库操作(DDL)- 数据类型 - 案例:08案例.txt>
- MySQL主要数据库类型:
- 数值类型:
- (PS:DOUBLE需要设置精度、标度;)
- (意义:精度意义为数值总长度;标度意义为小数点位数;)
- (案例:[字段名 TINYINT UNSIGNED] 意义为当前使用的TINYINT数据类型使用的是无符号的;)
- 字符串类型:
- (PS:带BLOB的为二进制存储数据类型;CHAR类型若存储没有达到设定的长度则会用空格填充;VARCHARA类型为所占用的长度则为所占用的空间;)
- (案例:[char(10)] 意义为最大长度为10的字符;)
- 日期时间类型:
- 数据库操作 —— 数据定义(DDL)- 修改
- 添加字段:
- alter table 表名 add 字段名 类型(长度) [comment 注释] [约束]
- (PS:方括号("[]")内的为可选项;)
- 修改数据类型:
- alter table 表名 modify 字段名 新数据类型(长度);
- 修改字段名和字段类型:
- alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释] [约束];
- (PS:方括号("[]")内的为可选项;)
- 删除字段:
- alter table 表名 drop 字段名;
- 修改表名:
- alter table 表名 rename to 新表名;
- 数据库操作 —— 数据定义(DDL)- 删除
- 删除表:
- drop table [if exists] 表名;
- (PS:方括号("[]")内的为可选项;)
- (意义:[if exists]意义为若数据库存在则执行删除;)
- 删除指定表,并重新创建该表:
- truncate table 表名;
数据操作语言
- 数据库操作 —— 数据操作(DML)- 添加数据
- 给指定字段添加数据:
- insert into 表名(字段1,字段2,字段3) values(值1,值2,值3);
- 给全部字段添加数据:
- insert into 表名 values(值1,值2,值3);
- 批量给指定字段添加数据:
- insert into 表名(字段1,字段2) values(值1,值2),(值1,值2);
- 批量给全部字段添加数据:
- insert into 表名 values(值1,值2),(值1,值2),(值1,值2);
- (PS:添加的数据类型为字符串、日期应该包含在引号('')中;添加的字符串类型大小应该在字段规定的范围内;)
- 数据库操作 —— 数据操作(DML)- 修改数据
- 修改表的数据:
- update 表名 set 字段名1 = 值1,字段名2 = 值2,字段名3 = 值3 [where 条件];
- (PS:方括号("[]")内的为可选项;)
- 数据库操作 —— 数据操作(DML)- 删除数据
- 删除表的数据:
- delete from 表名 [where 条件];
- (PS:方括号("[]")内的为可选项;)
数据查询语言
- 数据库操作 —— 数据查询(DQL)
- 语法:
- 语法:解释:select字段列表from表名列表where条件列表group by分组字段列表having分组后条件列表order by排序字段列表limit分页参数
- 数据库操作 —— 数据查询(DQL)- 基本查询
- 查询多个字段:
- select 字段1,字段2,字段3 from 表名;
- 查询所有字段:
- select * from 表名;
- (PS:在开发中建议不要使用星号“※”;)
- 设置别名:
- select 字段1 as 别名1,字段2 as 别名2 from 表名;
- 去除重复记录:
- select distinct 字段列表 from 表名;
- 数据库操作 —— 数据查询(DQL)- 条件查询(where)
- 语法:
- select 字段列表 from 表名 where 条件列表;
- 条件:
- 比较运算符功能>大于>=大于等于<小于<=小于等于=等于<> 或 !=不等于detween ... and ...在某个范围之内(最小值、最大值)in(...)在in之后的列表中的值,多选一like 占位符模糊匹配(“_”匹配单个字符,“%”匹配任意个字符)is null是null
- 逻辑运算符功能and 或 &&并且(多个条件同时成立)or 或 ||或者(多个条件任意一个成立)not 或 !非、不是
- 数据库操作 —— 数据查询(DQL)- 聚合函数(count、max、min、avg、sum)
- 介绍:
- 将一列数据作为一个整体,进行纵向运算。
- 常见的聚合函数:
- 函数功能count统计数量max最大值min最小值avg平均值sum求和
- 语法:
- select 聚合函数(字段列表) from 表名;
- (PS:null值不参与聚合函数运算;)
- 数据库操作 —— 数据查询(DQL)- 分组查询(group by)
- 语法:
- select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件];
- (PS:方括号("[]")内的为可选项;)
- where与having的区别:
- 执行时间不同:where是分组之前进行过滤(不满足条件的不参与分组),而having是分组之后对结果进行过滤。
- 判断条件不同:where不能对聚合函数进行判断,而having可以。
- 数据库操作 —— 数据查询(DQL)- 排序查询(order by)
- 语法:
- select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2;
- 排序方式:
- ASC:升序排序(默认值)。
- DESC:降序排序。
- (PS:若是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序;)
- 数据库操作 —— 数据查询(DQL)- 分页查询(limit)
- 语法:
- select 字段列表 from 表名 limit 起始索引,查询记录数;
- (PS:起始索引从0开始;起始索引=(查询页面 - 1) * 每页显示记录数;分页查询是数据库的方言(limit是MySQL的);)
- 数据库操作 —— 数据查询(DQL)- 执行顺序
- 执行顺序:
- 执行顺序:语法:解释:4select字段列表1from表名列表2where条件列表3group by分组字段列表5having分组后条件列表5order by排序字段列表6limit分页参数
数据控制语言
- 数据库操作 —— 数据控制(DCL)- 管理用户
- 查询用户:
- use mysql;select * from user;
- 创建用户:
- create user '用户名'@'主机名' identified by '密码';
- 修改用户密码:
- alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';
- 删除用户:
- drop user '用户名'@'主机名';
- (PS:主机名可以使用百分号"%"通配符,来表示任意主机都可以访问;)
- 数据库操作 —— 数据控制(DCL)- 权限控制
- 常用的权限控制:
- 权限:说明;all、all privileges所有权限select查询数据insert插入数据update修改数据delete删除数据alter修改表drop删除数据库、表、视图create创建数据库、表
- 查询权限:
- show grants for '用户名'@'主机名';
- 授予权限:
- grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';
- 撤销权限:
- revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';
- (PS:多个权限之间要使用逗号(",")分隔;)
猜你喜欢
- 2024-11-21 SQL server数据运算
- 2024-11-21 SQL查询与SQL优化「姊妹篇.第四弹」
- 2024-11-21 SQL数据库常用命令
- 2024-11-21 SQL WHERE语句轻松学
- 2024-11-21 做测试不会 SQL?超详细的 SQL 查询语法教程来啦
- 2024-11-21 SQL性能优化技巧,常见优化10经验
- 2024-11-21 MyBatis常用工具类三-使用SqlRunner操作数据库
- 2024-11-21 数据库中sql语句大全
- 2024-11-21 从零开始学SQL数据分析,SQL数据提取与筛选
- 2024-11-21 一文讲懂SQL条件子句WHERE
- 04-29php开发者composer使用看这一篇就够了
- 04-29引用和变量声明在不同语言中的实作
- 04-29PHP 没你想的那么差
- 04-29Ubuntu linux 上的 Nginx 和 Php 安装
- 04-29CentOS下通过yum搭建lnmp(单版本PHP)
- 04-29为什么 PHP8 是个高性能版本
- 04-29PHP8函数包含文件-PHP8知识详解
- 04-29使用无参数函数进行命令执行
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)