mysql数据库的增、删、改、查

一、登录mysql数据库

数据库的基本结构

  • 结构: 库——表——数据
    mysql数据库的默认管理员是root

登录格式:

  • 没有密码时:mysql -u root
    没有密码登录
  • 第一次设置密码:mysqladmin -u root -p password ‘密码值’ (输入后,下一步直接回车即可)
    第一次设置密码
  • 有密码后登录为:mysql -u root -p (按照提示输入密码)或 mysql -u root -p密码值(直接登录)
    mysql -u root -p
    mysql -u root -p123.com
  • 非第一次修改密码:mysql -u root -p password(按照提示先输入旧密码,然后根据提示输入两次新密码)
    非第一次修改密码
    非第一次修改密码

二、退出与查看数据库及相关规则

所有的mysql的操作语句基本上都需要以 ’ ; '结束,但是也有少许不需要,但是最好还是养成习惯,(;与 , 要使用英文的)输入时不区分大小写,一般来说执行完命令后,会提示 “OK”的

  • 查看数据库服务的基本信息:
    msyql>status;
    status
    退出数据库:exit; 或 quit;
    exit
    quit

三、数据库中查看与创建库和表

命令格式:

***查看数据库中有那些库
mysql>show databases; 

***切换到指定的库中
mysql>use 库名;  

***查看当前库中有哪些表
mysql>show tables;  

***查看mysql库中指定表的数据结构
mysql>describe 库名.表名;  

***创建表
mysql>create table 库名.表名 (字段1名称 类型,字段2名称 类型,... primary key (主键名)); 

***删除指定表
mysql>drop table 库名.表名;

***删除指定库
mysql>drop database 库名; 

示例:

  • 查看当前数据库中存在那些库
    mysql>show databases;
    查看有那些库
  • 切换到指定库中
    mysql>use mysql;
    切换到指定库
  • 查看当前库有哪些表
    mysql>show tables;
    查看库中有哪些表
  • 查看表的结构
    mysql>describe user; (得先切换到指定库之后才能直接查看)
    mysql>describe mysql.user; (这个不需要切换到指定库,前面跟上表所在的库就可以)
    describe user;
    describe mysql.user;
  • 创建新的库
    mysql>create database aaa; (创建一个库叫aaa)
    创建一个新的库
  • 创建一个新的表
    mysql>create table aaa.abc (xm char(16) not null,nl char(12) default ’ ',sx char(10),yy char(10),primary key (xm));
    这里括号里的 char(16) 表示最多可以输入16个字符
    not null 表示不允许为空
    default ’ ’ 表示默认为空,但是如果插入数据的话指定了是多少,那么就是多少,只有在插入数据的时候不写,才会默认变成空(如果'20'那么就是默认为20,这里的什么也没有,所以是空)
    primary key (xm) 这里表示主键是xm,主键有唯一性并且不能为空,也就是说,xm的数据不能有重复的

    (写的过程中我的'老是变成’这个,所有的命令只要有'都是',不是‘这个,并且所有的标点符号都是英文的)
    创建一个新的表
    创建完可以使用describe查看表的结构,会显示表的基本信息
    查看表的结构
  • 删除指定表
    mysql>drop table aaa.abc;
    删除指定表
  • 删除库
    mysql>drop database aaa;
    删除指定库
    删除后会使用show databases; 查看会发现创建的库没有了
    查看

四、管理表中的数据

命令格式:

往表中插入数据
mysql>insert into 库名.表名 (字段1名称,字段2名称,...) values('字段1的值','字段2的值',...;
简化版:insert into 库名.表名 values('字段1的值','字段2的值',...);  
(这个是把字段隐藏了,写字段值的时候按表的数据结构的顺序写就行)(每个字段值都要加''
如:insert aaa.bbb (姓名,数学,计算机) values('李蔚','88','77');
即往aaa这个库中的bbb表中的字段 姓名,数学,计算机 里插入数据 李蔚 88 77

查询数据记录
mysql>select 字段1名称,字段2名称,... from 库名.表名 where 条件; (select * 表示查询全部,也可以根据条件查询)
如:select 姓名,数学,计算机 from aaa.bbb where 数学= '88';
即查询aaa这个库中bbb中数学成绩等于88 的数据,并且只显示字段 姓名,数学,计算机
    select  * from aaa.bbb; 
即查询aaa库中的bbb表中的所有数据记录

修改表中的数据
mysql>update 库名.表名 set 字段1名称=新值,字段2名称=新值... where 条件;
如: update  aaa.bbb set 计算机='80',数学='82' where 姓名='刘波';
即把aaa库中的bbb表中的 姓名是刘波  的数据记录的 计算机字段值改成 80 ,数学字段值改成 82

删除表中指定的数据
mysql>delete from 库名.表名 where 条件;
如: delete from aaa.bbb where 姓名='魏帅'; 
即删除aaa库中的bbb表中的姓名字段值是魏帅的所有数据

示例:

  • 往表中插入数据
    插入数据
  • 查询数据记录
    查询数据记录
    以条件查询
  • 修改表中的数据
    修改表中的数据
    再次查看,发现已经修改成功
    修改表中数据
  • 删除表中指定数据
    删除表中指定数据
    再次查看,发现已经删除成功

删除表中数据

五、数据库用户授权

  • 原因:Mysql数据库中的root账户拥有所有的库、表的所有权限(权限太高会产生安全风险)
  • 解决方案:创建一些低权限用户,让该账户只负责一部分的库,表的管理和维护

命令格式:

授予权限
mysql>grant 权限列表 on 库名.表名 to 用户名@指定的ip地址 identified by '密码值';
权限列表:select (查询)、  insert (插入)、update (修改)、delete (删除)、all(所有)等
库名.表名 针对指定的库和表,* 代表所有
用户名@指定的ip地址  用于指定用户名称和允许访问的客户端地址 (localhost就是本机)
identified  by '密码值'  设置用户连接mysql数据库时所用的密码
如:grant select on aaa.* to 'aaa'@'localhost' identified   by  '123456';
即授权一个用户名是aaa,允许从本机登录,对aaa库中的所有表有查询的权限,密码是123456

查看权限
mysql>show grants for 用户名@指定的ip地址;
如:show grants for boss@localhost;
即查看boss在本机的权限

取消权限
mysql>revoke 权限列表 on 库名.表名 from 用户名@指定的ip地址;
如:revoke all on aaa.* from boss@loaclhost;
即取消boss对aaa库中表的所有权限

示例:

  • 授予权限
    授予权限
  • 查看权限
    查看指定用户的权限
  • 取消权限
    在这里插入图片描述
    再次查看
    再次查看权限

猜你喜欢

转载自blog.csdn.net/rzy1248873545/article/details/110518619
今日推荐