MySql命令集锦

sky-mxc 总结 转载注明:https://sky-mxc.github.io

MySQL命令

创建数据库

如果存在就先删了吧

1
drop database if exists db_ name;

创建数据库

1
create database db_name;

创建数据库

查看所有用户

所有的用户都存储于系统的user表里

1
select user from mysql.user;

创建用户

创建用户其实就是向 ‘mysql.user’ 表里插入一条记录

1
2
3
#create user '用户名‘@'用户登录ip % 表示无限制也可以是localhost' identified by '密码’
create user 'mxc'@'localhost' identified by 'mxc';

查询用户权限

1
2
3
#show grants for 用户名@'IP地址';
show grants for mxc@'localhost';

为用户授权

在创建一个用户的时候默认的权限只有登录权限,想要其他的权限必须授权;

1
2
3
#mxc用户拥有test数据库的所有权限
grant all on test.* to mxc@localhost identified by 'mxc';

为用户授权

权限列表

数据库/数据表/数据列权限:

  • Alter: 修改已存在的数据表(例如增加/删除列)和索引。
  • Create: 建立新的数据库或数据表。
  • Delete: 删除表的记录。
  • Drop: 删除数据表或数据库。
  • INDEX: 建立或删除索引。
  • Insert: 增加表的记录。
  • Select: 显示/搜索表的记录。
  • Update: 修改表中已存在的记录。

全局管理MySQL用户权限:

  • file: 在MySQL服务器上读写文件。
  • PROCESS: 显示或杀死属于其它用户的服务线程。
  • RELOAD: 重载访问控制表,刷新日志等。
  • SHUTDOWN: 关闭MySQL服务。

特别的权限:

  • ALL: 允许做任何事(和root一样)。
  • USAGE: 只允许登录–其它什么也不允许做

创建数据表

创建之前先删

1
drop table if exists table_name;
1
2
3
4
5
6
7
create table employee(
id int auto_increment primary key,
name varchar(50) not null,
age int default 18,
sex int default 0,
dept int not null)
default charset =utf8;

查看表结构

1
desc table_name;

创建表

默认值设置

  • int类型:默认值也得是整型,并且default后边不要()括号。
  • char类型:默认值使用单引号。

  • DATETIME类型:NOW()函数以’YYYY-MM-DD HH:MM:SS’返回当前的日期时间,可以直接存到DATETIME字段中。不支持使用系统默认值。

  • DATE类型:CURDATE()以’YYYY-MM-DD’的格式返回今天的日期,可以直接存到DATE字段中。不支持使用系统默认值。

  • TIME类型:CURTIME()以’HH:MM:SS’的格式返回当前的时间,可以直接存到TIME字段中。不支持使用系统默认值。

插入数据

1
insert into table_name values(对应的列的值);

插入数据

为已存在的表添加外键

1
2
3
4
alter table 表名 add constraint 外键名字 foreign key(外键字段名) references 外表(对应表的字段);
# 为 employee 添加外键 employee表的dept字段对应dept表里的 d_id字段
alter table employee add constraint FK_ED foreign key(dept) references dept(d_id);

查看创建表的SQL语句

1
show create table 表名;

查看创建表的SQL语句

添加列

1
2
3
alter table 表名 add 列名 数据类型;
# 为 dept表增加 d_location列
alter table dept add d_location varchar(200);

添加列

description

平时用到的SQL语句记录,持续更新中….