文章插图
一、摘要本文主要以 MySQL 数据库为基础,对常用 SQL 语句进行一次深度总结,由于篇幅较长,难免会有些遗漏的地方,欢迎网友批评指出!
具体内容主要有以下几个部分:
- 库操作
- 表操作
- 数据操作
- 运算符
- 视图
- 函数
- 存储过程
- 触发器
- 序列
- 用户权限
CREATE DATABASE IF NOT EXISTS `库名` default charset utf8mb4 COLLATE utf8mb4_unicode_ci;
例子:CREATE DATABASE IF NOT EXISTS test_db default charset utf8mb4 COLLATE utf8mb4_unicode_ci;
2.2、修改库名数据库修改库名的有三种方法,如果是MyISAM存储引擎,那么可以直接去数据库目录mv就可以了,如果是Innodb完全不行,会提示相关表不存在 。方法一
RENAME database olddbname TO newdbname
这个语法在 mysql-5.1.7 中被添加进来,到了mysql-5.1.23又去掉了,官方不推荐,会有丢失数据的危险!方法二思路是先创建一个新库,之后将旧库的数据导入到新库,即可完成修改库名!
- 1、创建需要改成新名的数据库 。
- 2、mysqldum 导出要改名的数据库
- 3、删除原来的旧库(确定是否真的需要)
例子:
# 将db1库备份到db1.sql文件mysqldump -u root -p db1 > /usr/db1.sql;# 导入备份文件到新库db2mysql -u root -p db2 < /root/db1.sql;# 删除旧库(如果真的需要)DROP DATABASE db1;
方法三直接跑一个 shell 脚本!#!/bin/bash# 假设将db1数据库名改为db2# MyISAM直接更改数据库目录下的文件即可mysql -uroot -p123456 -e 'create database if not exists db2'list_table=$(mysql -uroot -p123456 -Nse "select table_name from information_schema.TABLES where TABLE_SCHEMA='db1'")for table in $list_tabledomysql -uroot -p123456 -e "rename table db1.$table to db2.$table"done
其中p123456,p是password的简称,123456表示数据库密码值!2.3、删除库名删除库,比较简单,直接删除即可!
DROP DATABASE db1;
2.4、使用库USE db2;
三、表操作3.1、创建表CREATE TABLE ts_user (id bigint(20) unsigned NOT NULL COMMENT '编码',name varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '用户姓名',mobile varchar(11) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '手机号',create_userid varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '创建人',create_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',update_userid varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '更新人',update_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',PRIMARY KEY (id),KEY idx_create_time (create_time) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表';
3.2、修改表名ALTERTABLE ts_user RENAME TO ts_new_user;
3.3、删除表DROP TABLE ts_new_user;
3.4、字段操作3.4.1、查询表字段show full columns from ts_user;
3.4.2、新增字段ALTER TABLE ts_user add column gender tinyint(4) NOT NULL DEFAULT '1' COMMENT '性别,1,男;2,女' AFTER mobile;
3.4.3、修改字段ALTER TABLE ts_user modify column mobile varchar(30) NOT NULL DEFAULT '' COMMENT '用户手机号';
3.4.4、删除字段ALTER TABLE ts_user drop column gender;
3.5、索引操作3.5.1、查询表索引 SHOW INDEXES FROM ts_user;
3.5.2、新增普通索引alter table ts_user add index idx_id (id);
3.5.3、新增唯一索引alter table ts_user add unique idx_id (id);
3.5.4、新增主键索引alter table ts_user add primary key idx_id (id) ;
3.5.5、新增多列索引alter table ts_user add index idx_id_name (id,name) ;
3.5.6、新增全文索引alter table ts_user add fulltext idx_id (id) ;
3.5.7、删除索引# 删除普通索引alter table ts_user drop index idx_id;# 删除主键索引alter table ts_user drop primary key;
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Linux之killall命令
- 夏日泡泡小说中的经典语句
- 使用MySQL导入数据时出现乱码的两种解决方法
- c# 8个常用的.net类库
- Mysql Innodb 引擎解决并发问题
- 什么是MySQL存储引擎?
- MySQL七种JOIN类型,终于学明白了
- MySQL崩溃-修复损坏的innodb:innodb_force_recovery
- 常用的微信营销软件有哪些
- MySQL的select流程