MySQL数据库常规编程(增改删查)存储过程(参数化)

本文详细介绍SQL的基本操作,包括查询、新增、修改、删除等常见指令的使用方法,并深入讲解了参数化SQL语句、多表查询、条件查询等内容。

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

1、查:  查询 select

2、增:  新增 insert

3、改:  修改 update

4、删:  删除 delete

 

一、查询 select

1、单表查询

理解:从(from)表" PW_Student(学生表)",查询这些列(studentID学生ID, ClassID班级ID, GradeID等级ID, SpecialtyID专业ID,StudentName,学生姓名,StudentSex学生性别,StudentIDNum生身份证)的数据

 

二、新增(insert

理解:新增(insert)表“PW_Student(学生表)”的这些列(studentID学生ID, ClassID班级ID, GradeID等级ID, SpecialtyID专业ID,StudentName,学生姓名,StudentSex学生性别,StudentIDNum生身份证),它们的值(values分别为(2,1,1,6,'徐小春','男',440981199803024912)

 

三、删除 delete

理解:删除(delete)表“PW_Student(学生表)”,在(where)(studentID=8)的地方(就是学生ID=8的这行数据)

 

四、修改 update

理解:修改(update)表“PW_Student(学生表)”的集合(setStudentName='黎明',ClassID=3,SpecialtyID=7在(where)(studentID =3)的地方(就是学生ID=3的这行数据)

 

五、参数化SQL语句

 

例如我们在本篇中创建的表PW_Student中查找所有2017级的学生,那么通常情况下我们的SQL语句可能是这样:

1

select * from PW_Student where GradeID='2017'

在参数化SQL语句中我们将数值以参数化的形式提供,对于上面的查询,我们用参数化SQL语句表示为: 

1

select * from PW_Student where GradeID = @ GradeID

再对代码中对这个SQL语句中的参数进行赋值,假如我们要在表PW_Student中查找所有2017级的后级别的学生,这个参数化SQL语句可以这么写:

1

select * from PW_Student where GradeID > @ GradeID

>=大于等于    <=小于等于

六、多表查询

    不同的 SQL JOIN

在我们继续讲解实例之前,我们先列出您可以使用的不同的 SQL JOIN 类型:

  • INNER JOIN:如果表中有至少一个匹配,则返回行
  • LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
  • RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
  • FULL JOIN:只要其中一个表中存在匹配,则返回行

   

七、条件查询

    (1)单表条件查询

2where  and 多表

SQL AND & OR 运算符

如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。

如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录

or两种都符合,其中一个符合

 

(3)where  and  ( or )多表

(4)like % % 模糊查询,多表

      ltrim左边去空格 rtrim右边去空格

5DISTINCT 语句用于返回唯一不同的值

在表中,一个列可能会包含多个重复值,有时您也许希望仅仅列出不同(distinct)的值

 

6 ORDER BY 关键字用于对结果集进行排序

 

(7)ORDER BY DESC降序排序

(8)INSERT INTO 语句用于向表中插入新记录。

INSERT INTO 语句可以有两种编写形式。

第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:

INSERT INTO BT_Authors
VALUES (1,
小会);

第二种形式需要指定列名及被插入的值:

INSERT INTO BT_Authors (AuthorsID, AuthorsName)
VALUES (1,
小会);

SQL 中,我们有如下约束:

  • NOT NULL - 指示某列不能存储 NULL 值。
  • UNIQUE - 保证某列的每行必须有唯一的值。
  • PRIMARY KEY - NOT NULL UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
  • FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
  • CHECK - 保证列中的值符合指定的条件。
  • DEFAULT - 规定没有给列赋值时的默认值。

我们会详细讲解每一种约束。

1NOT NULL 约束强制列不接受 NULL 值。

NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。

2UNIQUE 约束唯一标识数据库表中的每条记录。

3PRIMARY KEY 约束唯一标识数据库表中的每条记录。

主键必须包含唯一的值。

主键列不能包含 NULL 值。

每个表都应该有一个主键,并且每个表只能有一个主键。

4、一个表中的 FOREIGN KEY(外部键) 指向另一个表中的 PRIMARY KEY(主键)。

让我们通过一个实例来解释外键。请看下面两个表:

"Persons" 人员表:

P_Id

LastName(上一个名称)

FirstName(第一名称)

Address(地址)

City(城市)

1

Hansen

Ola

Timoteivn 10

Sandnes

2

Svendson                  

Tove               

Borgvn 23       

Sandnes   

3

Pettersen

Kari

Storgt 20

Stavanger

"Orders" 订单表:

O_Id

OrderNo(点单编号)

P_Id

1

77895

3

2             

44678              

3            

3

22456

2

4

24562

1

请注意,"Orders" 表中的 "P_Id" 列指向 "Persons" 表中的 "P_Id" 列。

"Persons" 表中的 "P_Id" 列是 "Persons" 表中的 PRIMARY KEY

"Orders" 表中的 "P_Id" 列是 "Orders" 表中的 FOREIGN KEY

FOREIGN KEY(外部键) 约束用于预防破坏表之间连接的行为。

FOREIGN KEY(外部键) 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。

总结:

通过上面的案例可以学习到了一个问题分析的思路,还可以加深一下自己学习方法的记忆,同时希望帮助到大家!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值