MySQL数据库笔记-Day2-DML基本使用

一、Workbench的使用

MySQL可视化工具:Navicat、DBweaer、Workbench等

-- 注意1:每次打开workbench,点击连接,相当于登录了mysql,一定要记得先选择数据库【use xxx;】
-- 注意2:一个连接一旦建立完成,就可以重复使用,只要双击即可
-- 注意3:所有的sql语句都可以书写在当前workbench文件中,不管是建库,建表,删除,修改,增加等操作都是可以的
-- 注意4:书写在文件中的sql语句,是可以持久化的,只需要保存文件即可,按下ctrl + s即可
-- 注意5:如果需要创建一个新的query文件,则通过左上角file---->New Query 

二、DML

查询表中所有记录:

select * from 表名;      # *表示所有字段(列)
1.添加记录insert

a.向所有字段添加数据

insert into 表名 value(1,2,3, ...);

b.向指定字段添加数据

insert into 表名 (字段1,字段2,...) values (1,2,...);

c.批量添加(所有字段)

insert into 表名 values (1,2,3, ...),(1,2,3, ...),...;

d.批量添加(指定字段)

insert into 表名 (字段1,字段2,...) values (1,2,...),(1,2,...),...;

sql演示:

use mydb1;

-- DML:数据表的增删改的操作
-- 建表
-- 创建表的时候,不严谨写法如下:
create table a1(
sid int,
name varchar(10),
score int
);

-- 问题1:自定义的字段和关键字重名
-- 解决方案:创建表的时候,为了避免自定义的表名,字段名和系统的关键字重名,则可以通过反引号区分【反引号和波浪线是同一个键】
-- 下面是严谨的写法
create table `b1`(
`sid` int,
`name` varchar(10),
`score` int
);

-- 注意:每条sql语句的后面最好【一定】加分号

-- 问题2:对于陌生的表,不知道字段的含义,则无法确定其中的业务逻辑
-- 解决方案:给表或字段添加注释,注释只是一个普通的字符串,直接添加普通引号即可
create table `student`(
`sid` int comment '学号',
`name` varchar(20) comment '姓名',
`score` int comment '成绩',
`age` int comment '年龄'
)engine=InnoDB comment '学生表';
-- engine=InnoDB是MySQL默认的驱动

# insert:向指定表中插入数据
select * from student;

-- a.给所有字段插入单条数据,注意:默认给所有字段插入数据,值的个数和字段的个数一定要完全匹配
-- insert into student value (1001,'aaa');  -- 错误写法
-- 添加注释的快捷键:选中-----》ctrl + /
insert into student value (1001,'aaa',100,10);

-- b.给指定字段插入单条数据,注意:未指定的字段根据建表的设定会插入空值
insert into student (sid,name) value (1002,'bbb');

-- c.给所有字段插入多条数据
insert into student value(1004,'faf',89,9),(1006,'zzz',66,11),(1003,'xiaoming',90,12),(1005,'zhangsan',77,8);

-- d.给指定字段插入多条数据
insert into student (sid,name) value (1007,'wangwu'),(1009,'kjs'),(1010,'fahf'),(1012,'jack');
insert into student (sid,name,age) value (1007,'yuw',12),(1009,'cnhf',8),(1010,'lks',9),(1012,'tom',10);

-- 注意:1.值不要超出列定义的长度  2.如果要插入空值,使用null,默认情况下,没有传值也是null
-- 3.插入日期类型的时候,和字符串的用法一样,也是用引号表示
2.删除记录delete

a.删除表中所有记录

delete from 表名;

b.删除表中所有记录

truncate table 表名;

c.根据条件删除指定记录

delete from 表名 where 条件;

# 注意:delete和truncate的区别
	delete:删除表中的数据,表结构还在,删除后的数据可以找回
	truncate:把表直接drop掉,然后再创建一个同样的新表,删除的数据不能找回,执行速度比delete快
	
	#1
	当表被TRUNCATE 后,这个表和索引所占用的空间会恢复到初始大小
	DELETE操作不会减少表或索引所占用的空间
	drop语句将表所占用的空间全释放掉
	drop > truncate > delete
	
	#2.
	TRUNCATE 只能对TABLE;         
	DELETE可以是table和view
	
	#3
	TRUNCATE 和DELETE只删除数据, DROP则删除整个表(结构和数据)
	
	#4
	drop是DDL
	truncate,delete语句为DML
3.修改记录update

a.根据条件修改指定记录

update 表名 set 字段名1 = 字段值1,字段名2 = 字段值2,... where 条件;

b.修改所有记录

update 表名 set 字段名1 = 字段值1,字段名2 = 字段值2,...;

sql演示:

-- delete和update
-- DDL:drop   alter,主要针对数据库或数据表操作
-- DML:delete  update,主要针对数据/记录进行操作

select  * from student;

-- 1
-- a.删除所有记录
-- 默认情况下,打开了安全模式,无法直接删除表中所有记录,必须有where子句
delete from student;

-- b.删除指定条件的数据
delete from student where age is null;

-- 2.
-- 修改所有记录
update student set age=10;
-- 修改指定条件的数据
update student set age=10 where age is null;


-- 注意:使用drop,delete,update关键字的时候,一定要非常谨慎
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值