用新数据填充表
一、插入记录操作
语法:INSERT INTO 表名 (列名) VALUES (列值);
叙述:若在输入记录时,每个字段均有内容,可省略表名后的字段名。如果表名后面没写字段名,则默认是向所有的字段添加值。
注意事项:1. 插入的值必须和列一一对应,各数据项用逗号分隔;
2. 插入值的数据类型、精度和小数位数必须和对应列的数据类型、精度和小数位数相一致;
3. 如果在设计表的时候就指定了某列不允许为空,则必须插入数据;
4. 如果某列的某个字段没有值,可以插入 NULL 值;
5. 具有缺省值的列,可以使用DEFAULT(缺省)关键字来代替插入的数值;
6. 字符串和日期值数据必须用单引号括起来,数值型数据不用括起;
7. 所有标点符号一律在英文半角状态下输入。
例1:向 people 表中添加一条记录:insert into people(name,age)values("zhangsan",20);
例2:创建一个表格 TEAMS 来记录篮球队:CREATE TABLE TEAMS(TEAM_ID INTEGER(2) NOT NULL,NAME VARCHAR(20) NOT NULL );
生成篮球队的记录:INSERT INTO TEAMS VALUES (1,'STRING MUSIC');
INSERT INTO TEAMS VALUES (2,'HACKERS');
INSERT INTO TEAMS VALUES (3,'SHARP SHOOTERS');
INSERT INTO TEAMS VALUES (4,'HAMMER TIME');
例3:创建一张学生信息表,往表中插入数据:create table Students( Scode int not null auto_increment, Sname varchar(20) not null,
Saddress varchar(20) default'未知', Sgrade int, SEmail varchar(20), Ssex bit, primary key(Scode) );
INSERT INTO Students (Sname,Saddress,Sgrade,SEmail,Ssex)VALUES ('张青裁','上海松江',96,'ZQC@Sohu.com', 0) ;
INSERT INTO Students (Sname,Saddress,Sgrade,SEmail,Ssex)VALUES ('李晓明','北京海淀',75,'LXM@Sohu.com', 1) ;
INSERT INTO Students (Sname,Saddress,Sgrade,SEmail,Ssex)VALUES ('王晶晶', default, 83, 'WJJ@Sohu.com', 1) ;
二、插入多行数据
INSERT INTO 表名 (列名) VALUES (列值), (列值), (列值) …… ;
例4:往学生信息表中插入多行数据:
INSERT Students (Sname,Sgrade,Ssex) VALUES
('测试女生1',75,0),
('测试女生2',77,0),
('测试女生3',83,0),
('测试男生1',81,1),
('测试女生4',90,0),
('测试男生2',94,1),
('测试女生5',51,0),
('测试男生3',53,1);
三、从另一个表插入数据
INSERT INTO 表名 (列名)
SELECT (列名) FROM 源表名;
这里,SELECT 是执行查询的主要命令,下一章我们会详细介绍;FROM 是查询中的一个子句,用于指定要查询的表的名称。
例1:把学生信息表中的部分数据插入通讯录表里:
INSERT INTO TongXunLu (姓名, 地址, 电子邮件)
SELECT Sname, Saddress, SEmail FROM Students;
例2:把 TEAMS 表里的数据插入 TEAMS_TMP 表里:
INSERT INTO TEAMS_TMP
SELECT * FROM TEAMS;
【参考资料】
W3school 在线SQL教程 http://www.w3school.com.cn/sql/sql_insert.asp SQL INSERT INTO 语句
课后练习:
1. 在3.3节的练习6中,我们为数据库创建了四个表----学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher),图中是四个表里的数据,用 INSERT 语句将数据填入表里。
2. 创建表 PLAYERS 记录球队队员信息:
CREATE TABLE PLAYERS
(PLAYER_ID INTEGER(2) NOT NULL,
LAST_NAME VARCHAR(20) NOT NULL,
FIRST_NAME VARCHAR(20) NOT NULL,
TEAM_ID INTEGER(2) NULL,
NUMBER INTEGER(2) );
用 INSERT 语句生成队员的记录:
1 , SMITH , JOHN , 1 , 12 ;
2 , BOBBIT , BILLY 1 , 2 ;
3 , HURTA , WIL , 2 , 32 ;
4 , OUCHY , TIM , 2, 22 ;
5 , BYRD , ERIC , 3 , 6 ;
6 , JORDAN , RYAN , 3 , 23 ;
7 , HAMMER , WALLY , 4 , 21 ;
8 , HAMMER , RON , 4 , 44 ;
11 , KNOTGOOD , AL , NULL , 0
3.开发一个新数据库,使用如下数据:学生、课程、成绩插入数据
学生信息
'95001','洛燕妮','女',20,'信息系'
'95002','欧阳炎','男',19,'计算机系'
'95003','何东升','男',21,'美术系'
'95004','刘晨','男',18,'计算机系'
'95005','沙明华','女',21,'美术系'
'95006','欧阳宝宝','男',19,'美术系'
课程信息
1,'JAVA'
2,'C'
3,'.NET'
4,'SQL'
成绩信息
'95001',1,98 '95002',1,50 '95004',1,70
'95003',4,95 '95005',4,40 '95006',4,77
'95001',2,80 '95002',3,58 '95006',2,70
请设计 student、course、score 三个表的结构并创建表,然后将数据插入表里。