文章目录
前置: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. 姓名,姓名最长不超过10个汉字
3. 性别,因为取值只有两种可能,因此最多一个汉字
4. 生日,取值为年月日
5. 入学成绩,小数点后保留两位
6. 邮件地址,最大长度不超过 64
7. 家庭联系电话,不一定是手机号码,可能会出现 - 等字符
8. 学生状态(用数字表示,正常、休学、毕业...)
-- SHOW TABLES;
CREATE TABLE student_form(
编号 INT,
姓名 CHAR(10),
性别 CHAR(1),
生日 DATE,
入学成绩 DOUBLE(5,2),
邮件地址 VARCHAR(64),
家庭联系电话 VARCHAR(15),
学生状态 TINYINT
);
删除表
修改表
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;
结果:
修改数据
注意:修改语句中不加条件,则将所有数据都修改
例如:
-- 将张三的性别改为女
update stu set sex = '女' where name = '张三';
-- 将张三的生日改为 1999-12-12 分数改为99.99
update stu set birthday = '1999-12-12', score = 99.99 where name = '张三';
删除数据
注意:删除语句中如果不加条件则所有语句都会被删除。
例如:
-- 删除张三记录
delete from stu where name = '张三';
这样就删除掉了张三那一行
附:数据类型表
整型
类型名称 | 取值范围 | 大小 |
---|---|---|
TINYINT | -128〜127 | 1个字节 |
SMALLINT | -32768〜32767 | 2个宇节 |
MEDIUMINT | -8388608〜8388607 | 3个字节 |
INT (INTEGHR) | -2147483648〜2147483647 | 4个字节 |
BIGINT | -9223372036854775808〜9223372036854775807 | 8个字节 |
无符号在数据类型后加 unsigned 关键字。
浮点型
类型名称 | 说明 | 存储需求 |
---|---|---|
FLOAT | 单精度浮点数 | 4 个字节 |
DOUBLE | 双精度浮点数 | 8 个字节 |
DECIMAL (M, D),DEC | 压缩的“严格”定点数 | M+2 个字节 |
日期和时间
类型名称 | 日期格式 | 日期范围 | 存储需求 |
---|---|---|---|
YEAR | YYYY | 1901 ~ 2155 | 1 个字节 |
TIME | HH:MM:SS | -838:59:59 ~ 838:59:59 | 3 个字节 |
DATE | YYYY-MM-DD | 1000-01-01 ~ 9999-12-3 | 3 个字节 |
DATETIME | YYYY-MM-DD HH:MM:SS | 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 | 8 个字节 |
TIMESTAMP | YYYY-MM-DD HH:MM:SS | 1980-01-01 00:00:01 UTC ~ 2040-01-19 03:14:07 UTC | 4 个字节 |
字符串
类型名称 | 说明 | 存储需求 |
---|---|---|
CHAR(M) | 固定长度非二进制字符串 | M 字节,1<=M<=255 |
VARCHAR(M) | 变长非二进制字符串 | L+1字节,在此,L< = M和 1<=M<=255 |
TINYTEXT | 非常小的非二进制字符串 | L+1字节,在此,L<2^8 |
TEXT | 小的非二进制字符串 | L+2字节,在此,L<2^16 |
MEDIUMTEXT | 中等大小的非二进制字符串 | L+3字节,在此,L<2^24 |
LONGTEXT | 大的非二进制字符串 | L+4字节,在此,L<2^32 |
ENUM | 枚举类型,只能有一个枚举字符串值 | 1或2个字节,取决于枚举值的数目 (最大值为65535) |
SET | 一个设置,字符串对象可以有零个或 多个SET成员 | 1、2、3、4或8个字节,取决于集合 成员的数量(最多64个成员) |
二进制类型
类型名称 | 说明 | 存储需求 |
---|---|---|
BIT(M) | 位字段类型 | 大约 (M+7)/8 字节 |
BINARY(M) | 固定长度二进制字符串 | M 字节 |
VARBINARY (M) | 可变长度二进制字符串 | M+1 字节 |
TINYBLOB (M) | 非常小的BLOB | L+1 字节,在此,L<2^8 |
BLOB (M) | 小 BLOB | L+2 字节,在此,L<2^16 |
MEDIUMBLOB (M) | 中等大小的BLOB | L+3 字节,在此,L<2^24 |
LONGBLOB (M) | 非常大的BLOB | L+4 字节,在此,L<2^32 |
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/122179.html