MySQL数据库
操纵数据库
查看数据库
show databases;
创建数据库
create database <database_name>;
删除数据库
drop database <database_name>;
使用数据库
use mysql
操纵数据表
查看数据表
show tables;
创建数据表
CREATE TABLE TBL_USER ( # 创建user,table
U_ID INT PRIMARY KEY AUTO_INCREMENT,
U_NAME VARCHAR(32),
U_GENDER VARCHAR(8)
);
删除数据表
DROP TABLE TBL_USER;
ALTER更改表操作
ALTER TABLE TBL_USER ADD COLUMN U_IMAGE BLOB AFTER U_NAME; # 在U_NAME后加新列
SELECT查询操作
select * from <table>;
INSERT插入操作
INSERT TBL_USER(U_NAME, U_GENDER) VALUES ("Lem", "male");
DELETE删除操作
DELETE FROM TBL_USER WHERE U_NAME = 'Lem'; // 这种操作不安全,如果有多个名字
可以通过设置安全模式关闭进行删除
SET SQL_SAFE_UPDATES = 0; // 关闭安全模式
DELETE FROM TBL_USER WHERE U_NAME = 'Lem'
SET SQL_SAFE_UPDATES = 1; // 开启安全模式
如何以一条语句进行删除:事务和存储过程结合,存储过程一次编译,永久存储
DELIMITER**
BEGIN
CREATE PROCEDURE PROC_DELETE_USER(IN UNAME VARCHAR(32))
# PROCEDURE BODY
SET SQL_SAFE_UPDATES = 0;
DELETE FROM TBL_USER WHERE U_NAME = UNAME;
SET SQL_SAFE_UPDATES = 1;
END**
CALL PRO_DELETE_USER('Lee');
UPDATE更新操作
UPDATE TBL_USER SET U_GENDER = 'male' WHERE U_NAME = 'Lem';
数据库建模
建模即是创建数据库,创建表,其它删除,添加操作放到代码里。
MySQL事务
MySQL存储过程
MySQL可以理解为一组特定的语句集合,存储在数据库中,一次编译,永久存在。先创建程序然后通过CALL
调用语句。
基本语法:
DELIMITER **
CREATE PROCEDURE <PROCEDURE_NAME>(IN <COLUMN> <DATA_TYE>)
BEGIN
SET SQL_SAFE_UPDATES = 0;
DELETE FROM <TABLE_NAME> WHERE <COLUMN> = <VALUE>;
SET SQL_SAFE_UPDATES = 1;
END**
CALL <PROCEDURE_NAME>(VALUE);
MySQL声明(statement)通过C语言调用
statement
可以在一定时间内多次执行处理数据,而且只会在开头解析一次查询语句,而不使用statement
直接执行的话会发生多次查询,一般用于传输大文件。每次都是缓冲区先发到管道,然后取结果也是从管道取到结果缓冲区中。
基本语法
- 发送数据
mysql_stmt_init(); // 初始化sql连接
mysql_stmt_prepare(); // 使用sql预备语句
mysql_stmt_bind_param(); //绑定发送缓冲区
mysql_stmt_send_long_data(); // 通过块发送数据
mysql_stmt_execute(); // 执行发送
mysql_stmt_close(); // 释放statement
-
获取数据
mysql_stmt_init(); // 初始化sql连接 mysql_stmt_prepare(); // 使用sql预备语句 mysql_stmt_bind_param(); //绑定结果缓冲区 mysql_stmt_execute(); // 执行发送 mysql_stmt_store_result(); // 存结果到结果集合中 mysql_stmt_fectch(); // 取结果 mysql_stmt_fectch_column; // 取列进行输出即可 mysql_stmt_close(); // 释放statement