目录
1、INSERT
[db1]> insert into student value (1,'zzj',22,'M');
[db1]> insert into student (name,age,gender) value ('hmt',24,'F');
value和values都可以
[db1]> insert into student (name,age,gender) values ('aa',11,'F'),('bb',12,'M'),('cc',44,'M');
[db1]> insert into student set name='hao',age=22,gender='M';
2、update
mysql> update student set age=15 where id=13;
注意:一定要有限制条件,否则将修改所有行的指定字段
可利用mysql 选项避免此错误:
[root@centos8 ~]#vim /etc/my.cnf
[mysql]
safe-updates
3、delete
mysql> delete from student where id=1;
delete不会自动缩减数据文件的大小如果想清空表,保留表结构,也可以使用下面语句,此语句会自动缩减数据文件的大小。TRUNCATE TABLE tbl_name;
1、创建存储过程
create table testlog (id int auto_increment primary key,name char(10),age int default 20);
delimiter $$
create procedure pro_testlog()
begin
declare i int;
set i = 1;
while i < 100000
do insert into testlog(name,age) values (concat('wang',i),i);
set i = i +1;
end while;
end$$
delimiter ;
2、暂时还没执行存储过程,没有记录
mysql> \! ls -l /data/mysql/db1/
-rw-r----- 1 mysql mysql 8614 4月 11 15:37 testlog.frm
-rw-r----- 1 mysql mysql 98304 4月 11 15:37 testlog.ibd
3、执行存储过程
mysql> call pro_testlog;
4、数据量变大
mysql> \! ls -lh /data/mysql/db1/
-rw-r----- 1 mysql mysql 8.5K 4月 11 15:37 testlog.frm
-rw-r----- 1 mysql mysql 12M 4月 11 15:46 testlog.ibd
5、使用delete删除数据,占用空间没有缩小
mysql> delete from testlog;
Query OK, 99999 rows affected (1.44 sec)
mysql> \! ls -lh /data/mysql/db1
总用量 13M
-rw-r----- 1 mysql mysql 8.5K 4月 11 15:37 testlog.frm
-rw-r----- 1 mysql mysql 12M 4月 11 15:49 testlog.ibd
6、使用truncate删除,空间缩小,或者mysql> optimize table student;整理表空间
mysql> truncate testlog;
Query OK, 0 rows affected (0.02 sec)
mysql> \! ls -lh /data/mysql/db1
总用量 436K
-rw-r----- 1 mysql mysql 8.5K 4月 11 15:37 testlog.frm
-rw-r----- 1 mysql mysql 96K 4月 11 15:50 testlog.ibd