1、插入数据
向表中插入一条数据的 SQL 语法如下:
INSERT INTO [TABLE_NAME] (column1, column2, column3,...columnN) VALUES (value1, value2, value3,...valueN);
那好,我们具体来看一个例子吧。
先创建这么一张 person 表,使用如下 SQL:
create table person( id int primary key, name varchar(16) not null, age int, phone varchar(11), address varchar(256) );
接着,我们插入一条数据:
insert into person(id,name,age,phone,address) values (1,'yang',22,'123232323','中国上海');
于是你查询 person 表,会看到
+----+------+------+-----------+--------------+ | id | name | age | phone | address | +----+------+------+-----------+--------------+ | 1 | yang | 22 | 123232323 | 中国上海 | +----+------+------+-----------+--------------+
当然,如果你在插入数据时有些字段的值暂时不想传入,或是该字段有默认值,insert 语句是允许你部分数据插入的,前提是不能违反一些非空、唯一、类型不匹配约束。
例如我只想插入一条数据,而我只知道这个人的名字,于是我也可以插入一条记录,但只赋值 name 字段。
insert into person(id,name) values (2,'cao');
再次查询 person 表:
+----+------+------+-----------+--------------+ | id | name | age | phone | address | +----+------+------+-----------+--------------+ | 1 | yang | 22 | 123232323 | 中国上海 | | 2 | cao | NULL | NULL | NULL | +----+------+------+-----------+--------------+
关系型数据库中,所有未赋值的字段都默认为 NULL,当然这个默认值是可以修改的,你可以修改为空字符串或空格等等。
再说一个细节,当你想要插入一条数据时,并且希望为该表的每一个字段都赋值,那么你可以不用在表名后列举所有字段名,例如以下两条 insert 语句是等效的。
insert into person(id,name,age,phone,address) values (1,'yang',22,'123232323','中国上海');
insert into person values (1,'yang',22,'123232323','中国上海');
关于 insert,我们暂时先说到这,后面介绍子查询的时候还会提到它,接着我们来看修改数据 update。
2、修改数据
SQL UPDATE 语句用于修改表中现有的记录。基本格式如下:
UPDATE [table_name] SET column1 = value1, column2 = value2...., columnN = valueN
举个例子,这是 person 表现在的数据情况:
+----+------+------+-----------+--------------+ | id | name | age | phone | address | +----+------+------+-----------+--------------+ | 1 | yang | 22 | 123232323 | 中国上海 | | 2 | cao | NULL | NULL | NULL | +----+------+------+-----------+--------------+
我们执行:
update person set address='浙江杭州';
再来看 person 表:
+----+------+------+-----------+--------------+ | id | name | age | phone | address | +----+------+------+-----------+--------------+ | 1 | yang | 22 | 123232323 | 浙江杭州 | | 2 | cao | NULL | NULL | 浙江杭州 | +----+------+------+-----------+--------------+
你会发现 person 表的所有记录的 address 字段全都修改为「浙江杭州」。
所以,一般来说,我们的 update 语句都会结合 where 子句做一个数据筛选,只修改符合条件的记录的 address 字段值。
例如:
update person set address='浙江杭州' where id = 1;
3、删除数据
我们使用 DELETE 语句对标数据进行删除,基本格式语法如下:
DELETE FROM [table_name] WHERE [condition];
同样,不追加 where 子句做条件筛选会导致整张表的数据丢失。例如我们删除 id 为 1 的那条数据记录。
delete from person where id = 1;