记不住的数据库

存储过程

delimiter $$ 声明语句的结束符号,可以自定义 一般使用$$
CREATE PROCEDURE 过程的名称()
begin  -- 开始编写存储过程
  -- 执行的操作
end $$

一、创建的第一种方式(不带参,没有返回值)

-- 定义存储过程
DELIMITER $$
CREATE PROCEDURE demo1()
BEGIN
	SELECT * FROM goods;
END $$

CALL demo1;

二、创建的第二种方式(有参无返回值)

DELIMITER $$
CREATE PROCEDURE demo2(IN did INT)
BEGIN
  DELETE FROM goods WHERE gid = did;
END $$


CALL demo2(1)

三、创建的第三种方式(有参有返回值)

-- 向订单插入一条数据,返回1表示插如成功 方式三
DELIMITER $$
CREATE PROCEDURE demo3(IN o_oid INT,IN o_gid INT,IN o_price DOUBLE,OUT out_num INT)
BEGIN
   -- 执行插入操作
  INSERT INTO orders VALUES(o_oid,o_gid,o_price);
  -- 设置num值为1  
  SET @out_num = 1;
  -- 返回out_num值
  SELECT @out_num;

END $$

-- 调用存储过程
CALL demo3(1,2,3,@out_num)

总结:

```sql
set @变量名=数值
in 输入
out 返回
select @变量名
```

下面是一个简单的教程,展示如何在PyQt5中使用下拉框连接数据库: 1. 导入必要的库 ```python from PyQt5.QtWidgets import QApplication, QWidget, QComboBox from PyQt5.QtSql import QSqlDatabase, QSqlQueryModel ``` 2. 创建一个QWidget窗口和一个下拉框QComboBox ```python class MyWidget(QWidget): def __init__(self): super().__init__() self.combo = QComboBox(self) ``` 3. 连接到数据库 ```python def connect_to_database(self): db = QSqlDatabase.addDatabase('QSQLITE') db.setDatabaseName('mydatabase.db') if not db.open(): print("Cannot establish a database connection") return False else: print("Database connection established successfully") return True ``` 4. 将数据库中的数据填充到下拉框中 ```python def fill_combo(self): query_model = QSqlQueryModel() query_model.setQuery("SELECT name FROM mytable") self.combo.setModel(query_model) ``` 5. 将下拉框添加到QWidget中并显示 ```python self.fill_combo() self.show() ``` 完整代码如下所示: ```python from PyQt5.QtWidgets import QApplication, QWidget, QComboBox from PyQt5.QtSql import QSqlDatabase, QSqlQueryModel class MyWidget(QWidget): def __init__(self): super().__init__() self.combo = QComboBox(self) self.connect_to_database() self.fill_combo() self.show() def connect_to_database(self): db = QSqlDatabase.addDatabase('QSQLITE') db.setDatabaseName('mydatabase.db') if not db.open(): print("Cannot establish a database connection") return False else: print("Database connection established successfully") return True def fill_combo(self): query_model = QSqlQueryModel() query_model.setQuery("SELECT name FROM mytable") self.combo.setModel(query_model) if __name__ == '__main__': app = QApplication([]) widget = MyWidget() app.exec_() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值