MySQL数据库-数据库命令

数据库命令

数据库命令也就是我们所说的sql语句

SQL语句

  • Structured Query Language的缩写,即结构化查询语句
  • 关系型数据库的标准语言
  • 不区分大小写,MySQL的账号与系统的账号是不相关的,MySQL的最高管理员用户为root
  • 用于维护管理数据库
    • 包括数据查询、数据更新、控制访问、对象管理等功能

SQL分类

  • DDL:数据定义语言 create
  • DML:数据操作语言 如insert,update,delete
  • DQL:数据查询语言 如select show
  • DCL:数据控制语言 权限

创建与查看数据库,表

查看mysql版本

select version();

查看mysql都有哪些数据库

show databases;

在MySQL中,当你执行show databases;命令时,你会看到几个默认的数据库。下面是每个数据库的含义:

  • information_schema:这是一个特殊的数据库,提供了关于MySQL服务器上的所有其他数据库的信息。你可以通过查询这个数据库来获取关于数据库、表、列以及权限等的信息。它是只读的,不能被修改。
  • mysql:这个数据库包含了MySQL服务器的用户账号和权限信息。例如,用户表user就存储在这个数据库中。它还包含了服务器需要的系统表,比如插件和时区信息。
  • performance_schema:这个数据库用于收集数据库服务器性能参数。它可以帮助你监视MySQL服务器的性能,比如查询的执行时间、锁的使用情况等。通过查询这个数据库,你可以获取到关于服务器性能的详细信息。
  • sys:sys数据库是一个相对较新的特性,它提供了一系列视图和函数,用于帮助数据库管理员更方便地查询performance_schema和information_schema数据库中的信息。sys数据库的目的是简化性能监控和系统管理任务。
  • 每个数据库都有其特定的用途,并且对于数据库的管理和优化都是非常重要的。

切换到数据库

use 数据库名;

示例:切换到mysql表
use mysql;

查看数据库下有那些表

show tables;

DDL语句可用于创建数据库对象,如库、表、索引等

创建数据库

create database 数据库名;

示例:创建school数据库
create database school;

创建数据表

create table 表名(字段定义......) ENGINE=InnoDB DEFAULT CHARSET=utf8; //存储引擎innodb 默认字符集utf8

示例:在school数据库内创建student表
#示例1
use school;
create table student(id int,name varchar(11));

#示例2
create table school.student(id int,name varchar(11));

查看表结构

describe 表名;

示例:查看student表结构
#示例1
describe school.student;

#示例2
use school;
describe student;

克隆表

克隆表结构

create table 克隆表名 like 被克隆的源表;

示例:克隆student表表名为studentbak
create table studentbak like student;

克隆表结构和数据

create table 克隆表名 select * from 被克隆的源表;

create table 克隆表名 as select * from 被克隆的源表;

示例:克隆student表表名为studentbak
#示例1
create table studentbak select * from school.student;

#示例2
create table studentbak as select * from school.student;

删除数据表、库

删除指定的数据表

drop table [数据库名.]表名;

示例:删除school数据库的student表
#示例1
drop table school.student;

#示例2
use school;
drop table student;

删除数据库

drop database 数据库名;

示例:删除school数据库
drop database school;

数据库操作

insert into 表名 values(值1,值2,值3,......); //插入一条数据,数据内容为表中的所有字段

insert into 表名 values(值1,值2,值3,......),(值1,值2,值3,......),(值1,值2,值3,......); //插入多条数据,数据内容为表中的所有字段

insert into 表名(字段1,字段2,字段3,......) values(值1,值2,值3,......); 插入一条数据,数据内容为表中的指定字段

insert into 表名(字段1,字段2,字段3,......) values(值1,值2,值3,......),(值1,值2,值3,......),(值1,值2,值3,......); //插入多条数据,数据内容为表中的指定字段

示例:向student表添加数据
#示例1
insert into school.student values(1,张三);

#示例2
insert into school.student values(1,张三,2,李四);

#示例3
insert into school.student(id,name) values(1,张三);

#示例4
insert into school.student(id,name) values(1,张三,2,李四);

delete from 表 where 条件; //删除符合条件的行

delete from 表; //删除所有行,不会清空自增id等数据

示例:删除student表数据
#示例1,删除id等于1的数据
delete from school.student where id=1;

#示例2,删除表内所有行
delete from school.student;

清空表

truncate 表名; //清空表,是将表结构原样重新建立

示例:清空student表内所有数据
truncate school.student;

update 表名 set 字段=值 where 条件; //更改符合条件的值,set后为更改的值,如果不加条件update会将表内所有行的name值更改为赵五

示例:修改student表内id为2的行内name的值为赵五
update school.student set name='赵五' where id=2;

select * from 表名; //查询表的所有数据

select 字段1,字段1,字段3,.... from 表名; //查询表的指定字段

示例:查看student表内数据
#示例1,查询表内所有数据
select * from school.student;

#示例2,查询表内指定字段的数据
select id,name from school.student;

临时表

MySQL中的临时表是一种特殊类型的表,它只在创建它的数据库会话期间存在。当会话结束时(例如,当用户退出MySQL或关闭数据库连接时),临时表会自动被删除

create temporary table 表名(字段);

示例:创建一个临时表table_temp
create temporary table table_temp (  
    id int,  
    name varchar(100),   
);

数据库用户授权

设置权限

GRANT 权限列表 ON 数据库名.表名 TO 用户名@来源地址 [ IDENTIFIED BY '密码' ];

GRANT CREATE ON *.* TO 'admin'@'localhost' IDENTIFIED BY '123' //设置权限为创建数据库和表 CREATE权限的英文,多个权限一英文逗号分割,可以操作所有数据库和表*代表所有 用户是admin 来源地址表示从哪里登录进来的用户设置权限localhost表示本机 %表示除了本机以外所有地址 192.168.78.% 表示192.168.78网段 192.168.78.3表示192.168.78.3地址 [ ]内的表示设置密码,如果设置权限的用户是一个未创建的用户,一设置权限MySQL会创建他,[ ]就用来是指新组建用户的密码

示例:创建用户并设置全部表的全部权限
grant all on *.* to 'admin'@'localhost' identified by '123456';

查看权限

show grants; //查看当前用户的权限

show grants for '用户名'@'来源地址'; //查看指定用户的权限

#示例1,查看当前用户的权限
show grants;

#示例2,查看指定用户的权限
show grants for 'admin'@'localhost';

撤销权限

REVOKE 权限列表 ON 数据库名.表名 FROM 用户名@来源地址;

示例:撤销admin用户的权限
REVOKE CREATE ON *.* FROM 'admin'@'localhost'; //撤销admin用户的权限

修改密码

SET PASSWORD FOR '用户名'@'localhost'=PASSWORD('新密码');   5.7.6以前版本

set password=password('新密码');

ALTER USER '用户名'@'用户来源地址' IDENTIFIED BY '新密码';   5.7.6以后版本

示例:修改用户密码
#示例1,修改当前用户的密码
set password=password('root')

#示例2,修改指定用户admin的密码为admin
set password for 'admin'@'localhost'=password('admin');

#示例2,5.6版本之后的修改指定用户admin的密码为admin
alter user 'admin'@'localhost' identified by 'admin';

mysqladmin命令更改密码

  1. 打开终端或命令提示符窗口。
  2. 使用mysqladmin命令来更改密码。命令格式为:mysqladmin -u用户名 -p旧密码 password 新密码。注意,password前面没有空格。
  3. 输入命令后,系统会提示你输入旧密码(如果命令中已经包含了旧密码,则不会提示)。输入旧密码后,密码将被更改为新密码。

直接编辑user表(不推荐,除非在无法登录MySQL的情况下)

(仅适用于紧急情况,如忘记root密码):

  1. 停止MySQL服务。
  2. 以无权限表认证模式启动MySQL服务(例如,在Linux中,可以使用mysqld_safe --skip-grant-tables &命令)。
  3. 登录到MySQL服务器(此时不需要密码)。
  4. 使用UPDATE语句直接修改mysql.user表中的密码字段。注意,从MySQL 5.7.6开始,密码字段的名称可能从password更改为authentication_string。
  5. 刷新权限。
  6. 重启MySQL服务,并使用新密码登录。

注意事项

  • 在更改密码时,请确保新密码的安全性,避免使用过于简单或容易被猜到的密码。
  • 如果你使用的是MySQL的图形界面管理工具(如MySQL Workbench、phpMyAdmin等),通常也可以在这些工具中直接更改密码。具体步骤可能因工具而异,但一般都会有“用户管理”或“用户账户”等选项,允许你编辑用户的密码。
  • 在更改密码后,请确保所有需要访问MySQL数据库的应用程序或脚本都已更新为新密码,以避免连接问题。

刷新权限

FLUSH PRIVILEGES

flush privileges;

  • 12
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值