前言:呈现的是非常基础必备命令以及常规关联语法,因涉及到不同数据库其表达都会有所区别,此篇纯属做个仓库记录更非常规持续更新,专业人士可忽略,且看且珍惜…
MySQL: 关系型数据库、重点开源、支持大型规模、标准SQL数据语言、多平台多架构、高可用集群、可定制开发等等、此测试环境为MySQL5.7社区版
登入MySQL
mysql -uroot -p
查看数据库版本
select @@version; 或 select version();
select user(); --查看当前用户
查询数据库
show databases;
查看当前数据库
select database();
查询所有表
use test237 -- 切入对应数据库
show tables;
查询单库的所有表
select table_name from information_schema.tables where table_type = 'base table' and table_schema = 'test237';
迁移表到指定数据库
# 复制表结构
CREATE TABLE target_database.table_name LIKE source_database.table_name;
create table test237.db1_1 like db1.db1_1;
# 导入数据
INSERT INTO target_database.table_name SELECT * FROM source_database.table_name;
insert into test237.db1_1 select * from db1.db1_1;
#-----------#
创建数据库
create database test237 default character set utf8;
创建表
create table test1(ID char(10),NAME char(20) ,SEX char(4),AGE int(10));
创建用户
create user mysqluser identified by '123456';
授予用户权限
grant all on *.* to 'test'@'%';
GRANT 权限 ON 数据库.表 TO 用户名@登录主机 identified by '密码'
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' identified by 'password'
grant all privileges on *.* to 'test'@'localhost' identified by '123456';
刷新权限
flush privileges
查看用户权限(ALL/单个)
show grants;
show grants for 'username'@'localhost';
show grants for 'root'@'%';
查看用户
select user from mysql.user;
删除用户
drop user 'test'@'localhost';
drop user 'test'@'%';
#-----------#
创建视图
语法:create view 视图名 as select选取的列名1,选取的列名2.... from 源表;
create view view_name as select column1, column2 FROM table_name;
mysql> create view view_test1 as select ID,NAME from test1;
查看视图
mysql> select * from view_test1;
删除视图
drop view view_name;
drop view IF EXISTS view_name;
#-----------#
创建表添加主键
CREATE TABLE table_name (id INT,name VARCHAR(50),PRIMARY KEY (id));
已存在表添加主键
alter table table_name add primary key(ID);
删除主键
alter table table_name drop primary key(ID);
//一个数据表只可以有一个主键,所以不存在删除某一列的主键
#-----------#
创建索引
//创建索引/删除索引索引不可以更改,想更改必须删除重新建
create index index_name on table_name (column_name);
//其中,index_name为要创建的索引名称,table_name为要添加索引的表名,column_name为要添加索引的列名。
在多列上创建复合索引(联合索引)
create index index_name on table_name (column1, column2, ...);
# 删除索引
drop index index_name;
drop index idxname on table_name;
查看某个表的索引
show index from table_name
//其中,table_name为需要查询索引的表名称。输出结果将包含该表的索引信息,包括索引名、列名、索引类型等。
#-----------#
其它命令集合:
select * from dba_blockers; --查询锁
select * from dba_waiters; --查询被阻塞的会话
select column_name from tab_old intersect select column_name from tab_new; --显示两表的相同数据
select @@version; 或 select version(); --查看数据库版本
select database(); --查看当前数据库
select user(); --查看当前用户
show tables; --查看所有表
show columns from tablename; --查看表中的列的基本信息
desc table; 或 describe table; --表名后加字段名,查看该字段基本信息
select CHARACTER_LENGTH(ID) from tablename; --查询该字段值的长度
#-----------#
MySQL:先创建一个企业数据做演示验证:
进入MySQL查出所有的数据库文件
mysql -uroot -p
show databases;
show tables;
#-----------#
创建test237数据库、test1表、录入数据
show databases;
新建数据库test237并指定字符编码为UTF8
create database test237 default character set utf8;
查询test数据库的字符编码
select schema_name,default_character_set_name from information_schema.schemata where schema_name = 'test237';
创建test1表
mysql> create table test1(I