MySQL学习笔记

2023-09-22 11:40:00

注释

单行注释:#注释文字(没空格)
单行注释:-- 注释文字(有空格)
多行注释:/* 注释文字 */,注意不能够嵌套注释;

1、启动和关闭MYSQL服务

net stop mysql
net start mysql

2、库的增删改查

-- 查看所有库
show databases;
-- 查看某个库
show create database school_info;
-- 创建库
create database school_info;
-- 创建库指定编码
create database school_info charset utf8;
-- 修改库编码
alter database school_info charset gbk;
-- 删除库
drop database school_info;

3、表的增删改查

3.1 创建表

create table 表名(

	列名 列类型,
	列名 列类型,
	。。。
);
create table stu(name char(10) not null,sex char(1) not null,age int);

3.2 修改表

-- 修改表字段 数据类型 约束条件
alter table stu change name name1 varchar(10) not null;
-- 新增表字段
alter table stu add addr char(20),add addr2 char(20);
-- 指定位置新增
alter table stu add id  int first;
alter table stu add addr3 varchar(10) after name;

3.3 删除

-- 删除表字段
alter table stu drop addr2;
-- 删除表
drop table stu;

4、数据类型

4.1 字符串:char(num) 与 varchar(num)的区别

字符串长度存储
char定长直接存储字符内容
varchar变长开头由1-2个字节存储该字符的总长度,后面接着存储字符内容

例如你定义了char(8),则这一列中存储的内容长度都为8,不足8则会用空格补充(但是我们在查询的时候是不会带空格的,mysql会对此进行处理)

总结:

  • char的存取速度很快,但是由于是定长,当大部分内容没有达到规定长度时,会浪费不少空间资源
  • varchar则不会,它根据实际长度存储,但是由于存储的特殊形式造成存取速度不及char,当char存储的内容都为一个定值时,则char不仅不浪费空间还提高存取效果,因为varchar还要留出一部分存储字符串的长度;
  • 很早之前,大家都觉得varchar好,节省资源,但是到现在,磁盘资源已经不成问题,因此我更倾向于选择char,也就是所谓的以空间换时间了。

4.2 整型

int 不需要指定字符的长度

4.3 浮点型

  • decimal double
  • float(m,n) 单精度
  • double(m,n) 双精度
  • decimal(m,n)小数值

例如:float(5,2) 代表的意思是:小数位2,整数位3位的数值,总长度为5位。

CREATE TABLE stu_info (
	NAME CHAR ( 8 ) NOT NULL,
	score1 FLOAT ( 5, 2 ),
	score2 DOUBLE ( 5, 2 ),
  score3 DECIMAL ( 5, 2 ));
	
INSERT INTO stu_info
VALUES
	( "李四", 45.3456, 45.3456, 45.3456 );

SELECT * FROM stu_info;

在这里插入图片描述

-- 使用默认值
create table stu_info1(name char(8) not null,score1 float,score2 double,score3 decimal);
insert into stu_info1 values("张三",80.1234567,80.1234567,80.1234567);
select * from stu_info1;

在这里插入图片描述

  • double默认比float更精确 浮点型
  • decimal默认存储的是decimal(10,0) 实际是字符串类型
  • 日常使用float就可以解决大部分的问题了

4.4 日期型

CREATE TABLE stu_info3 ( ruxue date, kaixue datetime );

INSERT INTO stu_info3
VALUES
	( "2020-12-01 12:00:34", "2020-12-01 12:00:34" );
	
SELECT * FROM stu_info3;

在这里插入图片描述

4.5 枚举型

  • enum 只能单选,例如:男女
  • set 单选或多选,例如:兴趣爱好
CREATE TABLE stu_info4 (
	sex enum ( "男", "女" ),
	hobby SET ( "运动", "阅读", "旅行" ));

INSERT INTO stu_info4
VALUES
	( "男", "运动,旅行" ),
	("女","运动" );

select * from stu_info4;
更多推荐

【2591. 将钱分给最多的儿童】

来源:力扣(LeetCode)描述:给你一个整数money,表示你总共有的钱数(单位为美元)和另一个整数children,表示你要将钱分配给多少个儿童。你需要按照如下规则分配:所有的钱都必须被分配。每个儿童至少获得1美元。没有人获得4美元。请你按照上述规则分配金钱,并返回最多有多少个儿童获得恰好8美元。如果没有任何分配

【Vue】利用vue.js、vuex和vue router组件、element ui plus组件来创建基于知识图谱的智能问答系统的前端部分

Vue.js是一个流行的JavaScript框架,用于构建用户界面。它基于MVVM模式,可以轻松地创建组件化应用程序。Vuex是Vue.js的官方状态管理库,用于管理Vue.js应用程序中的数据流。它提供了一种集中式的方式来管理应用程序中的所有组件的状态,并且它可以让你轻松地实现可预测的状态变化。VueRouter是V

PostgreSQL serial类型

serial类型和序列postgresql序列号(SERIAL)类型包括smallserial(smallint,short),serial(int)bigserial(bigint,longlongint)不管是smallserial,serial还是bigserial,其范围都是(1,922337203685477

Python实现简单的爬虫功能

目录一、导入必要的库和模块二、发送HTTP请求三、解析HTML文件四、存储数据五、完整代码示例六、注意事项总结随着互联网的普及,信息获取的需求越来越大,而爬虫技术则成为了一种常见的信息获取方式。在Python中,有许多库和模块可以用于实现简单的爬虫功能。本文将介绍如何使用Python实现简单的爬虫功能,包括导入必要的库

std::thread简单使用

std::thread是C++标准库中用于多线程编程的类。它允许你创建和管理线程,使程序能够并发执行不同的任务。以下是关于std::thread的详细介绍以及几个示例说明:创建线程你可以使用std::thread构造函数创建新的线程,并将要执行的函数传递给它。以下是创建线程的基本示例:#include<iostream

c++ 学习 之 静态存储区域 和常量字符串的联系

什么是静态存储区域静态存储区域(StaticStorageArea)是计算机程序运行时用于存储全局变量、静态变量和字符串字面值等数据的一种特殊内存区域。静态存储区域具有以下特点:生存周期:静态存储区域中的数据在程序启动时分配,在程序结束时才会释放。这意味着这些数据在整个程序的执行期间都存在,不会随着函数的调用而创建或销

备战2024秋招面试题-查看Linux的进程

前言:\textcolor{Green}{前言:}前言:💞快秋招了,那么这个专栏就专门来记录一下,同时呢整理一下常见面试题💞部分题目来自自己的面试题,部分题目来自网络整理给我冲学习目标:面试题:算法题:完成?学习目标:Linux有哪些命令查看Linux的进程算法题:排序链表面试题:Linux有那些命令?文件和目录管

四川百幕晟科技:抖店精选联盟怎么使用?

近年来,电商平台的兴起让很多人纷纷加入进来,希望通过在网上销售产品来赚取更多的利润。在这个竞争激烈的市场中,如何找到稳定的渠道来推广自己的产品成为了每个卖家的追求。抖店精选联盟是一个不错的选择,可以帮助卖家快速提升销量。1.如何使用抖店精选联盟?1.注册成为联盟会员首先,您需要在抖店精选联盟官网注册。注册过程比较简单,

Azure Kubernetes Service中重写规则踩坑小记录

前言最近在做标准产品在不同云平台中的部署验证,有幸体验了一下微软的Azure。负责采购的运维部门这次采用了ApplicationGateway来搭配AKS(AzureKubernetesService)对外暴露服务,正好借着这个机会来体验一下ApplicationGateway。应用场景域名api.demo.com指向

探索科技地图:通向未来的科技之路

科技地图是一张连接现实与未来的路线图,它标示着创新的方向和科技的潜力。在这个信息爆炸的时代,我们深陷于新技术和新理念的海洋中,科技地图为我们提供了一颗指南针,帮助我们更好地了解和探索科技的前沿。科技地图的起源:科技的演化之路科技地图并非一夜之间出现,它承载着几十年科技发展的积淀。从最早的计算机革命,到移动互联网的崛起,

深入理解Linux网络笔记(一):内核是如何接收网络包的

本文为《深入理解Linux网络》学习笔记,使用的Linux源码版本是3.10,网卡驱动是Intel的igb网卡驱动Linux源码在线阅读:https://elixir.bootlin.com/linux/v3.10/source1、内核是如何接收网络包的1)、Linux网络收包总览在TCP/IP网络分层模型里,整个协议

热文推荐