04-数据库 - 续
一. 数据操作语言(DML) - 续
1. 删除数据 - DELETE
1.1 语法
DELETE FROM 表名
[WHERE 过滤条件]
注意: DELETE语句通常不会忽略WHERE子句, 否则是清空操作
# 删除person表中 '无名氏' 的数据
DELETE FROM person WHERE name='无名氏';
# 删除person表中年龄小于20岁的人
DELETE FROM person WHERE age<20;
# 清空操作
DELETE FROM person;
2. DML操作综合练习
# 综合练习
# 1.创建数据库 graduationpro(毕业设计)字符集UTF8并使用
CREATE DATABASE graduationpro CHARSET=UTF8;
USE graduationpro;
# 2.创建表js_cms_article(文章表),包括
# `category_code` varchar(64) COMMENT '栏目编码',
# `module_type` varchar(50) COMMENT '模块类型',
# `title` varchar(255) COMMENT '内容标题',
CREATE TABLE js_cms_article(
category_code varchar(64) COMMENT '栏目编码',
module_type varchar(50) COMMENT '模块类型',
title varchar(255) COMMENT '内容标题'
)CHARSET = UTF8;
SHOW TABLES ;
DESC js_cms_article_new;
# 3.修改表名称 js_cms_article_new
RENAME TABLE js_cms_article TO js_cms_article_new;
# 4.在category_code之前插入 id `id` INT COMMENT '编号',
# 在title之后插入`color` varchar(50) COMMENT '标题颜色',,
ALTER TABLE js_cms_article_new ADD id INT COMMENT '编号' FIRST ;
ALTER TABLE js_cms_article_new ADD color varchar(50) COMMENT '标题颜色' AFTER title;
# 5. 表中插入数据
# 1, '001','热点','立德树人','red'
# 2, '002','视野','全国各地','yellow'
# 3, '003','天下','印度尼西亚的苏门答腊象','blue'
INSERT INTO js_cms_article_new VALUES
(1, '001','热点','立德树人','red'),
(2, '002','视野','全国各地','yellow'),
(3, '003','天下','印度尼西亚的苏门答腊象','blue');
SELECT * FROM js_cms_article_new;
# 6. 修改 天下 的为 体育
UPDATE js_cms_article_new SET module_type='体育' WHERE module_type='天下';
# 7. 删除颜色为红色的数据
DELETE FROM js_cms_article_new WHERE color='red';
# 8. 删除表,删除库
DROP TABLE js_cms_article_new;
DROP DATABASE graduationpro;
SHOW DATABASES ;
二. 数据类型
1. 数值类型
1.1 整数类型
- TINYINT:占用1字节(8位),存储范围从-128到127(有符号)或0到255(无符号)。
- SMALLINT:占用2字节(16位),存储范围从-32768到32767(有符号)或0到65535(无符号)。
- INT类型 : 占用4个字节, 保存范围 -21亿~ +21亿
- BIGINT类型 : 占用8个字节, -9223372036854775808到9223372036854775807
1.2 浮点数类型
- DOUBLE(M,N) — 123.45
M是一个数字, 表示数字的总位数 – 5位
N是一个数字, 表示小数位的位数 – 2位
eg: DOUBLE(5,2) — 345.67/ 678.01…
USE mydb;
SHOW TABLES;
CREATE TABLE student(
id INT,
name VARCHAR(32),
grade DOUBLE(3,1) #99.8; 88.6; 77.9
)CHARSET=UTF8;
# 如何插入浮点数
INSERT INTO student(id, name, grade) VALUES (1,'张三','99.8');
# 四舍五入 : 如果小数位的精度超过允许的精度时,会进行四舍五入
INSERT INTO student(id, name, grade) VALUES (2,'李四','99.86');
INSERT INTO student(id, name, grade) VALUES (3,'王五','99.81');
# 报错: 超出范围; 如果四舍五入的值超出该字段可以保存的最大值是会报错
INSERT INTO student(id, name, grade) VALUES (4,'老六','998.5');
INSERT INTO student(id, name, grade) VALUES (5,'李雷','99.9');
# 报错: 超出范围; 最大值: 99.9
INSERT INTO student(id, name, grade) VALUES (5,'李雷','99.99');
# DOUBLE(7,2) # 可以存储的最大值: 99999,99
SELECT * FROM student;
2. 字符类型
2.1 定长字符串(固定长度)
CHAR 类型是定长字符串
- CHAR(m): m是一个数字, 表示长度, 单位是字符 , m最大可以取255
- CHAR类型, 在磁盘中开辟的长度是固定的
- 优点 : 在磁盘中保存每条记录长度都是固定的, 因此读取速度快
- 缺点 : 在磁盘中占用空间固定, 无论实际保存多少数据, 都要占据空间,因此可能造成空间的浪费
eg:
CHAR(5) : 开辟5个字符的内存空间- ABCDE ---- 5个字符
- A -------------- 5个字符
2.2 变长字符串
VARCHAR类型是变长字符串
- VARCHAR(m): m是一个数字, 表示字符串的长度
- 实际占用磁盘空间按照实际保存数据而决定
- 优点: 由于磁盘空间占用取决于实际保存的数据, 因此不造成磁盘空间的浪费
- 缺点: 由于数据长度不一致, 会导致读取效率低
eg:
VARHAR(20) — 20个字符空间- A ---- 1个字符空间
- ABCDE — 5个字符空间
USE mydb;
DROP TABLE student1;
CREATE TABLE student1(
id INT,
#name CHAR(3)
#name VARCHAR(3)
name VARCHAR(4)
)CHARSET=UTF8;
DESC student1;
INSERT INTO student1 VALUES (1,'赵丽颖');
# 报错, 数据超出设置长度 CHAR(3)
INSERT INTO student1 VALUES (2,'迪丽热巴');
INSERT INTO student1 VALUES (3,'杨幂');
SELECT * FROM student1;