用新数据填充表

 一、插入记录操作
    语法: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 三个表的结构并创建表,然后将数据插入表里。