Introduction to MySQL (5): CRUD and data maintenance

1 取得表格资讯

1.1 DESCRIBE指令

「DESCRIBE」是MySQL资料库提供的指令,它只能在MySQL资料库中使用,这个指令可以取得某个表格的结构资讯,它的语法是这样的:

mysql_06_snap_01

 

你在MySQL的工具中执行「DESC cmdev.dept」指令以后,MySQL会传回「cmdev.dept」表格的结构资讯:

 

mysql_06_snap_02

 

 

1.2 栏位顺序

每一个表格在设计的时候,都会决定它有哪一些栏位,和所有栏位的详细设定。 另外也会决定表格中的栏位顺序,知道表格栏位顺序在接下来的讨论中是很重要的:

 

mysql_06_snap_03

 

注:如何建立一个新的表格会在「第八章、表格与索引」中讨论。

 

 

2 新增

2.1 基础新增叙述

 

新增资料到资料库的表格中使用「INSERT」叙述,下列是这个叙述的基本语法:

 

mysql_06_snap_04

 

使用这个语法新增纪录的时候,要特别注意表格的栏位个数与顺序,下列的新增叙述会新增一笔部门的纪录到「cmdev.dept」表格中:

 

mysql_06_snap_05

 

除了明确的指定新增纪录的每一个栏位资料外,你也可以使用「DEFAULT」关键字,让MySQL为你写入在设计表格的时候,为栏位指定的预设值。 下列的新增叙述同样会新增一笔部门的纪录到「cmdev.dept」表格中,不过部门的所在位置(location)栏位值指定为使用预设值:

 

mysql_06_snap_06

 

使用这种语法新增纪录的时候,如果资料个数与栏位个数不一样的话,就会发生错误:

 

mysql_06_snap_07

 

资料个数虽然没有错,顺序却不对了,也有可能会造成错误:

 

mysql_06_snap_08

 

新增叙述的另外一种语法,就提供比较灵活的新增纪录方式,你可以自己指定新增纪录的栏位个数和顺序:

 

mysql_06_snap_09

 

在你额外为这个新增叙述指定栏位以后,指定储存资料的时候就要依照自己指定的栏位个数与顺序:

 

mysql_06_snap_10

 

如果没有依照自己指定的栏位个数与顺序,就会发生错误:

 

mysql_06_snap_11

 

因为这种新增叙述的语法可以自己指定栏位的个数与顺序,所以你只要指定写入栏位的资料就可以了。 不过要特别注意下列两种语法的差异:

 

mysql_06_snap_12

 

也因为这样的规定,所以下列这个新增叙述在语法上虽然没有错误,如果违反表格设计上的规定,同样会造成错误:

 

mysql_06_snap_13

 

这种新增叙述的语法还有一个比较特别的用法,如果你要新增的纪录,所有栏位的值都要使用预设值,就可以使用下列的写法。 不过要特别注意下列的新增叙述执行以后会造成错误,因为「deptno」与「dname」栏位的预设值是「NULL」,可是它们又不能储存「NULL」:

 

mysql_06_snap_14

 

下列是新增叙述的第三种语法:

 

mysql_06_snap_15

 

这种语法只是提供你另外一种新增纪录的写法,下列两个新增叙述的效果是一样的:

 

mysql_06_snap_16

 

 

Click to read the full text

 

More references:

MySQL Super Beginner Tutorial Series

MySQL入门 (一) : 资料库概论与MySQL的安装

MySQL入门 (二) : SELECT 基础查询

MySQL入门 (三) : 运算式与函式

Introduction to MySQL (4): JOIN and UNION queries

MySQL入门 (六) : 字元集与资料库

 

This article is transferred from: Introduction to MySQL (5): CRUD and data maintenance

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326678683&siteId=291194637