注:未经过本文作者同意,严禁转载
创建一个数据库
CREATE DATABASE `数据库名称`
删库-删表sql语句-需要删除的时候使用该语句
-- 删除库
DROP DATABASE `数据库名称`
-- 删除表
DROP TABLE `表名称`
-- 删除函数
DROP FUNCTION 函数名称
-- 删除视图
DROP VIEW 视图名称
-- 删除存储过程
DROP PROCEDURE 存储过程名称
简单创建一张表
-- 创建数据库
CREATE DATABASE `demo`
-- 切换到指定的数据库
USE demo
-- 创建一张 users 表
CREATE TABLE `users`(
-- 创建字段id 超大int类型(long)设置自增,不允许为空
`id` BIGINT(64) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(32) DEFAULT '' COMMENT '用户昵称',
`pwd` VARCHAR(64) DEFAULT '' COMMENT '用户密码',
PRIMARY KEY (`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
编写循环体
-- 标志,写函数前一定要写,很重要
DELIMITER $$
-- 创建一个function函数叫 mock_data()
CREATE FUNCTION mock_data()
RETURNS INT
BEGIN
DECLARE num INT DEFAULT 1000000;
DECLARE i INT DEFAULT 0;
WHILE i<num DO
-- 循环体
INSERT INTO `users`(`name`,`pwd`)VALUES(CONCAT('用户',i),CONCAT(RAND()*(RAND(999999999-100000000)+1000000000)));
-- i每次+1操作
SET i = i+1;
END WHILE;
RETURN i;
-- 结束需要和标志定义的一样,这个很重要
END $$
SELECT mock_data();
细节注意:
如果使用的是 navicat 11版本的工具是没有 delimiter 关键字的,当然navicat其他版本我就不清楚了。需要用SQLyog工具,当前我用到SQLyog版本为8.32,SQLyog就可以。并且MySQL的版本是5.7.35,其他版本慎用
MySQL版本
SQLyog
Navicat
问题注意:如果出现 FUNCTION mock_data already exists 错误
解决方法1:
-- 使用sql语句执行删除函数操作
DROP FUNCTION mock_data;
解决方法2:
使用 SQLyog 工具 Functions文件,选择你需要删除的函数
使用 Navicat 工具 找到函数,选择你需要删除的函数即可
最后看一下结果
索引创建
-- id_表名_字段名
-- CREATE FULLTEXT INDEX 索引名 ON 表(字段) == 创建全文索引1
-- ALTER TABLE 表 ADD FULLTEXT INDEX 索引名(字段) == 创建全文索引2
-- CREATE INDEX 索引名 ON 表(字段) == 在某个字段上创建索引
CREATE INDEX users_name ON users(`name`)
CREATE FULLTEXT INDEX users_all ON users(`name`,`pwd`)
ALTER TABLE users ADD FULLTEXT INDEX fulltext_users(`name`,`pwd`)