MySQL基础②(数据类型、DDL、DML)

举报
十八岁讨厌编程 发表于 2022/08/06 01:32:29 2022/08/06
【摘要】 文章目录 前置:MySQL数据类型DDL用DDL操作数据库MySQL中自带的四个数据库用DDL操作表查询表创建表删除表修改表 DML添加数据修改数据删除数据 前置:MySQL数...

前置:MySQL数据类型

MySQL支持多种类型,可以分为三类:

  • 数值
  • 日期
  • 字符串

在这里插入图片描述

注意:
DECIMAL是通过字符串的 形式来表示这种小数型,从而提高小数表达的精度。
DATA是年 月 日
TIME是时 分 秒
YEAR是年份
DATETIME是年 月 日 时 分 秒
TIMESTAMP(时间戳)也是年 月 日 时 分 秒。他有一个特殊点:如果我们给某一个字段设置类型为TIMESTAMP而不给它赋值的话,那么MySQL会把系统默认的时间给到字段对应的值,但一般情况下不推荐使用TIMESTAMP,因为它表示的时间最大直到2038年。我们一般多使用DATATIME.

我们一般不会把电影这种大文件放到数据库中存储,因为这是非常消耗数据库性能的。如果我们要存储这种大的文件数据,会有专门的文件服务器。而在数据库里面我们只需要用varchar类型来保存文件的访问路径就行了。

几个使用的注意点:

  • 我们在使用DOUBLE时,一般要引用两个参数。DOUBLE(分数值的总长度,小数点后保留的位数)
  • CHAR和VARCHAR我们在使用时都要指定最大的字符存储数。CHAR()或VARCHAR()
    • 他们的不同点在于:(例如我们存储’张三‘)
    • CHAR是定长字符串,张三虽然是两个字符,但它依旧会占10个字符空间(后面的8个其实用空格补齐了)
    • VARCHAR是变长字符串,它在存储数据的时候会先去计算原始数据的长度,根据长度来存储这个数据。
    • 因此我们可以得到一个结论:CHAR的存储性能要高一点,但会浪费空间;VARCHAR的存储性能要低一点,但节约空间
    • 使用场景:
      • 如果确定数据的字符个数,则用CHAR。例如存储性别
      • 不确定数据的字符个数,用VARCHAR。例如用户名

DDL

用DDL操作数据库

总纲
在这里插入图片描述

MySQL中自带的四个数据库

  • information_schema:里面记录了MySQL里面有哪些库、哪些表。且其存在特殊性,他存储数据是一种特殊的表,叫做视图,而视图是一种逻辑表,所有不存在物理的文件(它在data目录里面不存在对应的文件夹,其他三个都有)
  • mysql:存储了MySQL数据库中最为核心的信息,比如说权限、安全。
  • performance_schema:里面存储了MySQL性能相关的信息
  • sys:存储了系统相关的信息

对于MySQL自带的这四个数据库我们一般不会直接去操作他们。

用DDL操作表

查询表

在这里插入图片描述

创建表

语法:
在这里插入图片描述

注意:最后一行末尾不能加逗号

例如:我们现在创建一个表
在这里插入图片描述
那么我们的sql语句:

CREAT TABLE tb_user(
	id int;
	username varchar(20);
	password varchar(32)
);

  
 
  • 1
  • 2
  • 3
  • 4
  • 5

例如:

需求:设计一张学生表,请注重数据类型、长度的合理性
1. 编号
2. 姓名,姓名最长不超过10个汉字
3. 性别,因为取值只有两种可能,因此最多一个汉字
4. 生日,取值为年月日
5. 入学成绩,小数点后保留两位
6. 邮件地址,最大长度不超过 64
7. 家庭联系电话,不一定是手机号码,可能会出现 - 等字符
8. 学生状态(用数字表示,正常、休学、毕业...
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
-- SHOW TABLES;
CREATE TABLE student_form(
	编号 INT,
	姓名 CHAR(10),
	性别 CHAR(1),
	生日 DATE,
	入学成绩 DOUBLE(5,2),
	邮件地址 VARCHAR(64),
	家庭联系电话 VARCHAR(15),
	学生状态 TINYINT
);

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

删除表

在这里插入图片描述

修改表

在这里插入图片描述

DML

添加数据

在这里插入图片描述
例如:

-- 给指定列添加数据 INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…);
INSERT INTO stu (id, NAME)
VALUES
	(1, '张三');

-- 给所有列添加数据,列名的列表可以省略的
INSERT INTO stu (
	id, -- 编号
	NAME,-- 姓名
	sex,
	birthday,
	score,
	email,
	tel,
	STATUS
)
VALUES
	(
		2,
		'李四',
		'男',
		'1999-11-11',
		88.88,
		'lisi@itcast.cn',
		'13888888888',
		1
	);

INSERT INTO stu
VALUES
	(
		2,
		'李四',
		'男',
		'1999-11-11',
		88.88,
		'lisi@itcast.cn',
		'13888888888',
		1
	);


INSERT INTO stu
VALUES
	(
		2,
		'李四',
		'男',
		'1999-11-11',
		88.88,
		'lisi@itcast.cn',
		'13888888888',
		1
	),(
		2,
		'李四',
		'男',
		'1999-11-11',
		88.88,
		'lisi@itcast.cn',
		'13888888888',
		1
	),(
		2,
		'李四',
		'男',
		'1999-11-11',
		88.88,
		'lisi@itcast.cn',
		'13888888888',
		1
	);

select * from stu;

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74

结果:
在这里插入图片描述

修改数据

在这里插入图片描述

注意:修改语句中不加条件,则将所有数据都修改

例如:

-- 将张三的性别改为女

update stu set sex = '女' where name = '张三';

-- 将张三的生日改为 1999-12-12 分数改为99.99

update stu set birthday = '1999-12-12', score = 99.99 where name = '张三';


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

删除数据

在这里插入图片描述

注意:删除语句中如果不加条件则所有语句都会被删除。

例如:

-- 删除张三记录

delete from stu where name = '张三';

  
 
  • 1
  • 2
  • 3

这样就删除掉了张三那一行

文章来源: blog.csdn.net,作者:十八岁讨厌编程,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/zyb18507175502/article/details/124379386

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。