阿东的笔记_  工具

MySQL数据库相关,常用SQL

SQL TABLE 数据库表

  1. -- MySQL 8.0.13
  2. -- 建库
  3. CREATE DATABASE IF NOT EXISTS `dbname` DEFAULT
  4. CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
  5. USE `user`;
  6. -- 建表
  7. DROP TABLE IF EXISTS `user`;
  8. CREATE TABLE `user` (
  9. `id` BIGINT(20) unsigned NOT NULL AUTO_INCREMENT,
  10. `username` VARCHAR(16) NOT NULL COMMENT '用户名',
  11. `nickname` VARCHAR(16) NOT NULL COMMENT '昵称',
  12. `pwd` VARCHAR(32) NOT NULL COMMENT '密码',
  13. `score` DECIMAL(16,2) DEFAULT NULL COMMENT '得分',
  14. `balance` INT(11) DEFAULT NULL COMMENT '余额(单位/分)',
  15. `other_info` TEXT DEFAULT NULL COMMENT '其他信息',
  16. `user_type` ENUM('admin','develop','normal') DEFAULT NULL COMMENT '类型',
  17. `update_time` TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '更新时间',
  18. `create_time` TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
  19. PRIMARY KEY (`id`),
  20. -- UNIQUE KEY `username` (`username`),
  21. KEY `nickname`(`nickname`)
  22. ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
  23. -- 修改表,新增字段
  24. ALTER TABLE `dbname`.`user`
  25. ADD COLUMN `last_login_time` TIMESTAMP(3) DEFAULT NULL COMMENT '最后登陆时间'
  26. AFTER `user_type`;
  27. -- 修改表,修改字段
  28. ALTER TABLE `dbname`.`user`
  29. MODIFY COLUMN `last_login_time` TIMESTAMP(6);
  30. -- 修改表,修改字段名或数据类型
  31. ALTER TABLE `dbname`.`user`
  32. CHANGE `last_login_time` `last_login` TIMESTAMP(6) DEFAULT NULL;
  33. ALTER TABLE `dbname`.`user`
  34. CHANGE `last_login` `last_login` DATETIME NOT NULL;
  35. -- 删除字段
  36. ALTER TABLE `dbname`.`user` DROP COLUMN `last_login`;

SQL INDEX UNIQUE PRIMARY KEY 索引

  1. -- 创建索引 ALTER TABLE
  2. -- 普通索引
  3. ALTER TABLE `dbname`.`user` ADD INDEX `index_last_login` (`last_login`);
  4. -- 唯一索引
  5. ALTER TABLE `dbname`.`user` ADD UNIQUE (`username`);
  6. -- 主键索引
  7. ALTER TABLE `dbname`.`user` ADD PRIMARY KEY ('id');
  8. -- 创建索引 CREATE
  9. CREATE INDEX `index_username` ON `dbname`.`user` (`username`);
  10. CREATE UNIQUE INDEX `un_username` ON `dbname`.`user` (`username`);
  11. -- 删除 索引
  12. DROP INDEX `index_username` ON `dbname`.`user`;
  13. ALTER TABLE `dbname`.`user` DROP INDEX `index_username`;
  14. ALTER TABLE `dbname`.`user` DROP PRIMARY KEY;

SQL FUNCTION 创建函数

  1. DROP FUNCTION IF EXISTS `fun_get_value`;
  2. DELIMITER ;;
  3. -- 创建函数
  4. CREATE DEFINER=`root`@`%` FUNCTION `fun_get_value`(u float , v float )
  5. RETURNS decimal(16,4)
  6. BEGIN
  7. return cast(sqrt(u+v) as decimal(16,4));
  8. END;;
  9. DELIMITER;

SQL PROCEDURE 创建存储过程

  1. DROP PROCEDURE IF EXISTS `proc_insert_data`;
  2. DELIMITER ;;
  3. CREATE DEFINER=`root`@`%` PROCEDURE `proc_insert_data`(
  4. p_1 VARCHAR(6), -- 参数
  5. p_2 DATETIME, -- 参数
  6. p_3 INT,-- 参数
  7. OUT p_4 INT
  8. )
  9. BEGIN
  10. SET @time = NOW();
  11. -- 操作
  12. END;;
  13. DELIMITER;

SQL EVENT 创建事件

  1. DROP EVENT IF EXISTS `job_load_data`;
  2. DELIMITER ;;
  3. CREATE DEFINER=`root`@`%` EVENT `job_load_data`
  4. ON SCHEDULE EVERY 10 MINUTE STARTS '2021-01-01 00:00:00'
  5. ON COMPLETION PRESERVE
  6. ENABLE
  7. DO BEGIN
  8. call `xxxxx`(); -- 执行
  9. END;;
  10. DELIMITER;

SQL USER 用户/授权

  1. -- 创建
  2. CREATE USER 'root_test'@'%' IDENTIFIED BY 'adong98765';
  3. -- 修改
  4. ALTER USER 'root_test'@'%' IDENTIFIED BY '123456';
  5. -- 授权
  6. GRANT ALL PRIVILEGES ON *.* to 'root_test'@'%';
  7. -- 授权
  8. GRANT SELECT ON *.* TO 'root_test'@'%';
  9. -- 生效
  10. FLUSH PRIVILEGES;
adddge@sohu.com  | 桂ICP备2022009838号-2