首先创建数据表:
create tableT_Person (
FName varchar(20),
FAge int,
FRemark varchar(20),
primary key(FName));
create table T_Debt (
FNumber varchar(20),
FAmount decimal(10,2) not null,
FPerson varchar(20),
primary key (FNumber),
forign key (FPerson) reference T_Person(FName));
插入数据:
insert into 表名(字段名)values(字段值)
如:
insert into T_Person(FName,FAge,FRemark) values("Tom",18,"USA");
注意:字段和值要一一对应
检查是否正确插入了数据:select*fromT_Person
以上则已经插入,可以反复利用insert into 插入多组数据。顺序是随机的。如:(大小写都可以,一般统一为一种比较好)
INSERT INTO T_Person(FName,FAge,FRemark) VALUES("Jim",20,"USA");
INSERT INTO T_Person(FName,FAge,FRemark)
VALUES("Lili",22,"China") ;
INSERT INTO T_Person(FName,FAge,FRemark) VALUES("XiaoWang",17," China ") ;
注意:
1,insert into 插入不需要只要指定表中所有的列,插入数据时,某些字段可以没有。如:
INSERT INTO T_Person(FAge,FName) VALUES(22,"LXF")
验证其结果:select * from T_Person
2,insert into 可以不指定要插入的表列,此时将按照定义表(create table T_Person)中的字段顺序来进行插入。如
INSERT INTO T_Person VALUES("luren1",23,"China");
简化了程序,但也容易出现错误
其他对insert的影响
1,非空约束对数据插入的影响:若某个字段规定了非空,则在输入数据时一定要有对应的值,否则会插入失败。
例如:T_Debt表的FAmount字段是有非空约束,若插入一下数据则会提示失败。
INSERT INTO T_Debt (FNumber, FPerson) VALUES ("1", "Jim")
2,主键对插入数据的影响:若在进行数据插入时,指定的主键与表中已有数据重复,则会导致违反主键约束的异常。因为主键必须唯一。
例如:T_Debt表中FNumber 字段是主键,如果执行下面SQL:
INSERT INTO T_Debt (FNumber,FAmount, FPerson) VALUES ("1",300, "Jim");
此时出错系统会提示:不能在对象"dbo.T_Debt" 中插入重复键
只要主键与已有数据不重复,则可创建成功。
3,外键对数据插入的影响:外键是指向另一个表中已有数据的约束,因此外键值必须是在目标表中存在的。如果插入的数据在目标表中不存在的话则会导致违反外键约束异常。
例如:T_Debt 表中FPerson 字段是指向表T_Person的FName 字段的外键,如果执行下面SQL:
INSERT INTO T_Debt (FNumber,FAmount, FPerson) VALUES ("3",100, "Jerry")
因为目标表T_Person中无FName 为Jerry的字段,所以会出现报错
只有外键指向的目标表中存在的数据,才能插入成功。
更新数据:update 表名 set 字段名=“字段值”
如:
UPDATE T_Person SET FRemark = "SuperMan"
更新多个时,用逗号分开
UPDATE T_Person SET FRemark = "Sonic",FAge=25
这种方式会一次性修改了该字段所在列的所以字段值,若只需改其中一个值,则可用where子句来实现条件的过滤。如:
把Tom的年龄改为12
UPDATE T_Person SET FAge = 12 WHERE FNAME="Tom";
将所有年龄为25 的人员的备注信息修改为“BlaBla”
UPDATE T_Person SET FRemark = "BlaBla" WHERE FAge =25
将FNAME 等于’Jim’或者’LXF’的行的FAge字段更新为22:
UPDATE T_Person SET FAge = 22 WHERE FName ="jim" OR FName="LXF"
其他对update 的影响:同insert into
删除数据:delete from 表名
DELETE FROM T_Debt;
DELETE FROM T_Person;
由于T_Debt 表中FPerson 字段是指向表T_Person 的FName 字段的外键,所以必须首先删除T_Debt表中的数据后才能删除T_Person中的数据。
drop table 表名 :删除整个表(数据和结构都删除)
delete from 表名 :只删除数据
delete只吃光饭,drop吃光饭还砸烂碗
如果只需要删除一些指定数据,同样可用where过滤条件:
因之前已经删除了表,则需插入数据:
INSERT INTO T_Person(FName,FAge,FRemark) VALUES("Jim",20,"USA");
INSERT INTO T_Person(FName,FAge,FRemark)VALUES("Lili",22,"China");
INSERT INTO T_Person(FName,FAge,FRemark) VALUES("XiaoWang",17," China ");
INSERT INTO T_Person(FName,FAge,FRemark) VALUES("Sam",16,"China");
INSERT INTO T_Person(FName,FAge,FRemark) VALUES("BlueFin",12,"Mars");
如:
删除年龄大于20 岁或者来自火星(Mars)的人
DELETE FROM T_Person WHERE FAge > 20 or FRemark = "Mars"
查看是否删除:SELECT * FROM T_Person(已删除)