Mysql速成笔记2(DML)
数据库中操作的最基本单位是行(库表行列,列是最小的单位,库是最大的单位,行是最基本单位)
/*
3.1 数据操作语言[插入]
语法全列插入[不推荐]insert into 表名 values |value (值,值,值...)值的数量要等于表的所有列的数量值的类型和顺序要和表的类的类型和顺序一一对应指定列插入[推荐]insert into 表名(列名,列名...)values | value(值,值,值...)值的数量要等于表的指定的列的数量值的类型和顺序要和[指定列的]顺序一一对应多行插入insert into 表名(列名,列名...) values | value(值,值,值...),(值,值,值...),(值,值,值...)insert into 表名 values | value(值,值,值...),(值,值,值...),(值,值,值...)
注意1.values 或者value 推荐使用values2.插入的是字符串或者时间类型,值的顺序和类型要和表的列名或者指定的列名一一对应3.如果插入的是时间类型,值的格式要和表的列名或者指定的列名的格式一一对应
练习1.插入一名学生的所有信息,包括学号、名字、年龄、生日和身高。2.插入一名学生的学号、名字、年龄,其他列使用默认值。3.插入两名学生的信息,包括学号、名字、年龄、生日和身高。4.插入一名学生的信息,只提供学号、名字和年龄,其他列为空值。
#创建数据库dml d1*/#创建数据库dml_d1
CREATE DATABASE if not exists dml_d1 ;
use dml_d1;create table if not exists student2(stu_id int COMMENT '学号',stu_name varchar(100) COMMENT '姓名',stu_age tinyint UNSIGNED COMMENT '年龄',stu_birthday date COMMENT '出生日期',stu_height decimal(4,1) COMMENT '身高'
);INSERT INTO student2 VALUES (1,'张三',18,'2005-01-01',1.7);INSERT INTO student2 VALUES (1,'张三',18,'2005-01-01',1.7),(5,'王五',22,'2005-01-02',1.9);INSERT INTO student2(stu_id,stu_name,stu_age,stu_birthday,stu_height)
VALUES(1002,'李四',19,NULL,1.8);/*
3.2 数据操作语言[修改]语法全表修改(全行修改)update 表名 set 列名=新值,列名=值,列名=值...条件修改(条件筛选行)update 表名 set 列名=新值,列名=值,列名=值...where 条件注意1.不添加where,代表修改一个表中的所有行的数据,反之,只修改符合where条件的2.如果修改多个列set列名=值,列名=值练习。#1.将学号为8的学生的姓名改为'黄六',#2.将年龄小于20岁的学生的身高增加2.0。#3.将学号为11的学生的生日修改为'2003-07-10',且年龄改成21。#4.将所有学生的年龄减少1岁。*/-- 插入学生数据准备数据USE book_libs;
INSERT INTO student2(stu_id,stu_name,stu_age,stu_birthday, stu_height) VALUES
(3,'张三',18,'2005-01-01',1.7),(4,'李四',19,'2005-01-02',1.8),(8,'王五',22,'2005-01-03',1.9);#1.将学号为8的学生的姓名改为'黄六',update student2 set stu_name='黄六' where stu_id=8;#2.将年龄小于20岁的学生的身高增加2.0。update student2 set stu_height=stu_height+2.0 where stu_age<20;#3.将学号为11的学生的生日修改为'2003-07-10',且年龄改成21。update student2 set stu_birthday='2003-07-10',stu_age=21 where stu_id=11;#4.将所有学生的年龄减少1岁。update student2 set stu_age=stu_age-1;/*
3.3
数据操作语育[删除]语法全表删除delete from 表名;条件行删除delete from 表名 where 条件;注意1.开发中很少使用全表删除2.delete删除和清空表truncate 删除,都会删除表中的全部数据,truncate 不仅删除表数据,还会删除数据库id的最大记录值!练习#1.将年龄大于23的学员移除。#2.将身高高于200且学号大于10的数据移除。#3.将身高高于200或学号大于10的数据移除。#4.将所有学生数据移除。*/delete from student2 where stu_age>23;
#2.将身高高于200且学号大于10的数据移除。
delete from student2 where stu_height>200 and stu_id>10;
#3.将身高高于200或学号大于10的数据移除。
delete from student2 where stu_height>200 or stu_id>10;
#4.将所有学生数据移除。
delete from student2;