玖叶教程网

前端编程开发入门

SQL的语法(sql的语法结构)

  • 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:多个权限之间要使用逗号(",")分隔;)


发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言