mysql 数据库 增删改查 基本操作

目录

一   SQL  详细介绍

(一)SQL 分类

(二) SQL 语言规范

(三)数据库对象和命名

1,数据库的组件(对象):

2,命名规则:

(四) SQL语句分类

二   查看数据库

(一)查看数据库的基本命令

1,show databases

2, use 数据库名

3, show tables

(二)表 抬头介绍

(三)type 数据类型   介绍

1,常用的数据类型:

          2, 注意事项

3   char 和 varchar 区别

4  选择正确的数据类型对于获得高性能至关重要,三大原则

5   修饰符

5.1  适用所有类型的修饰符

5.2  适用数值型的修饰符

三  对库和表的操作

(一) 创建数据库

(二)创建表

(三)删表

(四)删库

四  对 数据的操作

(一)加入数据

(二)查看数据

(三) 更新数据 (修改)

(四)  删除数据

(五)select  高级使用

1, 查询所有 

2,查询指定列

3,  查指定 行

4,  查看前3行

5,  跳过前三行的  查看后两行

6, 详细显示(一一排列)

五    数据库高级操作

(一)drop  truncate delete 几个删除的区别

1,drop

2, truncate

3  delete

4   三种删除应用场景

5 三种删除比较

(二)    临时表

1,  创建临时表

2,给临时表加 数据

3  查看临时表数据

(三)  克隆表

 1, 方法1

2, 方法2

(四) 修改表名  及列相关

1,修改表名

2,修改列名 列属性(生产环境不建议)

3,添加列

4  删除列

六  数据库用户管理

(一) 新建用户

1,通式

2  具体解释

2.1  '用户名'

2.2   '来源地址'

2.3 ‘密码'

3 创建用户 实际操作

(二)查看用户信息

(三)重命名指定

(四)删除用户

(五)修改当前密码

(六)修改其他用户密码

(七)忘记root密码的解决办法

七   数据库用户授权

(一) 授权模式

(二) 格式

1, 通式

2,格式具体解释

(三)all privilege

(四)实例授权

1  实例授权1 权限全开

2  实例授权2 来源地址

(五)查看权限

(六)撤销权限

1, 通式

2, 实例


一   SQL  详细介绍

(一)SQL 分类

  • 数据库:database

  • 表:table,行:row 列:column

  • 索引:index

  • 视图:view

  • 存储过程:procedure

  • 存储函数:function

  • 触发器:trigger

  • 事件调度器:event scheduler,任务计划

  • 用户:user

  • 权限:privilege

(二) SQL 语言规范

  • 在数据库系统中,SQL 语句不区分大小写,建议用大写

  • SQL语句可单行或多行书写,默认以 " ; " 结尾

  • 关键词不能跨多行或简写

  • 用空格和TAB 缩进来提高语句的可读性

  • 子句通常位于独立行,便于编辑,提高可读性

(三)数据库对象和命名

1,数据库的组件(对象):

数据库、表、索引、视图、用户、存储过程、函数、触发器、事件调度器等

2,命名规则:

必须以字母开头,后续可以包括字母,数字和三个特殊字符(# _ $)

不要使用MySQL的保留字,tabble select show databases

(四) SQL语句分类

  • DDL: Data Defination Language 数据定义语言

CREATE,DROP,ALTER

  • DML: Data Manipulation Language 数据操纵语言

INSERT,DELETE,UPDATE

软件开发:CRUD

  • DQL:Data Query Language 数据查询语言

SELECT

  • DCL:Data Control Language 数据控制语言

GRANT,REVOKE

  • TCL:Transaction Control Language 事务控制语言

COMMIT,ROLLBACK,SAVEPOINT

二   查看数据库

(一)查看数据库的基本命令

1,show databases

查看 数据库(有啥库)

2, use 数据库名

去到  指定的库

3, show tables

看有哪些表

4  describe  表名  (desc)

看表的属性

(二)表 抬头介绍

Field:字段名称
type:数据类型
Null :是否允许为空
Key :主键
Type:数据类型
Null :是否允许为空
key :主键
Default :默认值
Extra :扩展属性,例如:标志符列(标识了种子,增量/步长)1 2
 

(三)type 数据类型   介绍

1,常用的数据类型:

int:                 整型                                    用于定义整数类型的数据
float:              单精度浮点4字节32位        准确表示到小数点后六位        
double:           双精度浮点8字节64位
char:               固定长度的字符类型           用于定义字符类型数据。 20字节  4 
varchar:          可变长度的字符类型                               20   4 
text:                文本
image:            图片
decimal(5,2):  5个有效长度数字,小数点后面有2位        指定长度数组 

 

 2, 注意事项

2.1Char如果存入数据的实际长度比指定长度要小,会补空格至指定长度,如果存入的数据的实际长度大于指定长度,低版本会被截取,高版本会报错

2.2主键是唯一的,但主键可以由多个字段构成

2.3varchar(50) 能存放几个 UTF8 编码的汉字?

mysql 5.0以上版本 varchar(50) 指的是50字符,无论存放的是数字、字母还是 utf8 编码的汉字,都可以存放50个

3   char 和 varchar 区别

char 设定20字节 放4字节存储 占用20字节

varchar 设定20字节 放4字节存储 占用4字节

char : 搜索反应速度快 但是占空间

varchar : 不占用磁盘空间 搜索反应速度慢

4  选择正确的数据类型对于获得高性能至关重要,三大原则

  1. 更小的通常更好,尽量使用可正确存储数据的最小数据类型

  2. 简单就好,简单数据类型的操作通常需要更少的CPU周期

  3. 尽量避免NULL,包含为NULL的列,对MySQL更难优化

5   修饰符

5.1  适用所有类型的修饰符
名称含义
NULL数据列可包含NULL值,默认值
NOT NULL数据列不允许包含NULL值,*为必填选项
DEFAULT默认值
PRIMARY KEY主键,所有记录中此字段的值不能重复,且不能为NULL
UNIQUE KEY唯一键,所有记录中此字段的值不能重复,但可以为NULL
CHARACTER SETname 指定一个字符集
5.2  适用数值型的修饰符
名称作用
AUTO_INCREMENT自动递增,适用于整数类型
UNSIGNED无符号
int(4) zerofill表示若数值不满4位数,则前面用"0"填充,例0001
 

三  对库和表的操作

(一) 创建数据库

(二)创建表

创建一个  叫排名的表   表属性:   id为整数 且不能为空  且是唯一  名字15个字节以内  武力值指定为5位有效数字(小数点后有两位)

(三)删表

drop table 表名

delete from 表名

(四)删库

drop database 数据库名

小伙子思想很危险!

四  对 数据的操作

(一)加入数据

插入数据   insert into

注意 values 中 写 字符串要加单引号 数字可以不加单引号

要写 PASSWD('123456') 这样密码就是加密的

(二)查看数据

select

(三) 更新数据 (修改)

update

(四)  删除数据

delete from 表名 where(指定)

(五)select  高级使用

1, 查询所有 

select * from paiming;

2,查询指定列

3,  查指定 行

4,  查看前3行

5,  跳过前三行的  查看后两行

6, 详细显示(一一排列)

注意  此处无 分号

五    数据库高级操作

(一)drop  truncate delete 几个删除的区别

1,drop

drop table table_name
1)属于DDL
2)不可回滚(无法恢复)
3)不可带where
4)表内容和结构删除
5)删除速度快

2, truncate

1)属于DDL
2)不可回滚
3)不可带where
4)表内容删除
5)删除速度快
 

3  delete

1)属于DML
2)可回滚(可恢复)
3)可带where
4)表结构在,表内容要看where执行的情况
5)册删除速度慢,需要逐行删除
delete :比如有4 条数据 删了后 id 从5开始

4   三种删除应用场景

不再需要一张表的时候,用drop
想删除部分数据行时候,用delete,并且带上where子句
保留表而删除所有数据的时候用truncate

 

5 三种删除比较

速度
drop> truncate > delete
安全性
delete 最好
 

(二)    临时表

(放在内存中的  退出就没了)且使用SHOWTABLES命令是看不到创建的临时表

1,  创建临时表

 解释: 创建一个叫  魅力的临时表格  表格属性为   id 6位数 且前五位自动补0  且唯一  且自动递增

             名字  20字节 且不为空   身份证18位  且不为空且唯一    美貌值 2位数

2,给临时表加 数据

3  查看临时表数据

这边可以看到  在给临时表加数据的时候  没有输入id  但是表格自动生成了 因为我们写了auto_increment

(三)  克隆表

 1, 方法1

克隆表格属性和 表格数据

create table yyy2 like yyy;                  #复制格式,通过LIKE方法,复制yyy表结构生成yyy2表
insert into yyy2 select * from yyy;      #备份内容

2, 方法2

 表格属性带不过来    只会克隆表格里的数据

克隆表,将数据表的数据记录生成到新的表中
CREATE TABLE test02 (SELECT * from test);   #复制test 表数据到test02中

(四) 修改表名  及列相关

1,修改表名

ALTER TABLE 旧表名 RENAME 新表名;

2,修改列名 列属性(生产环境不建议)

修改字段(列)名,添加唯一键
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key];
 

3,添加列

ALTER TABLE 表名 ADD 新列名 属性

在加入  新列  时    可以看到虽然没填数据   全部会显现默认的数据

4  删除列


ALTER TABLE 表名 DROP 字段名;

六  数据库用户管理

(一) 新建用户

1,通式

CREATE USER '用户名'@'来源地址' [IDENTIFIED BY [PASSWORD] '密码'];
 

2  具体解释

2.1  '用户名'

指定将创建的用户名

2.2   '来源地址'

指定新创建的用户可在哪些主机上登录,可使用IP地址、网段、主机名的形式,本地用户可用localhost,允许任意主机登录   可用通配符%

2.3 ‘密码'

若使用明文密码,直接输入'密码',插入到数据库时由Mysql自动加密;
若使用加密密码,需要先使用SELECT PASSWORD('密码');获取密文,再在语句中添PASSWORD '密文';
若省略“IDENTIFIED BY"部分,则用户的密码将为空(不建议使用)

3 创建用户 实际操作

3.1 获取密码密文 注意加 单引号  不然报错

3.2 创建用户

(二)查看用户信息

创建后的用户保存在mysql 数据库的user表里
SELECT User,authentication_string,Host from user;


 

(三)重命名指定

RENAME USER 'zhangsan'@'localhost' TO 'lisi'@'localhost';

(四)删除用户

DROP USER 'lisi'@'localhost' ;

(五)修改当前密码

SET PASSWORD = PASSWORD('abc123');

(六)修改其他用户密码

SET PASSWORD FOR 'user1'@'localhost' = PASSWORD('abc123T');
 

(七)忘记root密码的解决办法

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;

1,在mysql 数据库配置文件  加入这一行 (类似单机模式  其他时候都把他去掉,只有破解密码时需要)

2, 重启 mysql  可以直接登录 不需要密码

3,然后使用SQL语句修改密码  并刷新权限

4,记得重新进配置文件  删除刚刚加的一行  skip-grant-tables 

5  , 再次登录  发现不需要密码

七   数据库用户授权

(一) 授权模式

1,创建用户 再去定义授权 给数据库 操作权限 来源地址(登录)

2,直接 创建 用户 授权 来源地址 做用户授权

(二) 格式

1, 通式

grant 提权
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'来源地址' [IDENTIFIED BY '密码'];

2,格式具体解释

#权限列表:用于列出授权使用的各种数据库操作,以逗号进行分隔,如“select, insert, 
update”。使用"all"表示所有权限,可授权执行任何操作。

#数据库名.表名:用于指定授权操作的数据库和表的名称,其中可以使用通配符"*"。
例如,使用“kgc.*"表示授权操作的对象为school数据库中的所有表。

#'用户名@来源地址':用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里连接。来源地址可以是域名、IP地址,还可以使用“%”通配符,表示某个区域或网段内的所有地址,如“%.xyw.com"、“192.168.80.%”等。

#IDENTIFIED BY:用于设置用户连接数据库时所使用的密码字符串。
在新建用户时,若省略“IDENTIFIED BY"部分,则用户的密码将为空。
 

(三)all privilege

all privilege权限如下:

insert(插入数据)
select (查询数据)
update (更新表的数据)
delete(删除表中数据)
create (创建库,表)
drop(删除库,表)
refernces
index(建立索引)
alter(更改表属性)
create temp orary tableslock tables (锁表)
execute
create view (创建视图)
show view(显示视图)
create routine(创建存储过程)
alter routine(修改存储过程)
event(事件)
trigger on(创建触发器)

(四)实例授权

1  实例授权1 权限全开

授权 wyq 所有权限 ky35库下所有表 登录来源只能为 本机

flush privileges;    #刷新权限
 

登录wyq 账户  

权限都有  可删可查

2  实例授权2 来源地址

授权 guozi 看的权限 ky35库下所有表 登录来源只能为 192.168.217 网段

 flush privileges;    #刷新权限
 

授权 guozi 看的权限 ky35库下所有表 登录来源只能为任意网段

flush privileges;    #刷新权限
 

使用连接测试  成功

(五)查看权限

#USAGE权限只能用于数据库登陆,不能执行任何操作;

USAGE权限不能被回收,即REVOKE不能删除用户。
 

(六)撤销权限

1, 通式

REVOKE 权限列表 ON 数据库名.表名 FROM 用户名@来源地址;

2, 实例

可以先查看权限  复制下面这一行 (不复制 grant 把 to 改成from)

flush privileges;    #刷新权限

可以看到权限被移除  

#USAGE权限只能用于数据库登陆,不能执行任何操作;

USAGE权限不能被回收,即REVOKE不能删除用户。

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

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

相关文章

使用Python查找字符串中包含的多个元素

目录 一、引言 二、基本字符串操作 使用in关键字查找子字符串 使用循环和条件判断查找多个子字符串 三、使用正则表达式进行高级搜索 导入re模块 使用re.search()查找单个模式 使用re.findall()查找多个模式 四、案例与代码 五、优化与扩展 六、总结 一、引言 在Py…

【5G NB-IoT NTN】3GPP R17 NB-IoT NTN介绍

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…

20万买新能源,除了烂大街的车,还可以选“精而美”

美”文 | AUTO芯球 作者 | 雷歌 “旧车撞了,准备买新车”。 前几天老家一个同学发来消息,春节他追尾了别人的车,不光赔了钱,还把自己的车车头撞废了,修好得一大笔钱,他干脆当废铁1万块钱卖给二手车商了。…

我的自建博客之旅06之Mrdoc

这个是我折腾笔记项目的最后一篇文章了,这个项目是类似于语雀的文档笔记项目,因为我当初想找一个既可以当做笔记,又可以作为团队文档分享的笔记,除了语雀,就发现了这个项目。 这个开源项目的界面或者文档组织方式其实是我最喜欢的,但是我后来放弃它的原因是它的后台编辑逻…

React Native:跨平台移动应用开发的利器

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

nginx学习记录-目录结构及基本配置

1. nginx目录结构 执行tree命令就可以看到nginx的目录结构了,主要有4个,分别是配置目录conf,还有界面目录html,日志目录logs以及程序sbin/nginx。 2. nignx基本配置 nginx的主要配置文件为/usr/local/nginx/conf/nginx.conf&…

matlab 混沌系统李雅普洛夫指数谱相图分岔图和庞加莱界面

1、内容简介 略 65-可以交流、咨询、答疑 2、内容说明 matlab 混沌系统李雅普洛夫指数谱相图分岔图和庞加莱界面 混沌系统李雅普洛夫指数谱相图分岔图和庞加莱界面 李雅普洛夫指数谱、相图、分岔图、庞加莱界面 3、仿真分析 略 4、参考论文 略

Bito插件

此文档只作用于指导性工作,更多资料请自行探索。 1、插件安装与介绍 1.1 插件下载与安装 在idea中搜索:Bito Bito is also available for:​编辑VSCode​编辑JetBrains​编辑CLI 1.2 官方介绍 插件:ChatGPT GPT-4 - Bito AI Code Assista…

双向链表、单双向链表比较、双向链表的基本操作

我要成为嵌入式高手之3月20日数据结构第三天!! ———————————————————————————— 双向链表 双向链表与单向链表的区别:双向链表中的结点的指针域包含前驱结点的地址,而单向链表的结点中指针域只有后驱结…

Q-Tester:适用于开发、生产和售后的诊断测试软件

Q-Tester.Expert是一款基于ODX(ASAM MCD-2D / ISO 22901-1)国际标准的工程诊断仪。通过此诊断仪可实现与ECU控制器之间的数据交互。这一基于ODX国际标准的解决方案,其优势在于:ODX数据库不仅可在开发部门交互,而且可在…

DML - 增删改(insert into,delete,update)

引言:对比DB / 表结构 : create , drop , alter 本次记录 数据操作 语言: 1.进入 hive 数据库,再打开 ryx1 表 2. insert select 3. update select 4. delete select

python---练习2

1、打印图案 &#xff08;1&#xff09;直角三角形 #多层循环layer int(input("请输入您要打印的层数&#xff1a; "))index 1 while index < layer : #外层循环控制层数j 1while j < index : #内层循环控制每层个数print (&qu…

C++进阶:二叉搜索树介绍、模拟实现(递归迭代两版本)及其应用

上次介绍完多态后&#xff1a;C进阶&#xff1a;详解多态&#xff08;多态、虚函数、抽象类以及虚函数原理详解&#xff09; 也是要开始继续学习了 文章目录 1.二叉搜索树1.1概念1.2二叉搜索树特性1.3 二叉搜索树的操作 2.模拟实现2.1项目文件规划2.2基本结构2.3各种接口、功能…

kafka集群介绍及搭建

介绍 kafka是一个高性能、低延迟、分布式的消息传递系统&#xff0c;特点在于实时处理数据。集群由多个成员节点broker组成&#xff0c;每个节点都可以独立处理消息传递和存储任务。 路由策略 发布消息由key、value组成&#xff0c;真正的消息是value&#xff0c;key是标识路…

【prometheus-operator】k8s监控集群外redis

1、部署exporter GitHub - oliver006/redis_exporter: Prometheus Exporter for Redis Metrics. Supports Redis 2.x, 3.x, 4.x, 5.x, 6.x, and 7.x redis_exporter-v1.57.0.linux-386.tar.gz # 解压 tar -zxvf redis_exporter-v1.57.0.linux-386.tar.gz # 启动 nohup ./redi…

Java基础 学习笔记九

for循环 for循环语句的语法结构 for(初始化表达式;条件表达式;更新表达式){循环体;}初始化表达式最先被执行&#xff0c;而且只执行一次条件表达式的执行结果必须是一个布尔类型的值更新表达式一般是负责更新某个变量值的&#xff08;只有更新了某个变量值&#xff0c;条件表达…

Visual Studio 2013 - 重置窗口布局

Visual Studio 2013 - 重置窗口布局 1. Microsoft Visual Studio 2013 - 重置窗口布局References 1. Microsoft Visual Studio 2013 - 重置窗口布局 窗口 -> 重置窗口布局 References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

API接口采集淘宝商品详情数据获取属性价格详情图等

什么是电商APIAPI全称应用程序编程接口&#xff08;Application Programming Interface&#xff09;&#xff0c;是一组用于访问某个软件或硬件的协议、规则和工具集合。电商API就是各大电商平台提供给开发者访问平台数据的接口。目前&#xff0c;主流电商平台如淘宝、天猫、京…

软件工程导论画图题汇总:期末+复试

文章目录 一、数据模型&#xff1a;实体联系图&#xff08;E-R图&#xff09;二、行为模型&#xff1a;状态转换图三、功能模型&#xff1a;数据流图四、数据字典五、系统流程图六、层次图七、HIPO图八、结构图九、程序流程图十、盒图十一、PAD图十二、判定表、判定树 一、数据…

EF数据持久化(三层架构,客户增删)

效果图 点击新增按钮 点击添加 添加成功展示新增数据 点击删除&#xff0c;出现删除选项&#xff0c;点击确定根据id删除成功 成功删除 实现过程 Model设置具体流程在下面链接中 https://blog.csdn.net/Mr_wangzu/article/details/136805824?spm1001.2014.3001.5501 DAL …