解锁MySQL数据库基础命令:从入门到精通的实战指南

news2024/11/25 11:36:17
  •  作者简介:我是团团儿,是一名专注于云计算领域的专业创作者,感谢大家的关注
  •  座右铭:   云端筑梦,数据为翼,探索无限可能,引领云计算新纪元
  •  个人主页:团儿.-CSDN博客

前言:

在当今信息化社会,数据管理是每个企业和个人都无法回避的问题。

MySQL数据库以其开源、易用、性能高等特点,成为了众多开发者和企业的优先选择。

今天,我们一起来探讨一下MySQL数据库的基础命令应用,帮助大家更好地掌握这一技能,提升工作效率。


一.mysql内置的功能

1.连接数据库

 -u     -p      -S     -h     -P     -e       <

例子:

mysql -uroot -p -S /tmp/mysql.sock(本地登录)

mysql -uroot -p -h10.0.0.51 -P3306(远程登录)

-e 免交互执行sql语句

        mysql -uroot -p -e "show databases;"

< 恢复数据

        mysql -uroot -p123 < /root/world.sql

2.内置命令

 help 打印mysql帮助

 \c  ctrl+c 结束上个命令运行

 \q quit; exit; ctrl+d 退出mysql

 \G 将数据竖起来显示

 source 恢复备份文件


二.SQL基础应用

1.SQL介绍

结构化的查询语言

关系型数据库通用的命令

遵循SQL92的标准(SQL_MODE)

2.SQL常用种类 *****


三.字符集 (charset)

相当于MySQL的密码本(编码表)

show charset;

utf8   : 3个字节

utf8mb4 (建议): 4个字节,支持emoji

ps:

创建数据库,同时指定字符集:

create database yy default charset utf8mb4;

修改默认字符集:

alter database hehe default charset utf8mb4;

四.数据类型介绍

1.数字

整数

tinyint 0-255

int    -2^32-2^32

浮点数 float

2.字符串  *****

char(100)      

定长字符串类型,不管字符串长度多长,都立即分配100个字符长度的存储空间,未占满的空间使用"空格"填充

varchar(100)

变长字符串类型,每次存储数据之前,都要先判断一下长度,按需分配此盘空间.

会单独申请一个字符长度的空间存储字符长度(少于255,如果超过255以上,会占用两个存储空间)

如何选择这两个数据类型?

少于255个字符串长度,定长的列值,选择char

多于255字符长度,变长的字符串,可以选择varchar

enum 枚举数据类型

数据不能为数字

address enum('sz','sh','bj'.....)

  1    2    3   

悬念,以上数据类型可能会影响到索引的性能


3 .时间

datetime :

范围为从 1000-01-01 00:00:00.000000 至 9999-12-31 23:59:59.999999。

timestamp:

范围为从 1970-01-01 00:00:00.000000 至 2038-01-19 03:14:07.999999。


五.DDL的应用

1.库:

创建库并指定字符编码和校对集:

create database wordpress default charset utf8mb4 collate utf8mb4_bin;

注:若不加字符编码和校对集则为:


查看创库语句:

show create database wordpress;


修改数据库字符集

注意: 一定是从小往大了改,比如utf8--->utf8mb4.

目标字符集一定是源字符集的严格超级.

create database test;

show create database test;

alter database test charset utf8mb4 collate utf8mb4_bin;


查看所有库:

show databases;

切换库:

use wordpress;

删除数据库(不代表生产操作)

drop database test;

2.关于库定义规范 *****

库名使用小写字符

库名不能以数字开头

不能是数据库内部的关键字

必须设置字符集和校对集.


六.DDL-表

1.列属性

PRIMARY KEY : 主键约束,表中只能有一个,非空且唯一.

NOT NULL    : 非空约束,不允许空值

UNIQUE KEY  : 唯一键约束,不允许重复值

DEFAULT     : 一般配合 NOT NULL 一起使用.

UNSIGNED    : 无符号,一般是配合数字列,非负数

COMMENT     : 注释

AUTO_INCREMENT : 自增长的列

CREATE TABLE stu (

id INT PRIMARY KEY NOT NULL AUTO_INCREMENT COMMENT '学号',

sname VARCHAR(255) NOT NULL  COMMENT '姓名',

age TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '年龄',

gender ENUM('m','f','n') NOT NULL DEFAULT 'n' COMMENT '性别',

intime DATETIME NOT NULL DEFAULT NOW() COMMENT '入学时间'

) ENGINE INNODB CHARSET utf8mb4;

注:默认自增列增量为1,初始值也为1,但可以用下列参数修改。

auto_increment_increment=10   增量为10

auto_increment_offset=10   初始值为10


2.建表规范 *****

表名小写字母,不能数字开头,

不能是保留字符,使用和业务有关的表名

选择合适的数据类型及长度

每个列设置 NOT NULL + DEFAULT .对于数据0填充,对于字符使用有效字符串填充

每个列设置注释

表必须设置存储引擎和字符集

主键列尽量是无关列数字列,最好是自增长

enum类型不要保存数字,只能是字符串类型


3.创建表,指定列和数据类型:

create table t1 (id int primary key,name varchar(20));

创建一个表结构一样的表

create table test like stu;

查询建表信息

show tables; #显示所有表

show create table stu;  #显示创表语法、存储引擎、字符集

desc stu; #显示表的列结构

删表(不代表生产操作)

drop table test;

修改

在stu表中添加qq列 *****

desc stu;

alter table stu add qq varchar(20) not null comment'qq号';

修改sname数据类型的属性 ***

desc stu;

alter table stu change gender sex char(4) not null comment'性别';

七.DCL

1.创建用户并赋权:

grant all on hehe.* to zhangsan@'%' identified by '123.com';

撤销删除权限:

revoke drop,delete on hehe.* from zhangsan@'%';

查看权限:

show grants for zhangsan@'%';

查看用户:

select user,host from mysql.user;


八.DML

insert

desc stu;

最偷懒

insert into stu values(1, 'zs', 18, 'm', '2023-04-01 11:30:00', '1119898630');

select * from stu;


最规范

insert into stu(id,sname,age,sex,intime) values(2, 'ls', 20, 'm', '2023-04-01 11:30'');

select * from stu;


针对性的录入数据

insert into stu(sname,age,sex) values('w5',19,'m');

select * from stu;

一次性录入多行

Insert into stu(sname,age,sex)

values

('aa',11,'m'),

('bb',12,'f'),

('cc',13,'m');


select * from stu;

update(一定要加where条件)

update stu set sname='aaa';

select * from stu;

update stu set sname='bb' where id=6;

select * from stu;


delete (一定要有where条件)

delete from stu;

select * from stu;

delete from stu where id='7';

select * from stu;

注:删除过的行若再添加会跳过之前所删编号

select * from stu;

delete from stu;

insert into stu(sname,age,sex) values ('aa',11,'m'), ('bb',12,'f'), ('cc',13,'m');

select * from stu;


truncate和delete:

都是删除表中行记录

但delete不会重置自增列,会生成日志;

truncate不能删除某行,只会删除全部,不做日志,重置自增列。

truncate table stu;

生产中屏蔽delete功能

使用revoke去除用户drop和delete权限


期待您的关注~

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

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

相关文章

PLUTO: 推动基于模仿学习的自动驾驶规划的极限

PLUTO: Pushing the Limit of Imitation Learning-based Planning for Autonomous Driving PLUTO: 推动基于模仿学习的自动驾驶规划的极限 https://arxiv.org/abs/2404.14327 Abstract We present PLUTO, a powerful framework that Pushes the Limit of imitation learn…

【扇贝编程】python爬虫——爬取动态网页笔记

在示例网站上登陆后点开第一条请求&#xff08;wp-login.php&#xff09;。右边的 Headers 里可以看到请求地址&#xff08;Request URL&#xff09;为 https://wpblog.x0y1.com/wp-login.php&#xff0c;请求方式&#xff08;Request Method&#xff09;是 POST&#xff0c;状…

戴尔科技领涨市场,AI服务器需求成关键驱动力

戴尔科技强劲上涨&#xff0c;AI服务器需求激增 戴尔科技公司日内股价飙升4.2%&#xff0c;达到115.42美元&#xff0c;接近一个月高点。这一强劲表现主要得益于该公司上调了年度盈利预期&#xff0c;原因是对Nvidia驱动的人工智能优化服务器的需求显著增加。戴尔将2025财年的年…

RTC(实时时钟)/BKP(备份寄存器

1 unix时间戳 2 时间戳转换函数 3 BKP&#xff08;备份寄存器&#xff09; 1 TAMPER引脚侵入事件 2 RTC校准时间 3 RST闹钟脉冲和秒脉冲 可以输出出来为其他信号提供 4 校准时钟&#xff0c;寄存器加输出RTC校准时钟 5 总结&#xff1a;3个功能只能同时使用一个 4 BKP基本…

windows屏幕录制:探索四款顶级录屏工具!

在数字化时代&#xff0c;我们经常需要记录屏幕上的操作&#xff0c;无论是为了教学、演示还是娱乐。Windows操作系统提供了多种录屏工具&#xff0c;这些工具各有特色&#xff0c;能够满足不同用户的需求。本文将为您介绍几款备受好评的录屏软件&#xff01; 福昕录屏大师 直…

【RabbitMQ】核心概念

界⾯上的导航栏共分6部分, 这6部分分别是什么意思呢, 我们先看看RabbitMQ的工作流程 1. Producer和Consumer Producer:生产者,是RabbitMQ Server的客户端,向RabbitMQ发送消息 Consumer: 消费者,也是RabbitMQ Server的客户端,从RabbitMQ接收消息 Broker:其实就是RabbitMQSer…

ABAP Dialog Radio Button

额.妈了个巴子&#xff0c;整了一天&#xff0c;才发现&#xff0c;原来Dialog 的Radio Button 是要右键去设置组的 我就说为什么不行咧 误区&#xff1a;我以为是属性那里的组去设置的

shell脚本编写之四则运算

shell程序默认支持整数加、减、乘、除、求余的运算。 1、使用$(())方式进行运算 例如计算23&#xff0c;使用$((23))。 我在脚本中加入这几种运算进行测试&#xff1a; 执行脚本后结果如下&#xff1a; 2、使用$[]方式进行运算 例如计算23&#xff0c;使用$[23]&#xff0c…

我在高职教STM32——ADC电压采集与光敏电阻(5)

大家好,我是老耿,高职青椒一枚,一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次,同行应该都懂的,老师在课堂上教学几乎是没什么成就感的。正是如此,才有了借助CSDN头条平台寻求认同感和成就感的想法。在这里,我准备陆续把自己花了很多心思设计的教学课…

flutter文本输入框使用

在Flutter中&#xff0c;实现输入框一般使用TextField&#xff0c;通过设置它的属性给输入框和内部文字设置不同的样式。 Flutter 输入框实现简单例子 import package:flutter/material.dart;class MyEditPage extends StatelessWidget {const MyEditPage({super.key});overr…

算法训练第30天|46. 携带研究材料(01背包问题)|416. 分割等和子集

先讲一下01背包问题&#xff1a; 有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。每件物品只能用一次&#xff0c;求解将哪些物品装入背包里物品价值总和最大。 这道题目如果使用暴力解法&#xff0c;即回溯法来做的…

Transformer简明笔记:文本翻译

Bert和gpt都是基于transformer的&#xff0c;在此之前流行的是rnn&#xff0c;复杂度有限且效率不高&#xff0c;容易受到文本长度的限制。 项目地址:https://github.com/lansinuote/Transformer_Example b站视频&#xff1a;https://www.bilibili.com/video/BV19Y411b7qx?p9&…

Java项目: 基于SpringBoot+mysql旅游网站管理系统分前后台(含源码+数据库+开题报告+PPT+毕业论文)

一、项目简介 本项目是一套基于SpringBootmysql旅游网站管理系统分前后台 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作…

【java入门】JDK的下载安装与配置,最新最详细教程!

&#x1f680; 个人简介&#xff1a;某大型国企资深软件开发工程师&#xff0c;信息系统项目管理师、CSDN优质创作者、阿里云专家博主、华为云云享专家&#xff0c;分享前端后端相关技术与工作常见问题~ &#x1f49f; 作 者&#xff1a;码喽的自我修养&#x1f970; &#…

创意微型学生机床工具——金属车床

劳技课程是实施劳动与技术教育的主要途径&#xff0c;具有基础性、实践性、综合性和创新性等特点。它不仅是国家课程、地方课程和校本课程的统一体&#xff0c;还是基础教育课程体系中的重要一环。 劳技课程强调学生的动手操作能力和实践体验&#xff0c;通过具体的技术活动和劳…

IP的SSL证书的申请及配置方式

随着互联网技术的发展&#xff0c;数据安全变得越来越重要。HTTPS协议因其提供的加密传输能力而成为现代Web通信的标准。实现HTTPS的关键组件之一就是SSL/TLS证书&#xff0c;它为网站提供了一层保护&#xff0c;确保客户端与服务器之间的数据传输是加密的。本文将指导您如何为…

NSSCTF刷题

[NISACTF 2022]checkin 1.在选中nisactf的时候&#xff0c;注释里面的内容也被标记了 2.复制到010editer中发现存在不可见的字符 3.我们选择实际的参名和字符串&#xff0c;并转为url编码格式 4.得到最后的payload&#xff0c;传参得到flag ahahahahajitanglailo&%E2%80%…

当敏捷开发遇上AI

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

【ESP32 IDF】WS2812B灯驱动

WS2812B灯驱动 1. 简单描述2. 驱动过程3.主函数添加驱动程序 1. 简单描述 开发环境为 IDF5.2.2采用乐鑫官方组件库 组件库地址 &#xff1a; https://components.espressif.com/components/espressif/led_strip/versions/2.5.5 2. 驱动过程 复制led_strip组件命令 在自己项目…

密钥分发与公钥认证:保障网络通信的安全

在网络通信中&#xff0c;密钥的安全分发和公钥的有效认证是确保系统安全的关键。本文将为基础小白介绍密钥分发与公钥认证的基本概念和实际应用&#xff0c;帮助大家更好地理解这些技术如何保障我们的网络通信安全。 1. 密钥分发与公钥认证的背景 由于密码算法是公开的&…