使用SQL操作数据库(增删改查(多种查询方式))

本文详细介绍SQL数据库的基础操作,包括数据库的创建、删除、选择、数据表的创建与管理,以及数据的增删改查。深入讲解了SQL查询语句的使用,如条件查询、排序、分组与统计函数,帮助读者掌握SQL核心技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用SQL操作数据库(增删改查(多种查询方式))


  • 首先第一条最简单的数据库的查看命令:show databases;(在这里要注意,加“s”,且一般情况下是分号结束)

在这里插入图片描述

  • 创建数据库的命令:create database database_name;(这里不要忘记分号结束哦)

在这里插入图片描述

  • 删除数据库的命令是:drop database database_name;(这里注意千万不要把系统数据库给删了!)

在这里插入图片描述

  • 还有,数据库新建完成后,要告诉数据库我正在对哪个数据库进行操作,命令:use database_name;(这样数据库就知道你要操作的是哪个数据库了。)

在这里插入图片描述

  • 新建完数据库之后,就是新建数据表了,新建数据表的语法是:
  • create table t_name(
  • 属性名 数据类型 [约束]
  • 属性名 数据类型 [约束]
  • ……
  • 属性名 数据类型 [约束]
  • );

在这里插入图片描述


其他数据表的命令

命令说明
SHOW TABLES;查看数据库
DESC table_name;查看数据表结构
DROP table_name;删除数据表

注意!

我们在添加商品表数据前,先要有它的父表,也就是商品种类表的数据,这样子表才能正常添加数据!
  • 新增表数据的语法结构是:
  • INSERT INTO table_name [(field1,field2…fieldn)] VALUES

(value1,value2…valuen);

  • 删除表记录的语法是:
DELETE FROM table_name WHERE CONDITION;(这里千万注意:删除语句一定要写删除条件,否则整张表删除!!!)
  • 突然发现有个货厂商少给我一个,我要删除后重新添加吗?当然不用,你只要修改原来数据即可!语法如下:
  • UPDATE table_nameSET field1=value1,field2=value2,…fieldn=valuen WHERE CONDITION;
  • 这里同样注意,一定必须不用忘了条件语句,否则整张表数据将被修改成一样的!!细思极恐!!!
  • 查找数据
  • SELECT field1,field2, … ,fieldn FROM table_name;
  • 使用DISTINCT关键字去掉重复数据,具体语法如下:
  • SELECT DISTINCT field1,field2, … FROM table_name;
让我们来重新认识select语句中where的作用使用限制条件,数据库可以包含如下功能:
  • 1.带关系运算符和逻辑运算符的条件数据查询;
  • 2.带BETWEEN AND关键字的条件查询语句;
  • 3.带IS NULL关键字的条件查询语句;
  • 4.带IN关键字的条件查询语句;
  • 5.带LIKE关键字的条件查询语句;

数据表的单表查询

  • 带关系运算符和逻辑运算符的条件数据查询;
算术运算符描述逻辑运算符描述
>小于AND(&&)逻辑与
<大于OR(ll)逻辑或
=等于XOR逻辑异或
!=(<>)不等于NOT(!)逻辑非
<=小于等于
>=大于等于
  • 需要查询取值范围区间请使用BETWEEN AND,语法格式如下:
  • SELECT field1 FROM table_name WHERE field2 [not]

BETWEEN valuea AND valueb;

  • 使用IS NULL 关键字可以实现找出null
  • SELECT field1 FROM table_name WHERE field2 IS [not]

NULL;

  • IN关键字的使用,语法如下:
  • SELECT field1 FROM table_name WHERE field2 [not] IN(value1,value2…valuen);
  • in关键字可以用来匹配括号内任一值得查询条件
  • 接下来讲LIKE关键字的用法;
  • LIKE要和通配符一起用,不然没有用通配符的LIKE效果等同于“=”,常用的通配符有“_”和“%”;前者是匹配单个字符的意思,后者是匹配任意字符;比如"_a%"
  • 表示第一个字母任意,第二个字母必须是a,后面字母任意,复合的结果有ward,martin,james等。
  • LIKE关键字在实际开发中,常用于实现模糊查询功能,比如查询张姓同学,就可以这么写select * from student where stu_name like ‘张%’;又比如要查找名字中有小米关键字的产品,则可以这么写:select name from table where name like ‘%小米%’;
  • 排序的关键字是ORDER BY,后面跟ASC(升序,可以不写默认)或者DESC逆序;具体语法如下:
  • SELECT field1,field2,… FROM table_name WHERE CONDITION ORDER BY fieldn [ASC|DESC];
  • 注意这里的语法中条件语句是分开的,就是说可以没有条件语句,比如select * from student order by stu_name;
  • limit使用方法:

  • 举个例子吧:
  • select * from table limit 2; 只输出前2行;
  • select * from table limit 0,5;从第0行开始,输出5行;
  • select * from table order by sal limit 1;按照sal列升序排序,
  • 只输出第一行,那么就得到sal最小的那条数据!
  • 统计函数

  • COUNT()函数:统计记录数;

  • AVG()函数:求平均值;

  • SUM()函数:求和;

  • MAX()函数:求最大数;

  • MIN()函数:求最小数;

  • 其中,COUNT()函数可以通过以下两种方法来实现统计:

  • count(*)使用方式,实现对表中记录进行统计,不管是否包含NULL还是NOT NULL
  • count(field)使用方法对指定字段进行统计,将忽略NULL值!
  • 还有,如果表中无数据,count()函数返回的是0,其它函数返回null;
  • group by 的使用,在mysql中是用过GROUP BY 关键字实现一个分组。

  • 简单的分组查询语法如下,

  • SELECT * FROM tabel_name GROUP BY field;
  • 我们将这个语法和统计函数一起用就可以达到分组查询统计的功能了,举个例:
  • select count(*) from table group by type; 这句语句实现了按照类型进行分组,分别查询出了每组商品数量!
  • 最后,在mysql中,要对分组查询结果进行条件限制查询,不能使用WHERE关键字,需要使用HAVING关键字,例如,

  • select count(*) from table where sal>50 group by type;

  • select avg(c_inprice) ,c_type from commodity group byc_type having avg(c_inprice) >1

  • 这两句语句的区别是将售价大于50的产品查询出来后进行分组,和将查询出来的所有结果进行分组排序后显示售价大于50的数据;

  • 这里的最终结果可能一样,但实现概念不一样,导致在实际工作中部分特定场景会出现不一样的结果,大家这里要注意了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值