一、登录mysql数据库
数据库的基本结构
- 结构:
库——表——数据
mysql数据库的默认管理员是root
登录格式:
- 没有密码时:mysql -u root
第一次设置密码:mysqladmin -u root -p password ‘密码值’ (输入后,下一步直接回车即可)
有密码后登录为:mysql -u root -p (按照提示输入密码)
或 mysql -u root -p密码值(直接登录)
非第一次修改密码:mysql -u root -p password(按照提示先输入旧密码,然后根据提示输入两次新密码)
二、退出与查看数据库及相关规则
所有的mysql的操作语句基本上都需要以 ’ ; '结束,但是也有少许不需要,但是最好还是养成习惯,(;与 , 要使用英文的)
输入时不区分大小写,一般来说执行完命令后,会提示 “OK”的
- 查看数据库服务的基本信息:
msyql>status;
退出数据库: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; (这个不需要切换到指定库,前面跟上表所在的库就可以)
创建新的库
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库中表的所有权限
示例:
- 授予权限
查看权限
取消权限
再次查看