MySQL数据库管理

查看数据库结构

查看数据库信息:

show databases;

重要的数据都放在mysql当中;注意结尾必须以;结尾
在这里插入图片描述
查看数据库中的表信息

USE 数据库名   ##进入数据库;结尾要加“;”

在这里插入图片描述
show tables; 查看数据库中的表的信息
在这里插入图片描述
查看有几个用户:

select user from user;

在这里插入图片描述
显示数据表的结构(字段)

  • Field:属性名称
    type:属性类型
    Null:属性是否为空
    Key:主键
    Default:默认规则
    Extra:扩展属性
describe [数据库名.] 表名

在这里插入图片描述

SQL语句概述

SQL语言:
●Structured Query Language的缩写,即结构化查询语言

●关系型数据库的标准语言

●用于维护管理数据库

  • 包括数据查询,数据更新,访问控制,对象管理等功能

SQL分类

  • DDL:数据定义语言
  • DML:数据操纵语言
  • DQL:数据查询语言
  • DCL:数据控制语言

创建数据库和表

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

●使用DDL语句新建库,表

创建数据库

create database 数据库名      create database(固定格式)

在这里插入图片描述

创建数据表

create table 表名 (字段定义…)
创建一个名为cai的表

mysql> create table cai (id int(3) not null primary key auto_increment,name varchar(10) not null,score decimal(5,2),address varchar(50) default '未知');

在这里插入图片描述

删除数据库和表

使用DDL语句删除库

删除指定的数据表

删除某个表一定要加绝对路径(哪个库下面的哪个表)

mysql> drop table score;

在这里插入图片描述

删除指定的数据库

Drop database 数据库名

mysql> drop database tian;       ##删除数据库名为tian的

在这里插入图片描述

管理表中的数据:

●DML语句用于对表中的数据进行管理

●包括的操作

  • INSERT:插入新数据
  • UPDATE:更新原有数据
  • DELETE:删除不需要的数据,删除数据的操作用delete

向数据表中插入新的数据记录

insert INTO 表名(字段1,字段2......)   ##固定格式,中间用逗号隔开
values(字段1的值,字段2的值....)   ##values对应的就是值

必须遵循顺序一致;字段1的名称对应字段1的值;数量相同;有多少个字段名称就需要对应多少个字段值;

mysql> insert into cai (id,name,score,address) values (2,'lisi',90.5,'hangzhou');
insert into 是固定格式;后面跟表名cai id的字段名对应后面的2;name对应lisi(字符集是需要加‘’的)

在这里插入图片描述
直接写字段值的方法
这种方法如果不加字段名;默认的就是所有字段;要一一对应,按照顺序写全

mysql> insert into cai values (3,'wangwu',70,'suzhou');

在这里插入图片描述
多行插入的方法

mysql> insert into cai (name,score,address) values ('zhaoliu',60,'wuxi'),('tiaqi',80,'default');
多行中间需要用“,”做分割;不设id是因为id的规则设置的是自增长

在这里插入图片描述
筛选
将超过80分以上的人筛选出来

mysql> select * from cai where score > 80;    ##where做条件判断

在这里插入图片描述
将分数大于80的数据生成一个新的表,表的名字为score

mysql> create table score as select * from cai where score > 80;  

as:将后面的显示的内容导入到新表中
在这里插入图片描述

修改,更新数据表中的数据记录

Update 表名 set 字段名1=1[,字段名2=2] where 条件表达式

将名字为tiaqi的地址改为guangzhou

mysql> update cai set address='guangzhou' where name='tiaqi';
cai:表名   address:要修改的内容   where:判断条件    当name=tiaqi

在这里插入图片描述

在数据库中删除指定的数据记录

Delete from 表名 where 条件表达式
将score表中的分数大于88.50的删除

mysql> delete from score where score = 88.50;

在这里插入图片描述
不带where条件的语句表示删除表中的所有记录

mysql> delete from score;    ##删除score表中的数据;但是表还在

在这里插入图片描述
●DQL是数据查询语句,只有select

●用于从数据表中查找符合条件的数据记录

●查询时可不指条件

Select 字段名1,字段名2       from表名

在这里插入图片描述
查询所有数据:

Select * from 表名

在这里插入图片描述

数据表的高级操作

清空表

mysql> truncate table score;

在这里插入图片描述
临时表
●临时建立的表,用于保存一些临时数据,不会长期存在,当断开连接后,表就不存在了;
●这边的约束是在结尾定义的,前面要加“,”

这张表默认的字符集设定是utf8;写在括号外面是对整张表的一个设定

mysql> create temporary table cai_info (id int(4) not null auto_increment,name varchar(10) not null,hobby varchar(10) not null,primary key(id))engine=innodb default charset=utf8;

这时候用命令查看表的结构;发现表的结构设置完成
在这里插入图片描述
这时给name和hobby字段设置数据

mysql> insert into cai_info (name,hobby) values ('tom','youyong');

查看表数据时,是有内容的
在这里插入图片描述
但是查看表的数量时,会显示没有这个表
在这里插入图片描述
当退出表后,再次连接后发现,表的内容消失了,也没有这个表
在这里插入图片描述
克隆表
LIKE方法:
第一步:复制表结构:
将cai表的结构复制到new表当中

mysql> create table new like cai;

在这里插入图片描述
第二步是将数据导入到新表中
将cai表中的数据导入到new表中

mysql> insert into new select * from cai;

在这里插入图片描述

数据库用户授权

●DCL语句设置用户权限(用户不存在时,则新建用户)
●Grant

  • 当用户存在时,直接提权
  • 当用户不存在时,先创建用户,再提权。

GRANT 权限列表 ON 数据库名.表名 TO 用户名@来源地址 [ IDENTIFIED BY ‘密码’]
设置jerry用户从localhost主机,使用密码123456去登录

mysql> grant all on *.* to 'jerry'@'localhost' identified by '123456';

在这里插入图片描述

查看用户的权限

show grants for 用户名@来源地址
查看jerry用户的权限

mysql> show grants for 'jerry'@'localhost';

在这里插入图片描述

撤销用户权限

Revoke 权限列表 on 数据库名.表名 from 用户名@来源地址
删除jerry用户的权限

mysql> revoke all on *.* from 'jerry'@'localhost';

再次查看时发现jerry用户的权限没有了
在这里插入图片描述

免密登录数据库配置方法

添加tom用户使用123456密码从主机为localhost登录数据库
mysql> grant all privileges on . to ‘tom’@‘localhost’ identified by ‘123456’;
在这里插入图片描述
假如这时忘记密码,想免密登录的方法:
1.修改/etc/my.cnf的配置文件,在[mysqld]底行加入
skip-grant-tables ##跳过表的加载
在这里插入图片描述
这时用tom身份去登陆,不需要输入密码,直接回车就可以了,root用户去登录也是不需要密码的
在这里插入图片描述

修改用户登陆的密码

这边修改root用户登录的密码为123456
Authentication_string:保存密码字段

mysql> update mysql.user set authentication_string=password('123456') where user='root';  

Query OK, 1 row affected, 1 warning (0.01 sec)    
Rows matched: 1  Changed: 1  Warnings: 1

mysql> flush privileges;                ##刷新数据库
Query OK, 0 rows affected (0.00 sec) 
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值