表文件数据行管理:
1.插入命令: 负责要求MySql服务器向指定的表文件添加数据行
insert into 表文件名(字段名1,字段名2,字段名3) values(值1,值2,'值3');
举例:
insert into student(no,name,sex,age,email)
values(1,'zhangsan','m',20,'zhangsan@123.com');
字段名顺序改变,值的顺序也要发生改变,必须一一对应。
insert into student(email,name,sex,age,no) values('lisi@123.com','lisi','女',20,2);
如果字段没写全,那么空闲的字段内容默认就是null。也增加一条记录。
insert into student(name) values('wangwu');
使用该语句也可以省略全部字段名(相当于全部按顺序都写上了),但是这时值必须写全,且顺序不能变
insert into student values(4,'zhaoliu','m',19,'zhaoliu@123.com');
使用default关键字来设定默认值:(在创建表的时候使用)
比如:
create table student(
no int,
name varchar(32),
sex char(1) default 'm', #这样创建表格后,性别字段在没有指定值的情况下,默认就是'm',
age int(3),
email varchar(255)
);
2.查询命令: 负责要求MySql服务器将指定的表文件数据行展示(详解见查询语句)
select * from 表文件名;
3.删除命令:负责要求MySql服务器将指定的表文件数据行删除
delete from 表文件名; #删除表文件中所有的数据行(表结构还在)
delete from 表文件名 where 判断条件; #将满足条件的数据行进行删除
举例::
delete from student where id = 2; #删除student表中id = 2的记录
delete from student; #这里没加条件限制,整张表的记录会被全部删除。
4.更新命令:负责要求MySql服务器将指定的表文件数据行更新
update 表文件名 set 字段名=新值,字段名2=新值;//将所有数据行指定字段赋新值
update 表文件名 set 字段名=值,... where 判断条件;//将满足条件的数据行字段信息更新
举例:把user表中的id = 2的记录name修改为Jack,birth修改为2000-11-05并更新记录创建时间
update user set name = 'jack',birth = '2000-11-05',create_time = now() where id = 2;
高级插入命令:
创建一个名为user的表文件
create table user(
id int,
name varchar(32),
birth varchar(20),
cerate_time date
);
1.一次性向表文件插入多行数据
insert into 表文件名(字段1,字段2,字段3)
values (值1,值2,值3),
(值10,值20,值30)
...;
举例:向表user中一次性增加3条记录
insert into user(id,name,birth,cerate_time)
values(1,'zs','1999-09-10',now()),
(2,'lisi','2020-03-21',now()),
(3,'wangwu','1978-12-11',now());
2.简化版插入命令:如果插入数据时每一个字段都能赋值,此时插入命令不需要指定字段名,插入值顺序此时需要与表文件字段顺序保持一致。
insert into 表文件名 values(值1,值2,值3)
3.数据行备份命令:可以将表A中数据行复制到表B,(表A与表B字段结构必须完全一致,执行命令之前表B已经存在)
insert into B select * from A
表文件备份命令: 将表文件A进行备份,备份生成表文件B
执行下一行命令语句:(执行命令之前表B不存在)
create table B select * from A
快速删除表中数据:
delete from dept_bak;//删除dept_bak表中的数据(delete属于DML语句)
delete语句删除数据的原理:
表中的数据被删除了,但是这个数据在硬盘上的真实存储空间不会被释放!
缺点:删除效率比较低
优点:支持回滚,后悔了可以再恢复数据!
truncate语句删除数据的原理:(需要掌握)(truncate不能删除单条记录)
属于物理删除,
优点:快速,
缺点:不支持回滚,数据不能恢复
用法:truncate table dept_bak;//删除dept_bak表中数据。(truncate属于DDL操作语句)
如果有一张数据非常大的表,里面有上亿条记录,使用delete删表中数据也许需要执行1小时才能完成,
如果选择使用truncate删除表中数据,只需要不到1秒就可以完成(需要提醒用户删除后不能恢复)。
【delete和truncate是删除数据,删除后表还在!】
【需要删除表,需要执行命令: drop table 表名;//这是删除表!】
数据导入:
导入数据:source 完整路径名*.sql; (注意路径中不要有中文)