今天更新一篇mysql的增删改查。相信大家面试都会被问懂不懂sql吧,事实如此,绝大部分公司都会使用到数据库如mysql、postgresql或oracle。其实不管是mysql、postgresql或oracle,它们使用的sql语句都是差不多的。所以懂mysql和简单增删改查是很重要的。下面一起来学习吧。
使用Python连接mysql详情可以看:python连接mysql,并写入数据到mysql
目录
一、创建数据库
database相当于一个大的包,里面装了若干个表。所有的表是在数据库下。所以我们先创建一个数据库
-- 创建一个名字为database的数据库
create database test_database
二、创建数据表
首先创建一张我们测试用的表,语句如下:
# 创建名为test的表
create table if not EXISTS `test`(
id int,
id_name VARCHAR(32),
age INT,
score INT,
datatime date
);
三、插入数据
然后就是往表里插入数据。有两种方式插入,一是单条插入,二是多条一起插入。
格式一:insert into 表名(columns1,columns2,…… )values(value1,value2,…… );
格式二:insert into 表名(columns1,columns2,…… )values
(value1,value2,…… ),
(value1,value2,…… ),
(value1,value2,…… );
-- 单条插入数据
insert INTO test(id,id_name,age,score,datatime) VALUES (1,"张三",26,100,"2022-01-04");
-- 多条插入数据
insert INTO test(id,id_name,age,score,datatime) VALUES
(2,"李四",27,100,"2022-01-05"),
(3,"王五",28,100,"2022-01-06");
四、修改表的字段名称
格式为:alter table 表名 change 原字段名称 新字段名称 字段类型 字段属性(约束);
修改表字段名称
-- alter table 表名 change 原字段名称 新字段名称 字段类型 字段属性;
alter table test change datatime datetime date default "2022-01-04";
译:修改test表的datatime为datetime,并增加了一个默认值为2022-01-04的约束
五、添加列
格式为:alter table 表名 add 新字段 字段类型 字段属性 after 字段名;
添加列
-- alter table 表名 add 新字段 字段类型 字段属性 after 字段名;
alter table test add weight int not null after age;
译:在age列后添加一列weight到test表中,并设置weight字段的类型为int,约束为非空约束。
六、删除列
格式为:alter table 表名 drop 字段;
删除列
-- alter table 表名 drop 字段;
alter table test drop weight;
译:将test表中weight字段drop掉
七、添加约束
mysql的几种约束类型:
①、主键约束:primary key
②、外键约束:foreign key
③、自增约束:auto_increment
④、唯一约束:unique
⑤、非空约束:not null
⑥、默认约束:default
格式为:alter table 表名 add 约束类型 (字段); 若要为不同字段添加相同的约束,即在括号后字段使用逗号分隔,如 alter table 表名 add 约束类型 (字段1,字段2,字段3);
给某个字段添加约束
-- alter table 表名 add 约束类型 (字段);
alter table test add primary key (id);
译:修改test表,给id字段增加一个主键
八、删除约束
格式为:alter table 表名 drop 约束类型; 值得注意如果要删除唯一约束时需要在约束类型前加上index。如下所示:alter table 表名 drop index unique
删除字段约束
-- alter table 表名 drop 约束类型;
alter table zk_test drop primary key;
译:修改test表,删除主键约束
九、修改表名
格式为:alter table 表名 rename to 新表名;
修改表名
-- alter table 表名 rename to 新表名;
alter table test rename to zk_test;
译:修改test表名为zk_test
十、更新表中数据
格式为:update 表名 set 修改的字段 = 修改的值 where 条件
更新表中数据
-- update 表名 set 更新的字段 = 更新的值 where 条件;
update test
set age = 25
where id = 1
译:更新test表中id为1的age值
十一、批量更新表中数据
可以配合sql的in,来做到批量数据的更新。但是考虑到in的性能,在数据量大的情况下不适用
格式:update 表名 set 修改的字段 = 修改的值 where 条件 in ( ? )
批量更新表中数据
-- update 表名 set 更新的字段 = 更新的值 where 条件 in ( ? );
update test
set age = 25
where id in (1 , 2 , 3)
译:更新test表中id为1、2、3的age值
十二、更新表数据
格式为:update 表名 set 字段1=字段1值,字段2,字段2值 where 条件;
更新表中数据
-- update 表名 set 字段1=字段1值,字段2,字段2值 where 条件;
update zk_test set score=200,age=26 where id=1;
译:更改zk_test表,将id=1的score值更新为200,age更新为26
十三、删除表中数据
格式为:delete from 表名 where 条件;
删除表中数据
-- delete from 表名 where 条件;
-- 若delete后无where时,会清空表所有数据
delete from zk_test where id_name='王五';
译:在zk_test表中删除掉id_name等于王五的记录
十四、删除表
格式为:drop table 表名;
删除表
-- drop table 表名;
drop table zk_test;
译:删除zk_test表
注意注意:在任何时候使用删除语句都要十分小心,万一不小心删除了公司重要数据,那可就不好玩了。。。。。。(最好也别说在我这边学的删除语句
)
总结
这篇博客记录最基础的sql语句,可能没有写的那么全面,之后想到其他的会再来更新。