一、MySQL创建数据库指令
1. 基本语法
CREATE DATABASE [IF NOT EXISTS] database_name;
IF NOT EXISTS
:可选参数,如果数据库已经存在则不会报错。
database_name
:要创建的数据库名称。
2. 示例
-创建一个名为testdb的数据库 CREATE DATABASE testdb; -如果数据库已经存在则不报错 CREATE DATABASE IF NOT EXISTS mydatabase;
3. 指定字符集和排序规则
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
4. 检查是否创建成功
SHOW DATABASES;
二、MySQL预处理指令
预处理语句(Prepared Statements)是为了防止SQL注入并提高执行效率而设计的,预处理语句通过将SQL语句中的变量用占位符(如?
)代替,在执行前先编译一次,之后可以多次执行不同的参数。
1. PREPARE语法
PREPARE stmt_name FROM preparable_stmt;
stmt_name
:预处理语句的名字。
preparable_stmt
:需要预编译的SQL语句。
2. EXECUTE语法
EXECUTE stmt_name [USING @var1, @var2, ...];
@var1, @var2, ...
:传递给预处理语句的参数。
3. DEALLOCATE语法
DEALLOCATE PREPARE stmt_name;
stmt_name
:需要释放的预处理语句的名字。
4. 示例
-准备一个预处理语句,计算两个数的和 PREPARE stmt1 FROM 'SELECT ? + ?'; -设置参数值并执行预处理语句 SET @a = 10; SET @b = 20; EXECUTE stmt1 USING @a, @b; -释放预处理语句 DEALLOCATE PREPARE stmt1;
三、ON DUPLICATE KEY UPDATE指令
ON DUPLICATE KEY UPDATE
指令用于在插入数据时,如果遇到重复的主键或唯一键,则更新现有记录,它通常用于使用唯一键或主键创建的表中。
1. 基本语法
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...) ON DUPLICATE KEY UPDATE column1=new_value1, column2=new_value2, ...;
table_name
:表名。
column1, column2, ...
:列名。
value1, value2, ...
:插入的值。
new_value1, new_value2, ...
:更新的新值。
2. 示例
假设有一个用户表users
,其中id
为主键,name
为唯一键,我们希望插入一条新记录,如果id
已存在则更新其age
字段。
-尝试插入一条记录,如果id已存在则更新age字段 INSERT INTO users (id, name, age) VALUES (1, 'John', 30) ON DUPLICATE KEY UPDATE age=30;
创建数据库:使用CREATE DATABASE
命令,可以指定字符集和排序规则。
预处理指令:包括PREPARE
、EXECUTE
和DEALLOCATE
,用于防止SQL注入并提高执行效率。
ON DUPLICATE KEY UPDATE:在插入数据时,如果遇到重复的主键或唯一键,则更新现有记录。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1252423.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复