入门SQL语法实现数据库,表,数据的增删查改

🍑SQL

  • DDL :操作数据库,表
  • DML :对表中数据进行增删改
  • DQL :对表中数据进行查询
  • DCL :对数据库进行权限访问

🍃SQL中数据类型

  • 数值:整数,小数
    • double(5,2) 表示这个小数一共五位,小数点后有两位
  • 日期:data ’ - - - ’ 也是用单引号和 - 共同表示
  • 字符串 用 ’ ’ 单引号表示

在这里插入图片描述

🍃DDL----操作数据库

  • 查询: Show databases;
  • 创建:
    1. Creat databases 数据库名称;
    2. Creat databases if not exists 数据库名称;
  • 删除
    1. Drop databases 数据库名称;
    2. Drop databases if exists 数据库名称;
  • 使用数据库
    • 查看当前使用的数据库
      • Select database();
    • 使用数据库
      • use 数据库名称;

🍃DDL–操作表

  • 查询表(retrieve)

    1. 查询当前数据库下所有表名称;show tables;
    2. 查询表结构:desc 表名称;
  • 创建(Create)

# 创建表
create table 表名(
  字段名1 数据类型1,
  字段名2 数据类型2,
  字段名n 数据类型n
);
# 1.表名和字段名都是自己起的
# 2.最后一行末尾不能加逗号
  • 删除表
    1. Drop table 表名
    2. Drop table if exist 表名
  • 修改表
    1. 修改表名: Alter table 表名 rename to 新表名;
    2. 添加一行:Alter table 表名 add 列名 数据类型;
    3. 修改数据类型:Alter table 表名 Modify 列名 数据类型;
    4. 修改列名和数据类型:Alter table 表名 change 列名 新列名 数据类型;
    5. 删除列:Alter table 表名 Drop 列名;

🍃DML–数据增删改

  • 查看数据: Select * from 表名;

  • 添加:(insert)

    1. 给指定列添加数据:insert into 表名(列名1,列名2…)student(id,name) values(值1,值2…)(1,‘张三’);
    2. 给全部列添加数据:insert into 表名 values(值1,值2,值3,值4,值5…);
    3. 批量添加数据:insert into 表名(列1) values(值1),(值2),值(3)…;
  • 修改:(updata)

    1. 带where的是修改指定的行,update student set sex=‘女’,state=‘0’ where name =‘李四’;
    2. 不带where判断的是修改所有的行,update student set state=‘0’;
  • 删除:(delete)

    • delete from student where name =‘张三’;
    • delete from student ;删除语句中如果不加条件,则会把表中所有数据全部删除完!

DQL 数据查询

基础查询:

  1. 查询多个字段
    • select 字段列表 from 表名 fg:select id,name from stu;
    • select from 表名; 查询所有数据*(在公司不建议使用)**
  2. 去除重复记录
    • select distinct 字段列表 from 表名
  3. 起别名
    • as as也可以省略 但是字段列表和自己起的名字之间至少留一个空格
    • fg:select distinct name as 姓名 from stu;

条件查询(while):

  • 语法: Select * from 表名 where 条件列表

  • 常见的条件:

  • 🍎大于 <小于 >= 大于等于 <= 小于等于 = 等于 <> != 不等于

    between … and …在某个范围之内都包含(都包括) in(…)多选一

    Like 占位符(模糊查询 _ 单个任意字符 % 多个任意字符 )

    is null 是空 is not null 不是空

    and && 并且

    or || 或者

    not ! 非/不是

  • Like Fg:

  • select * from stu where name like ‘马%’; 所有名字中:第一个字为马的
    select * from stu where name like ‘%马’; 所有名字中: 最后一个字为马的
    select * from stu where name like ‘__马%’; 所有名字中:第三个字为马的

分组查询(group by):

🌳聚合函数

将一列作为一个整体,进行纵向计算

  • 聚合函数分类
函数名功能
count(列名)统计数量(一般选择不为null的列)
max(列名)最大值
min(列名)最小值
sum(列名)总和
avg(列名)平均数

聚合函数的用法: select 聚合函数名(列名) from 表名

null值不参与所有聚合函数的运算

  • Fg: select max(score)from stu;
🐖分组查询

语法: Select 字段列表 from 表名 [Where 分组前条件限定] Group by 分组字段名 [Having 分组后条件过滤];

注意:分组之后查询的字段为 聚合函数和分组字段 查询其他字段无任何意义

🙅‍**where和having 的区别**

  • 执行的时机不一样,where是在分组之前进行限定,不满足where条件的不参与分组,而having是在分组之后对结果进行过滤
  • 可判断的条件不一样,where不能对聚合函数进行判断,而having可以
  • 原因:执行顺序: where > group by > having
  • Fg:select sex,count(*),sum(score),avg(score) from stu where score >70 group by sex having sum(score)>250;

排序查询(order by):

  • select 字段列表 from 表名 Orfer by 排序字段名1[排序方式1],排序字段名2[排序方式2]…;

  • 排序方式 升序: asc 降序 : desc

    如果有多个排序条件,当前面条件值一样是,才会根据第二条件进行排序

  • fg: select * from stu order by score desc;

🍃分页查询(limit):

语法:Select 字段列表 From 表名 Limit 起始索引,查询条目数

起始索引从0开始

起始索引=(当前页码-1)*查询条目数

  • 不同数据库中分页查询的限定符不同
    • 分页查询 limit 是MySql的方言
    • Qracle分页查询使用 rownumber
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C_x_330

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值