MySQL数据库管理

文章目录

  • 查看数据库结构
  • SQL语句概述
  • 创建数据库和表
    • 创建数据库
    • 创建数据表
  • 删除数据库和表
    • 删除指定的数据表
    • 删除指定的数据库
  • 管理表中的数据:
    • 修改,更新数据表中的数据记录
    • 在数据库中删除指定的数据记录
  • 数据表的高级操作
  • 数据库用户授权
    • 查看用户的权限
    • 撤销用户权限
  • 免密登录数据库配置方法
    • 修改用户登陆的密码

查看数据库结构

查看数据库信息:

show databases;

重要的数据都放在mysql当中;注意结尾必须以;结尾
MySQL数据库管理_第1张图片
查看数据库中的表信息

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

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

select user from user;

MySQL数据库管理_第3张图片
显示数据表的结构(字段)

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

MySQL数据库管理_第4张图片

SQL语句概述

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

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

●用于维护管理数据库

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

SQL分类

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

创建数据库和表

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

●使用DDL语句新建库,表

创建数据库

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

MySQL数据库管理_第5张图片

创建数据表

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 '未知');

MySQL数据库管理_第6张图片

删除数据库和表

使用DDL语句删除库

删除指定的数据表

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

mysql> drop table score;

MySQL数据库管理_第7张图片

删除指定的数据库

Drop database 数据库名

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

MySQL数据库管理_第8张图片

管理表中的数据:

●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数据库管理_第9张图片
直接写字段值的方法
这种方法如果不加字段名;默认的就是所有字段;要一一对应,按照顺序写全

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

MySQL数据库管理_第10张图片
多行插入的方法

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

MySQL数据库管理_第11张图片
筛选
将超过80分以上的人筛选出来

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

MySQL数据库管理_第12张图片
将分数大于80的数据生成一个新的表,表的名字为score

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

as:将后面的显示的内容导入到新表中
MySQL数据库管理_第13张图片

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

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

将名字为tiaqi的地址改为guangzhou

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

MySQL数据库管理_第14张图片

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

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

mysql> delete from score where score = 88.50;

MySQL数据库管理_第15张图片
不带where条件的语句表示删除表中的所有记录

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

MySQL数据库管理_第16张图片
●DQL是数据查询语句,只有select

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

●查询时可不指条件

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

MySQL数据库管理_第17张图片
查询所有数据:

Select * from 表名

MySQL数据库管理_第18张图片

数据表的高级操作

清空表

mysql> truncate table score;

MySQL数据库管理_第19张图片
临时表
●临时建立的表,用于保存一些临时数据,不会长期存在,当断开连接后,表就不存在了;
●这边的约束是在结尾定义的,前面要加“,”

这张表默认的字符集设定是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;

这时候用命令查看表的结构;发现表的结构设置完成
MySQL数据库管理_第20张图片
这时给name和hobby字段设置数据

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

查看表数据时,是有内容的
MySQL数据库管理_第21张图片
但是查看表的数量时,会显示没有这个表
MySQL数据库管理_第22张图片
当退出表后,再次连接后发现,表的内容消失了,也没有这个表
MySQL数据库管理_第23张图片
克隆表
LIKE方法:
第一步:复制表结构:
将cai表的结构复制到new表当中

mysql> create table new like cai;

MySQL数据库管理_第24张图片
第二步是将数据导入到新表中
将cai表中的数据导入到new表中

mysql> insert into new select * from cai;

MySQL数据库管理_第25张图片

数据库用户授权

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

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

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

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

MySQL数据库管理_第26张图片

查看用户的权限

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

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

MySQL数据库管理_第27张图片

撤销用户权限

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

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

再次查看时发现jerry用户的权限没有了
MySQL数据库管理_第28张图片

免密登录数据库配置方法

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

修改用户登陆的密码

这边修改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) 

你可能感兴趣的:(Mysql数据库,数据库)