上回说完表的结构,然而只有表的结构是不够的,它只是一副空壳,虚无的一片,所以渴望有东西去填满它,那种东西就是数据。

那么问题来了,如何将数据输入到MySQL中去。

一个方法是先建立一张表的结构,确定好规则,然后用INSERT INTO语句,将数据塞进入。另一个方法则是直接从外部导入进去,而第二种方法则不需要先建立表的结构。

先说第一种方法,用INSERT INTO语句。语法为

INSERT INTO table_name(column_list)VALUES(value_list)

举个实例:这里先建立一张表,顺便一提,MySQL是不区分大小写的,所以你写大写小写它都认,但一般为了更好的使表的字段名与类型做区分,我们把字段名写成小写,字段类型,约束写成大写,这是个好习惯,(不过我还达不到这种境界,随意点也无所谓吧)

CREATE TABLE old_student(
id int(16) primary key,
name varchar(25),
age int(3),
score int(3)
);

然后就可以输入数据了

INSERT INTO student(id,name,age,score)

VALUES(1,'张三',18,80);

这个实例的意思是,向student这张表的id,name,age,score字段,插入数据,其中数据与字段是一一对应的,如1指的是id,张三指的是name,如此这般。

括号里的是来指定列的,如果不指定的话,也不会有什么问题,但是插入的数据不能与表内的结构有偏差。如

INSERT INTO student

VALUES(2,'李四',18,70);

这就不会报错,但是如果输入下面的。

INSERT INTO student

VALUES('李四',18,0,70);

就会报错。我们不能输入大于表结构的数据,也不可以插入小于表结构的数据。(感谢知友指正)

INSERT INTO student(id,name) /*这种写法也是错的*/

VALUES(3,'阿九');

当然我们也可以同时输入多个数据,如下面的例子

INSERT INTO student

VALUES(3,'赵五',18,76),

(4,'王六',19,89),

(5,'阿三',18,50);

值得一提的是,将如果表结构有AUTO_INCREMENT约束,则未插入的数据不为空,会自动的补充下去。

最后,我们来说一个特殊的插入数据方法,将查询的结果插入到表中,如果接下来的不是很了解,也没有关系,因为下一节会正式开始讲。

查询数据,就是从原始表中,查询自己想要的数据,而这些数据,将会以一个临时表的形式返回出来。一个最常用的查询如下

SELECT* FROM

它的意思是从表中挑选出所有的数据,我个人是把它读作select all from

我事先已有一张表,名叫old_student,它的表结构跟student一模一样,它里面有一个数据。如下

接下来把这个旧表中的数据,迁移到新表,student中来。用命令

INSERT INTO table_name1(column_list)

SELECT(column_list1)FROM table_name2 WHERE(condition);

它的意思是,从table_2中,指定列,然后选取这个列满足条件的数据,插入表table中。

这里就直接用select* from old_student代替了。输入如下

好了,如何输入数据已经讲完了,剩下的问题还有,如果我们输错了数据,我们如何去更新它,或者直接把它给删掉。这时下一期的内容,byebye.