Mysql之基本操作(库,表,用户管理)

news/2024/10/6 3:46:01/文章来源:https://www.cnblogs.com/leikj/p/18286010

库中有表,表中有数据

一、查看帮助信息

点击查看代码
mysql> help create
//help 后面跟上具体命令可以查看帮助

二、查看支持的字符集

点击查看代码
show charset;
//查看支持的字符集  默认拉丁文字 latin1utf8     | UTF-8 Unicode   //阉割版的
utf8mb4  | UTF-8 Unicode   //真实的版本`修改字符集`
vim /etc/my.cnf
[mysqld]
character-set-server=utf8mb4show variables like 'char%';
//查看当前默认字符

三、管理数据库

1.创建数据库

点击查看代码
create database 数据库名称;例: create database db1;

2.修改数据库

当建立好数据库后可以使用ALTER命令修改。(一般不会进行修改)

3.删除数据库

点击查看代码
drop database 数据库名称;例: drop database db1;

4.查看数据库

  • 查看目前所有数据库
点击查看代码
show databases; 
  • 查看数据库的详细信息
点击查看代码
show create database 数据库名字;   例:show create database db1;

5.切换数据库

点击查看代码
use 数据库名称;例: use db1;

四、数据类型

Mysql支持多种内置数据类型

  • 数值类型
  • 日期/时间类型
  • 字符串(字符)类型

1.数值型

数值型分为:整数型和小数型(浮点型、定点型)

整数型

  • tinyint(m) 1个字节 范围(-128~127) 有一个正或负的表示符
  • smallint(m) 2个字节 范围(-32768~32767)
  • mediumint(m) 3个字节 范围(-8388608~8388607)
  • int(m) 4个字节 范围(-2147483648~2147483647)
  • bigint(m) 8个字节 范围(+-9.22*10的18次方)

上述数据类型,如果加修饰符unsigned后,则最大值翻倍。 如:tinyint unsigned的取值范围为(0~255)

浮点型

  • float(m,d) 单精度浮点型 8位精度(4字节) m总个数,d小数位。 注意: 小数点不占用总个数
  • double(m,d) 双精度浮点型16位精度(8字节) m总个数,d小数位。 注意: 小数点不占用总个数

设一个字段定义为float(6,3),如果插入一个数123.45678,实际数据库里存的是123.457,但总个数还以实际为准,即6位

2,字符型

  • char(n) 固定长度,最多255个字符,注意不是字节
  • varchar(n) 可变长度,最多65535个字符
  • text 可变长度,最多65535个字符
  • tinytext 可变长度,最多255个字符
  • mediumtext 可变长度,最多2的24次方-1个字符
  • longtext 可变长度,最多2的32次方-1个字符
  • BINARY(M) 固定长度,可存二进制或字符,长度为0-M字节
  • VARBINARY(M) 可变长度,可存二进制或字符,允许长度为0-M字节

char和varchar的比较:

1.char(n) 若存入字符数小于n,则以空格补于其后,查询之时再将空格去掉,所以char类型存储的字符串末尾不能有空格,varchar不限于此
2.char(n) 固定长度,char(4)不管是存入几个字符,都将占用4个字节,varchar是存入的实际字符数+1个字节(n< n>255),所以varchar(4),存入3个字符将占用4个字节
3.char类型的字符串检索速度要比varchar类型的快

3.修饰符

作用:修饰数据

适用所有类型的修饰符:

名称 含义
NULL 数据列可包含NULL值,默认值
NOT NULL 数据列不允许包含NULL值,*为必填选项
DEFAULT 默认值
PRIMARY KEY 主键,所有记录中此字段的值不能重复,且不能为NULL ,一张表中只有一个主键
UNIQUE KEY 唯一键,所有记录中此字段的值不能重复,但可以为NULL
CHARACTER SETname 指定一个字符集

适用数值型的修饰符:

名称 含义
AUTO_INCREMENT 自动递增,适用于整数类型
UNSIGNED 无符号

五、表操作

1.新建表

点击查看代码
新建表,先要`指定数据库`
use  数据库名
create table 表名 (字段1 数据类型 [修饰符],字段2 数据类型 [修饰符], .... )

示例1:

点击查看代码
use db1;
create table student (id int,name varchar(10),gender char(2));

示例2:

点击查看代码
use db2;
create table student (id smallint unsigned primary key auto_increment, name varchar(10), age tinyint unsigned,gender enum('M','F') default 'M' );
//两种写法,可写在一行,也可分行写unsigned:取消负数
primary  key:主键
auto_increment: 自增长
enum('M','F'):多选 
default 'M':默认值为 M

2.查看表结构(字段)

  • 查看表结构
点击查看代码
desc 表名;
  • 显示当前数据库下的所有表
点击查看代码
show tables;
  • 查看表中的所有数据
点击查看代码
select * from 表名;

3.修改表结构(一般不轻易修改)

alter添加字段

示例:

点击查看代码
mysql [db1]> alter  table  student  add   phone  vachar(11) not null ;命令字  命令字    表名   关键字 字段名称     字段属性 

change修改字段名称

示例:

点击查看代码
alter table student change phone mobile varchar(11) not null;

drop删除字段

示例:

点击查看代码
alter table student drop mobile;

六、用户管理

1.存放用户信息的表

mysql的用户,存放在mysql数据库中的user表中

点击查看代码
select user,host,authentication_string from mysql.user;//root@localhost  默认存在的,并且只能本地登录无法远程登录

2.查看当前使用用户

点击查看代码
select user();

3.新建用户

语法:

点击查看代码
create user  '用户名'@'主机地址'  identified by '密码';'用户名':指定将创建的用户名
'主机地址':指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式,本地用户可用localhost,允许任意主机登录可用通配符%

示例:

点击查看代码
create user 'kk'@'localhost' identified by '123123';

4.修改用户名称

语法:

点击查看代码
rename user '旧名字' to '新名字';

示例:

点击查看代码
rename user 'kk'@'localhost' to 'lkk'@'localhost';

5.删除用户

语法:

点击查看代码
drop  user '用户名'@'主机地址';

示例:

点击查看代码
drop user 'test'@'192.168.204.%';

6.修改用户密码

密码有安全性策略可以修改取消:

点击查看代码
set global validate_password_policy=0;
set global validate_password_length=1;
//修改密码策略

语法:

点击查看代码
set password = '密码';             //给当前用户修改密码
set password for '用户' = '密码';  //给其他用户修改密码

示例:

点击查看代码
set password = '123123';          //把当前用户密码修改为123123
set password for 'lkk'@'localhost' = 'abc123';  //把用户lkk密码修改为abc123

7.破解密码

修改配置文件

点击查看代码
vim /etc/my.cnf
[mysqld]
skip-grant-tables 
//数据库的单用户模式   此模式下权限受到限制,很多功能无法使用, 除了破解密码不要加此项
skip-networking  
//MySQL8.0不需要//然后清空密码
update mysql.user set authentication_string='' where user='root' and host='localhost';
//注意刷新后生效
flush privileges;

8.远程登录

点击查看代码
mysql -utest -h192.168.91.100   -p'密码'  -P端口号vim /etc/my.cnf
[mysqld]
port = 9527systemctl restart   mysqld客户机
mysql -utest -h192.168.91.100   -p'Admin@123'  -P9527

9.用户权限管理

权限类别:

  • 管理类
  • 程序类
  • 数据库级别
  • 表级别
  • 字段级别

库和表级别:针对 DATABASE、TABLE

  • ALTER
  • CREATE
  • CREATE VIEW
  • DROP INDEX
  • SHOW VIEW
  • WITH GRANT OPTION:能将自己获得的权限转赠给其他用户

数据操作

  • SELECT
  • INSERT
  • DELETE
  • UPDATE

查看权限

点击查看代码
show grants for '用户名'@'主机地址';
//USAGE权限只能用于数据库登陆,不能执行任何操作;USAGE权限不能被回收,即 REVOKE 不能删除用户。

授予权限

GRANT语句:专门用来设置数据库用户的访问权限。当指定的用户名不存在时,GRANT语句将会创建新的用户;当指定的用户名存在时, GRANT 语句用于修改用户信息。

语法:

点击查看代码
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'来源地址' [IDENTIFIED BY '密码'];----------------------------------------------------------------------------------------------------------
#权限列表:用于列出授权使用的各种数据库操作,以逗号进行分隔,如“select,insert,update”。使用“all”表示所有权限,可授权执行任何操作。
#数据库名.表名:用于指定授权操作的数据库和表的名称,其中可以使用通配符“*”。例如,使用“kgc.*”表示授权操作的对象为 kgc数据库中的所有表。
#'用户名@来源地址':用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里连接。来源地址可以是域名、IP地址,还可以使用“%”通配符,表示某个区域或网段内的所有地址,如“%.kgc.com”、“192.168.80.%”等。
#IDENTIFIED BY:用于设置用户连接数据库时所使用的密码字符串。在新建用户时,若省略“IDENTIFIED BY”部分,则用户的密码将为空。
----------------------------------------------------------------------------------------------------------

示例:

点击查看代码
grant all on hellodb.students to 'lkk'@'localhost';
//给用户lkk授权,可对hellodb数据库中的students表执行任何操作GRANT ALL  ON *.* TO 'cxk'@'%' IDENTIFIED BY '123456';
//一步完成建立用户并授权
//注意!8.0版本取消此操作,必须先建用户,再授权

撤销权限

语法:

点击查看代码
REVOKE 权限列表 ON 数据库名.表名 FROM 用户名@来源地址;

示例:

点击查看代码
revoke all on *.* from 'cxk'@'%';

远程连接图形界面

点击查看代码
grant all privileges on *.* to test@'192.168.%.%' identified by '123123';
flush privileges;

总结

创建数据库 create database 数据库名称;
删除数据库 drop database 数据库名称;
查看目前所有数据库 show databases;
查看数据库的详细信息 show create database 数据库名称;
切换数据库 use 数据库名称;
新建表 ①use  数据库名 ②create table 表名 (字段1 数据类型,字段2 数据类型, .... )
显示当前数据库下的所有表 show tables;
查看表结构 desc 表名;
查看表中的所有数据 select * from 表名;
添加表的字段 alter table  表名 add  字段名 数据类型 [修饰符];
在表中插入数据 insert 表名 (字段1,字段2...) values (字段1的值,字段2的值...)
更新数据 update  表名   set  字段='修改的值' [,字段2='修改的值2']  where 指定条件;
删除数据 delete  from  表名 where  指定条件;
用户管理
查看当前使用用户 select user();
新建用户 create user  '用户名'@'主机地址'  identified by '密码';
修改用户名称 rename  user  '旧名字'  to  '新名字';
删除用户 drop  user  '用户名'@'主机名';
查看权限 show  grants  for  '用户名'@'主机地址';
授予权限 grant 权限列表 on 数据库名.表名 to  '用户名'@'来源地址' [identified by '密码'];
撤销权限 revoke权限列表 on 数据库名.表名 from '用户名'@'来源地址';

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/738808.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

海康SDK报错Structure.getFieldOrder()

就是你调用的这个结构体以及其引用的其他结构体,可能没有getFieldOrder()的方法,你只要按照顺序把他填上去就好了。比如 public static class NET_DVR_TIME extends Structure {//校时结构参数public int dwYear; //年public int dwMonth; //月public int dwDa…

数字证书的应用场景有哪些?

在当今数字化飞速发展的时代,数字证书作为保障信息安全和身份认证的重要工具,发挥着越来越关键的作用。那么,数字证书究竟在哪些场景中得到了广泛的应用呢? 一、电子商务领域 在电子商务交易中,数字证书确保了交易双方的身份真实性和交易数据的完整性、保密性。例如,当消…

jenkins引用多个maven配置

普通项目都是用maven打包,有个特殊的项目是用到单独本地的maven库。 jenkins配置maven构建选项选择对应的maven名称即可本帖子也是纯手工制作,转载请标明出处-----------burukku(づ。◕ᴗᴗ◕。)づ

Java EE改名Jakarta EE,jakarta对程序的影响

Spring Framework作为Java领域最为流行的框架,有非常庞大的用户群体和项目应用,Java开源框架里绝对的TOP1。我们首先看看Java EE更名Jakarta对Spring Framework的影响。Spring Framework 6正式发布,携JDK 17&Jakarta EE开启新篇章,Spring Framework为何一跃将JDK的base…

硬盘二次开盘数据恢复

硬盘二次开盘数据恢复是一个相对复杂且风险较高的过程,通常发生在首次开盘数据恢复失败或未能完全恢复数据的情况下。 一、二次开盘的定义与背景 定义:硬盘二次开盘指的是在硬盘首次开盘数据恢复失败后,再次对硬盘进行开盘操作以尝试恢复数据的过程。 背景:硬盘开盘通常是因…

记一次aspnetcore发布部署流程初次使用k8s

主题: aspnetcorewebapi项目,提交到gitlab,通过jenkins(gitlab的ci/cd)编译、发布、推送到k8s。 关于gitlab、jenkins、k8s安装,都是使用docker启动服务。 首先新建一个项目,为了方便浏览就把swaggerr非开发环境不展示去掉 下面就是需要准备Dockerfile和k8s.yaml文件,这里…

硬盘数据误删格式化数据恢复

立即停止使用硬盘 在意识到硬盘数据被误删或格式化后,应立即停止使用该硬盘。任何新的数据写入都可能覆盖原始数据,从而降低恢复的可能性。 数据恢复 数据恢复软件是恢复误删或格式化数据的有效手段。以下是一些知名的数据恢复软件及其使用方法: 安装与选择模式:在格式化的…

bev_feature与真实坐标的关系

在生成 BEV feature 时的 scatter: nx = int((point_cloud_range[3]-point_cloud_range[0])/voxel_size[0])# Create the canvas for this sample canvas = torch.zeros(self.in_channels,self.nx * self.ny,dtype=voxel_features.dtype,device=voxel_features.device)# coors[…

【设计模式(六)】结构性模式--代理模式

结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象结构型模式比类结构型模式具有更大…

面试必会之事物控制

01- 什么是事务 ? 事务就是用户定义的一系列数据库操作,这些操作可以视为一个完成的逻辑处理工作单元,要么全部执行,要么全部不执行,是不可分割的工作单元 02- 事务的特性有哪些 ?原子性(Atomicity):事务是不可分割的最小操作单元,要么全部成功,要么全部失败。一致性…

字节面试 用double,1.0-0.9的结果不是0.1,为什么?

让我详细解释一下为什么 1.0 - 0.9 在二进制中不能精确表示。 1.0 的二进制表示 1.0 在二进制中可以精确表示。它的二进制表示为: 1.0 = 1.0 (二进制)0.9 的二进制表示 0.9 是一个无法在二进制中精确表示的小数。二进制小数是通过求和 1/2, 1/4, 1/8, 1/16, ... 等幂次表示的。…

关于oracle中的undo

一,undo介绍 二,undo视图说明 三,常用脚本说明 四.释放UNDO表空间 五.参考 一,undo介绍 Oracle中 undo的作用主要有两个:第一是回滚事务,第二是产生一致性读。同时也衍生出了一些新的 功能,比如Flashback query。传统的 undo是通过undo segment 来管理的,我们看下面的示…