数据库基础操作

  1. --创建数据库
  2. create database 数据库名;
  3. create schema 数据库名;
  4. --创建指定字符集的数据库,在my.ini文件中可以通过default-character-set=来指定默认的字符集
  5. create database 数据库名 character set = utf8;
  6. --用判断语句创建数据库
  7. create schema if not exists 数据库名;
  8. --查看数据库
  9. show databases;
  10. --模糊匹配,%匹配任意字符
  11. show databases like "搜索字符%";
  12. --选择数据库
  13. use 数据库名;
  14. --修改数据库的字符集和校对规则,需要一定的权限
  15. alter database 数据库名 default character set gbk default collate gbk_chinese_ci;
  16. --删除数据库
  17. drop database 数据库名;
  18. drop database if exists 数据库名;
  19. --查看存储引擎
  20. show engines;
  21. --查看系统变量
  22. show variables;
  23. show variables like "%engine%";

库操作

--新建库
CREATE DATABASE IF NOT EXISTS `库名` default charset utf8mb4 COLLATE utf8mb4_unicode_ci;

----修改数据库名
  --方法一:不推荐,存在丢失数据的风险
    RENAME database olddbname TO newdbname;
  --方法二:较耗时,同时需要考虑磁盘空间
    -- 1.将db1库备份到db1.sql文件
    mysqldump -u root -p db1 > /usr/db1.sql;
    -- 2.导入备份文件到新库db2
    mysql -u root -p db2 < /root/db1.sql;
    -- 3.删除旧库(如果真的需要)
    DROP DATABASE db1;
  --方法三:执行shell修改表所属库
    --下方的“数据库改名shell脚本”代码块

--删除库
DROP DATABASE db1;

--使用库
USE db2;
#!/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_tabledo

表操作


--查看表
show tables;

--查看表结构
show columns from 表名;
show columns from 表名 from 数据库名;
desc 表名;
describe 表名;
describe 表名 列名;

--查看建表语句(可用用来看表的存储引擎)
show create table 表名;

--复制表结构
create table 新表名 like 表名;
create table 新表名 as select * from 表名 where 1=2;

--复制整个表
create table 新表名 as select * from 表名;

--修改表结构
--添加字段、修改
alter table 表名 add 列名 类型,modify 列名 类型;
--添加约束条件(建表的时候就指定好,constraint容易出现语法错误,建议用change来实现重新定义该列)
alter table 表名 add constraint 约束名 约束类型(字段名);
alter table 表名 add [constraint 外键名字] foreign key [外键字段] references 父表(主键字段);
/*约束类型
primary key 主键约束
default 默认值
unique key 唯一约束
not null 不为空
foreign key 外键约束
*/
--删除主键
alter table 表名 drop primary key;
--删除外键
alter table 表名 drop foreign key 约束名;
--删除唯一性约束
alter table 表名 drop index 唯一索引名;
--修改表的存储引擎
alter table 表名 engine=新的存储引擎类型;
--修改字符集
alter table 表名 default charset=新的字符集;
--修改自增类型字段的初始值(每修改一次就会从下一次插入开始生效)
alter table 表名 auto_increment==新的初始值;
--修改字段名以及其类型
alter table 表名 change column 列名 新列名 类型 [约束];
--修改表名
alter table 表名 rename as 新表名;
rename table 表名 to 新表名;

--删除数据表
drop table 表名;
drop table if exists 表名;