初识MySQL(一)(创建数据库,查看删除数据库,备份和恢复,创建表,数据类型)

news2024/12/23 16:54:29

目录

客户端 ------> MySQL服务(3306)

数据库三层结构-破除MySQL神秘

创建数据库

查看删除数据库

备份恢复数据库

创建表

MySQL常用的数据类型(列类型)

​编辑

​编辑整型

bit类型

小数类型

字符串类型

日期类型的使用

客户端 ------> MySQL服务(3306)

连接到MySQL服务(MySQL数据库)的指令

mysql -h 主机IP -P 端口 -u 用户名 -p密码

提醒: (1)-p密码不要有空格

         (2)-p后面没有写密码 ,回车后要求输入密码  

         (3)如果没有写-h主机 ,默认是本机

         (4)如果没有写-P,默认是3306的端口

         (5)在实际工作中,一般会修改的

登陆前 , 保证MySQL是运行的

数据库三层结构-破除MySQL神秘

DDL:数据定义语言[creat 表 ,库..]

DML: 数据操作语句[增加 insert , 修改 update ,删除 delete]

DQL: 数据查询语句[select]

DCL: 数据控制语句

创建数据库

#创建数据库
#创建一个名称为hsp_db01的数据库[图形化和指令演示]

#使用指令创建数据库
CREATE DATABASE lhq_db01
#删除数据库
DROP DATABASE lhq_db01


#创建一个使用utf8字符集的hsp_db02数据库
CREATE DATABASE lhq_db02 CHARACTER SET utf8
#创建一个使用utf8字符集,并带有校对规则的hsp_db03数据库
CREATE DATABASE lhq_db03 CHARACTER SET utf8 COLLATE utf8_bin#区分大小写
#校对规则 utf8_bin 区分大小 默认utf8_general_ci 不区分大小写

#下面是一条查询的sql,select查询*表示所有字段   FROM从哪个表
#WHRER 从哪个字段  NAME='tom'查询名字是tom
SELECT * FROM t1 WHERE NAME ='tom'

CREATE DATABASE lhq_db01 一个这句是可以创建数据库的

CREATE DATABASE lhq_db03 CHARACTER SET utf8 COLLATE utf8_bin 加上后面加粗的是为了带有校对规则,以后在该数据库中创建的表,如果没有指定下图中的字符集和校对,默认为数据库设置的

上面代码中执行的SELECT * FROM t1 WHERE NAME ='tom'   t1是在对应的数据库中

查看删除数据库

#演示删除和查询数据库
#查看当前数据库服务器中的所有数据库
SHOW DATABASES
#查看前面创建的lhq_db01数据库的定义信息
SHOW CREATE DATABASE lhq_db01
#小老弟说明  在创建数据库或表的时候,为了规避关键字,可以使用反引号解决
CREATE DATABASE `int  #int是一个关键字,前面加`可以规避
#删除前面创建的lhq_db01数据库
DROP DATABASE lhq_db01

备份恢复数据库

备份数据库 要在命令行下执行

mysqldump -u 用户名 -p -B 数据库1 数据库2 数据库n > 文件名.sql

#备份和回复数据库
#备份,要在DOS下执行,命令行中执行
mysqldump -u root -p -B lhq_db01 > e:\\bak.sql

DROP DATABASE lhq_db01

#恢复数据库(注意: 进入mysql 命令行再执行)
source e:\\bak.sql

#备份库中的表 再DOS下进行,在命令行中执行
mysqldump -u 用户名 -p 数据库 表1 表2 表n > e:\\文件名.sql #不用带上面的-B选项了

创建表

character set 字符集 如不指定则为所在数据库字符集

collate 校对规则 如不指定则为所在数据库校对规则

engine : 引擎

#指令创建表
CREATE TABLE `user`(
   id INT ,
   `name` VARCHAR(255),
   `password` VARCHAR(255),
   `birthday` DATE
) 
CHARACTER SET utf8 COLLATE utf8_bin #字符集和校对规则ENGINE INNODB   #引擎;

MySQL常用的数据类型(列类型)

修改上面的日期类型


整型

分为带符号位不带符号位(其实也可以认为正负的关系)

说明,使用规范: 在能够满足需求的情况下,尽量选择占用空间小的类型

我们来一个演示代码

#演示一个整型的使用
#使用tinyint来演示它的范围,有符号的 -128~127 , 如果没有符号 0~255
#说明: 表的字符集,校验规则,存储引擎,使用默认的(数据库里的)
#如果没有指定 unsigned ,则TINTINT就是有符号的类型
CREATE TABLE t3(
id TINYINT
);

CREATE TABLE t4(
id TINYINT UNSIGNED 
);
INSERT INTO t4 VALUES(127); #这是非常简单的添加语句
SELECT * FROM t4

bit类型

来一个演示

#演示bit类型使用
#1.bit(m)在1-64 8表示一个字节,因为一个字节有8个比特位
#添加数据 范围,按照你给的范围来确定的,比如 m =8表示一个字节0-255
#显示按照bit,显示二进制
#查询时,仍然可以按照数来查询
CREATE TABLE t05 (num BIT(8));
INSERT INTO t05 VALUES(1);
INSERT INTO t05 VALUES(5);
SELECT * FROM t05 WHERE num=1;

小数类型

1.FLOAT/DOUBLE [UNSIGNED]

2.DECIMAL M,D] [UNSIGNED]

可以支持更加精确的小数位,M是小数位数(精度)的总数,D表示小数点(标度)后面的位数

如果D是0,则值没有小数点或分数部分,M最大65,D最大30,如果D被省略,默认为0,如果M被省略,默认为10,建议:如果希望小数的精度高,推荐使用decimal

#演示decimal类型,float,double使用
#创建表
CREATE TABLE t06(
num1 FLOAT,
num2 DOUBLE,
num3 DECIMAL(30,20)
);
#添加数据
INSERT INTO t06 VALUES(88.12345678912345,88.12345678912345,88.12345678912345);
SELECT * FROM t06;

我们从图中可以看见:num1是float类型的,精度没那么高,num2是double类型,数据是比较高的, num3是decimal更高了

字符串类型

CHAR(size):固定长度字符串,最大255字符

VARCHAR(size) 0~65535字节 但是可以写入的字符串最大只能是65532 差了3个字节 这是为什么呢?因为utf8编码最大21844字符(因为utf8编码中1个字符可以是2个字节表示),1-3个字节用于记录大小(65535-3)/3=21844       在gbk编码(一个字符可以由两个字节表示)中,也是先预留3个字节,能表示的最大字符是:(65535-3)/2

#演示字符串类型使用
#注释的快捷键shift+ctrl+c 注销注释: shift+ctrl+r
CREATE TABLE t09(
`name` CHAR(255)#里面的值不能超过255字符
);
CREATE TABLE t10(
`name` VARCHAR(21844));#在utf8编码中里面的值不能21844字符

字符是不区分中文和字母的,一个中文表示一个字符,一个字母也表示一个字符 

#字符串类型的使用细节
#CHAR(4) 和 VARCHAR(4) 这个4表示的是字符,而不是字节,不区分是字母还是汉字
CREATE TABLE t11(
`name` CHAR(4)
);
INSERT INTO t11 VALUES('李浩谦nb');

SELECT * FROM t11;

CREATE TABLE t12(
`name` VARCHAR(4));
INSERT INTO t12 VALUES('李浩谦n');
INSERT INTO t12 VALUES('浩谦nb');
SELECT * FROM t12;

#char(4)是定长(固定的大小),就是说,即使你插入'aa',也会占用 分配的4个字符的空间
#char(4)上述这样就会造成空间的浪费
#varchar(4)是变长(变化的大小),就是说,如果你插入一个'aa',实际占用空间大小并不是4个字符
#而是按照实际占用空间来分配(varchar本身还需要1-3个字节来记录存放内容的长度)
#实际数据大小+(1-3)字节

日期类型的使用

#演示时间相关的类型
#创建一张表 ,date,datetime,timestamp
CREATE TABLE t14(
birthday DATE, #-- 日期
jobtime DATETIME,#--记录年月日 时分秒
login_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP); 
#--登录时间,如果希望login_time列紫红更新,需要配置

INSERT INTO t14(birthday,jobtime) VALUES('2022-11-11','2022-11-11 10:10:10');
SELECT * FROM t14;

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

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

相关文章

nmap原理与使用

kali的命令行中可以直接使用 nmap 命令,打开一个「终端」,输入 nmap 后回车,可以看到 nmap 的版本,证明 nmap 可用。 一、端口扫描 扫描主机的「开放端口」,在nmap后面直接跟主机IP(默认扫描1000个端口&am…

Java基础-基础语法

1、概述 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;…

酉矩阵(Unitary Matrix)

对于n阶复数矩阵A,如果,其中表示矩阵A的共轭转置,为单位矩阵,那么就称A为酉矩阵。 对于酉矩阵, 如果酉矩阵的元素都是实数,那么该矩阵就是正交矩阵。

Redis应用之二分布式锁2

一、前言 前一篇 Redis应用之二分布式锁 我们介绍了使用SETNX来实现分布式锁,并且还遗留了一个Bug,今天我们对代码进行优化,然后介绍一下Redisson以及数据库的乐观锁悲观锁怎么用。 二、SetNX分布式锁优化后代码 RedisService.java Inven…

计算机中msvcp140.dll丢失的解决方法,修复msvcp140.dll报错问题

使用电脑的过程中,我们常常会遇到一些错误提示,其中之一就是“msvcp140.dll丢失”。msvcp140.dll是Microsoft Visual C运行时库的重要组成部分,丢失该文件可能导致程序无法正常运行、系统崩溃等问题。本文将详细介绍msvcp140.dll丢失的原因及…

刨根问底:Java中的“\p{P}”到底是什么意思

问题由来: 在代码中看到了Pattern.compile("\\p{P}"),用来识别符号,但是这个正则表达式却不匹配加号,所以\p{P}到底是什么意思呢 谷歌了一下,找到StackOverflow上有人问了一模一样的问题 可是这个问题被关…

k8s集群搭建(ubuntu 20.04 + k8s 1.28.3 + calico + containerd1.7.8)

环境&需求 服务器: 10.235.165.21 k8s-master 10.235.165.22 k8s-slave1 10.235.165.23 k8s-slave2OS版本: rootvms131:~# lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.5 LTS Release: …

(三)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB

一、七种算法(DBO、LO、SWO、COA、LSO、KOA、GRO)简介 1、蜣螂优化算法DBO 蜣螂优化算法(Dung beetle optimizer,DBO)由Jiankai Xue和Bo Shen于2022年提出,该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁…

软板当然可以弯折啊,只是容易弯出问题而已

高速先生成员:黄刚 每次在介绍具体案例之前,都还是先铺垫下基础知识吧。今天讲的是一个软板的案例,我们循例先介绍下软板的概念。相信大多数的硬件工程师,PCB设计工程师或者测试工程师都见过,就是像下面的这些了。 它作…

APP攻防-资产收集篇反证书检验XP框架反代理VPN数据转发反模拟器

文章目录 常见问题防护手段 常见问题 没有限制过滤的抓包问题: 1、抓不到-工具证书没配置好 2、抓不到-app走的不是http/s 有限制过滤的抓包问题: 3、抓不到-反模拟器调试 4、抓不到-反代理VPN 5、抓不到-反证书检验 做移动安全测试时,设置…

C++——gcc、clang和cmake以及make

文章目录 1. CMake和make1.1 生成内容区别1.2 CMakeLists.txt和Makefile内容比较2. clang, gcc和make2.1 基本概念2.2 改进历史(gcc,make,cmake,Ninja)1. CMake和make 1.1 生成内容区别 环境CMake生成最终生成WindowsXXX.slnVisual Studio(MSBuild)处理.sln生成.exe可执行二进…

Java自学第11课:电商项目(4)重新建立项目

经过前几节的学习,我们已经找到之前碰到的问题的原因了。那么下面接着做项目学习。 1 新建dynamic web project 建立时把web.xml也生成下,省的右面再添加。 会询问是否改为java ee环境?no就行,其实改过来也是可以的。这个不重要。…

Redhat7查看时区、修改时区

问题: 安装好redhat7之后,发现时间和物理机上面的网络时间不一致,于是查看本着修改时间的目的,却发现原来是时区的问题。 解决步骤: 查看时区状态信息 timedatectl修改时区到亚洲/上海 timedatectl set-timezone A…

数列计算

题目描述 有一列数是 : 请找出这个数列的规律,编写程序计算并输出这个数列的第项,要求是分数形式,并计算这个数列的前项和 ( 结果四舍五入保留两位小数 ) 输入格式 第一行仅有一个正整数 () 。 输出格式 共有 行,第一…

ctfshow sql171-179

mysql 先打开我们本地的mysql,可以看到这些数据库 information_schema information_schema 库: 是信息数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息比如数据库名,数据库表, SCHEMATA表: 提供了当前MySQL实例…

Springboot+Dubbo+Nacos 集成 Sentinel(入门)

Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。Sentinel 官网 1.版本选择 参考 SpringClou…

高级数据分析方法与模型

前言 数据思维练习不仅要熟练地掌握了分析工具,还要掌握大量的数据分析方法和模型。 这样得出的结论不仅具备条理性和逻辑性,而且还更具备结构化和体系化,并保证分析结果的有效性和准确性。今天从以下6个维度36种分析模型和方法逐个简略介绍…

双11终极战报:全程强势领跑 德施曼连续8年蝉联全渠道第一

截止11月11日24时,2023年双11电商大促落下帷幕,回顾今年的双11,在各种营销玩法、直播带货等形式的刺激下,激发了广大消费者的购物热潮。 也正因此,在双11结束后,各大电商平台、商家都纷纷交出了亮眼的成绩…

如何搞垮一个测试团队?

要想彻底搞垮一个测试团队并非易事,需要多角色通力配合、多方联动、综合施策,才能达到目的。 本文从实践经验出发,为大家总结了搞垮测试团队的18项措施,或许可以给大家带来一些启发。 — 1 — QA QA作为质量管理者,…

Adobe家里那点事儿~~~

今天,我们来谈谈关于Adobe全家桶中Photoshop的故事。 Adobe Photoshop,简称PS。其定位是一款图像处理软件。他主要处理以像素所构成的数字图像。也就是说我们常见的非矢量图片。 Photoshop的专长在于图像处理,而不是图形的创作。他是对已有的…