MySQL学习笔记

目录

注释

单行注释:#注释文字(没空格)

单行注释:-- 注释文字(有空格)

多行注释:/* 注释文字 */,注意不能够嵌套注释;

1、启动和关闭MYSQL服务

sql 复制代码
net stop mysql
net start mysql

2、库的增删改查

sql 复制代码
-- 查看所有库
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 表名(

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

3.2 修改表

sql 复制代码
-- 修改表字段 数据类型 约束条件
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 删除

sql 复制代码
-- 删除表字段
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位。

sql 复制代码
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;
sql 复制代码
-- 使用默认值
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 日期型

sql 复制代码
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 单选或多选,例如:兴趣爱好
sql 复制代码
CREATE TABLE stu_info4 (
	sex enum ( "男", "女" ),
	hobby SET ( "运动", "阅读", "旅行" ));

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

select * from stu_info4;
相关推荐
AOwhisky2 分钟前
Python 学习笔记(第六期)——函数:定义、参数传递与作用域
笔记·python·学习·云原生·运维开发·函数·参数传递
网小鱼的学习笔记5 分钟前
Agent学习001
学习·迁移学习
白帽小阳34 分钟前
我的AI辅助开发工具链2026版:从编码到部署的全栈智能实践
网络·人工智能·学习·安全·自动化
有Li1 小时前
通过渐进式域变换实现组织分类的无监督单域泛化文献速递/基于多模态的医学影像分割与理解
人工智能·学习·分类·数据挖掘·文献·医学生
kdxiaojie1 小时前
Linux 驱动研究 —— V4L2 (2)
linux·运维·笔记·学习
DB哥讲数据库1 小时前
MySQL 8.4 安装教程:超详细图文讲解(附mysql安装包)
linux·数据库·mysql·centos
阿米亚波2 小时前
【C++ STL】std::list
c++·windows·笔记·stl·list
神秘的MT2 小时前
SQL Server 分页查询 ROW_NUMBER () OFFSET...FETCH游标(Cursor) 数据插入
数据库·sql·学习·c#·winform
wefg12 小时前
【MySQL】MySQL C API 访问 MySQL
数据库·mysql
~kiss~2 小时前
大模型的PEFT~ 参数高效微调 Parameter-Efficient Fine-Tuning
学习