0


SQL基础语句

DDL(数据定义语言)

  • 查询- 查询所有数据库:show databases;- 查询当前数据库:select database();- 查询当前数据库所有表:show tables;- 查询表结构:desc 表名;- 查询建表语句:show create table 表名;
  • 使用- 使用数据库:use 数据库名;
  • 创建- 创建数据库:create database [if not exists] 数据库名;- 创建表操作createtable 表名( 字段1 字段类型 [约束][comment 字段1注释],... 字段n 字段类型 [约束][comment 字段2注释])[comment 表注释];- 约束- 概念:约束是作用域表中字段上的规则,用于限制存储在表中的数据。- 目的:保证数据库中数据的正确性、有效性和完成性约束描述关键字非空约束限制该字段值不能nullnot null唯一约束保证字段的所有数据都是唯一、不重复的unique主键约束主键是一行数据的唯一标识,要求非空且唯一primary key(自动增长)前提:必须是主键,自动增长auto_increment默认约束保存数据时,如果未指定该字段值,采用默认值default外键约束让两张表的数据建立连接,保证数据的一致性和完整性foreign key- 数据类型
  • 删除- 删除数据库:dorp database [if exists] 数据库名;- 删除表:drop table [if exists] 表名;
  • 修改- 添加字段:alter table 表名 add 字段名 类型(长度) [comment 注释] [约束];- 修改字段类型:alter table 表名 modify 字段名 新数据类型(长度)- 修改字段名或字段类型:alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释] [约束];- 删除字段:alter table 表名 drop column 字段名;- 修改表名:rename table 表名 to 新表名;

***注意事项:上述语句中的database,也可以替换成schema。如:

create schema db01;

(databases不可以这样)***

DML(数据操作语言)

  • insert语法- 指定字段添加数据:insert into 表名 (字段名1,字段名2) values (值1, 值2);- 全部字段添加数据:insert into 表名 values (值1, 值2, ...);- 批量添加数据(指定字段):insert into 表名 (字段名1, 字段名2) values (值1, 值2), (值1, 值2);- 批量添加数据(全部字段):insert into 表名 values (值1, 值2, ...), (值1, 值2, ...);注意事项:1. 插入数据时,指定的字段顺序需要与值的顺序是一一对应的。2. 字符串和日期型数据应该包含在引号中。3. 插入的数据大小,应该在字段规定的范围内。
  • update语法- 修改数据:update 表名 set 字段名1 = 值1, 字段名2 = 值2, ... [where 条件]; 注意事项:修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据。
  • delete语法- 删除数据:delete from 表名 [where 条件];注意事项:1. DELETE语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据。2. DELETE语句不能删除某一个字段的值(如果要操作,可以使用UPDATE,将该字段的值置为NULL)。

DQL(数据查询语言)

  • 基本查询- 查询多个字段:select 字段1, 字段2, 字段3 from 表名;- 查询所有字段(通配符):select * from 表名;- 设置别名:select 字段1 [as 别名1], 字段2 [as 别名2] from表名;(as关键字可以省略)- 去除重复记录:select distinct 字段列表 from 表名;
  • 条件查询(where)- 语法:select 字段列表 from 表名 where 条件列表;- 比较运算符比较运算符功能>大于>=大于等于<小于<=小于等于=等于<> 或 !=不等于between … and …在某个范围之内(含最小、最大值)in( … )在in之后的列表中的值,多选一like 占位符模糊匹配(_匹配单个字符,%匹配任意个字符)is null是null- 逻辑运算符逻辑运算符功能and 或者 &&并且(多个条件同时成立)or 或者 ||或者(多个条件任意一个成立)not 或 !非,不是
  • 分组查询(group by)- 聚合函数- 介绍:将一列数据作为一个整数,进行纵向计算。- 语法:select 聚合函数(字段列表) from 表名;函数功能count统计数量max最大值min最小值avg平均值sum求和- 注意事项 - null值不参与所有聚合函数运算。- 统计数量可以使用:count() count(字段) count(常量),推荐使用count()- 分组查询- 语法:select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤的条件];- where与having区别 1. 执行时机不同:where是分组之前进行过滤,不满足where条件,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。2. 判断条件不同:where不能对聚合函数进行判断,而having可以。- 注意事项 - 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。- 执行顺序:where > 聚合函数 > having
  • 排序查询(order by)- 条件查询:select 字段列表 from 表名 [where 条件列表] [group by 分组字段] order by 字段1 排序方式, 字段2 排序方式;- 排序方式:- ASC:升序(默认值)- DESC:降序- 注意事项如果是多个字段排序,当第一个字段值相同时,才会根据第二个字段进行排序。
  • 分页查询(limit)- 语法:select 字段列表 from 表名 limit 起始索引,查询记录数;- 注意事项 - 其实索引从0开始, 起始索引 = ( 页码 − 1 ) ∗ 每页展示记录数 起始索引 = (页码 - 1) * 每页展示记录数 起始索引=(页码−1)∗每页展示记录数- 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT。- 如果查询的是第一页数据,起始索引可以省略,直接简写为limit n。
  • 案例设计- 根据需求,完成员工性别信息的统计select if(gender = '1' ,'男性员工', '女性员工') as 性别, count(*) from tb_emp group by gender;- 根据需求,完成员工职位信息的统计select (case job when 1 then '班主任' when 2 then '讲师' when 3 then '学工主管' when 4 then '教研主管' else '未分配职位' end) as 职位, count(*) from tb_emp group by jog; - 流程控制函数- if(表达式,tvalue,fvalue):当表达式为true时,取值tvalue;当表达式为false时,取值fvalue- case expr when value1 then result1 [when value2 then value2 ...] [else result] end
标签: sql oracle 数据库

本文转载自: https://blog.csdn.net/weixin_45887097/article/details/142066868
版权归原作者 今心上 所有, 如有侵权,请联系我们删除。

“SQL基础语句”的评论:

还没有评论