4.新增字段
对于已经创建好的数据表,也可以根据业务需求利用 ADD新增字段,基本语法格式如下
·语法格式 1:新增一个字段,并可指定其位置
ALTER TABLE 数据表名
ADD [COLUMN]新字段名 字段类型[FIRSTIAFTER 字段名]语法格式 2:同时新增多个字段
ALTER TABLE 数据表名
ADD [COLUMN](新字段名 1 字段类型 1,新字段名 2 字段类型 2,…)
在上述语法中,在不指定位置的情况下,新增的字段默认添加到表的最后。另外,同时新增多个字段时不能指定字段的位置。
下面在 my_goods 数据表中字段 name 后新增一个 num 字段,表示商品的数量,具体SQL 语句如下。
mysql>ALTER TABLE my goods ADD num INT AFTER name,
Query OK,0 rows affected (0.01 sec)
Records:0 Duplicates:0warnings:0
5.删除字段
删除字段指的是将某个字段从数据表中删除,MySQL 中可以通过 DROP 完成。基本语法格式如下
ALTER TABLE 数据表名 DROP [COLUMN]字段名;
下面以删除 my_goods 数据表中 num 字段为例演示,具体 SQL 语句如下
mySql> ALTER TABLE my goods DROP num;
Query OK,0 rows affected (0.02 sec)
Records:0 Duplicates:0Warnings:0
执行上述 SQL,语句后,査看删除 num 字段后数据表中的字段,具体结果如下
2.2.6 删除数据表
删除数据表操作指的是删除指定数据库中已经存在的表。另外,在删除数据表的同时,存储在数据表中的数据都将被删除,基本语法格式如下
DROP [TEMPORARY]TABLE [IF EXISTS]数据表 1[,数据表 2]…;
从上述语法可知,删除数据表时,可同时删除多个数据表,多个数据表之间使用逗号分隔。可选项 IF EXISTS用于在删除一个不存在的数据表时,防止产生错误
下面以删除数据表 my_goods 为例进行演示,具体 SQL语句及执行结果如下
mysql>DROP TABLE IF EXISTS my goods;
Query OK,0 rows affected (0.01 sec)
值得一提的是,在开发时应谨慎使用数据表删除操作,因为数据表一旦删除,表中的所有数据都将被清除。
2.3 数据操作
2.3.1 添加数据
通常情况下,要想操作数据表中的数据,首先要保证数据表中存在数据。MySQL 中使用 INSERT语句向数据表中添加数据。根据操作的不同目的一般可以分为两种,一种是为所有字段添加数据,另一种是为部分字段添加数据。下面将对这两种操作进行详细讲解。
1.为所有字段添加数据
在 MySQL, 中,为所有字段插入记录时,可以省略字段名称,严格按照数据表结构(字段的位置)插人对应的值,基本语法格式如下。
INSERT [INTO]数据表名 {VALUES |VALUE}(值 1[,值 2]…);
从上述语法可知,关键字 INTO 是可选项,VALUES 和 VALUE 可以任选一种,通常情况下使用 VALUES。值列表“值 1[,值 2]…”中多个值之间使用逗号分隔。下面为 goods 表添加一条商品记录,编号为1,商品名为 notebook,售价是 4998 元,描述信息为 High cost performance,具体 SQL 语句如下。
mysql> INSERT INTO goods
->VALUES(l,"notebook',4998,'High cost performance');Query OK,1 row affected (0.00 sec)
在上述 SQL,语句中,插入的数据顺序与创建数据表时对应的字段顺序相同,分别表示商品编号、商品名、价格和商品描述。
脚下留心
在 MySQL中,若创建的数据表未指定字符集,则数据表及表中的字段将使用默认的字符集 latin1。因此,若用户插入的数据中含有中文,则会出现错误提示。例如,向 goods 表中输入含有中文的数据,具体SQL语句及执行结果如下,
mysql> INSERT INTO goods
->VALUES(2,"笔记本',9998,"续航时间超过10个小时');ERROR 1366 (HY000) : Incorrect string value: '\xB1\xCA\xBC\xC7\xBl\xBE'for column 'name' at row 1
为了解决以上中文插入的问题,通常在创建数据表时添加表选项,设置数据表的字符集,如下所示。
CREATE ITEMPORARYI TABLE IIF NOT EXISTS]表名(字段名 字段类型[字段属性]…)[DEEAUIT]{CHARACIER SETICHARSET}[-]utf8;
在上述语法中,CHARACTER SET与 CHARSEI是同义词,设置字符集时选取其一即可。其中,utf8 字符集支持世界上大多数国家的字符,通常推荐使用此字符集。另外,对于已经添加数据的数据表,则可以通过 ALTER TABLE…CHANGEMODIFY完成对表字段字符集的设置,在使用时需要注意它们语法的不同。下面以修改goods 表中 name 和 description 字段的字符集为例进行演示。具体 SQL,语句及执行结果如下。
上述 SQL语句中,在同时修改多个字段时,使用逗号(,)分隔。修改完成后,可以再次向 goods 表中插入以上含有中文的数据,可以看到 Query OK 成功插入的提示。
2.为部分字段添加数据
除了为数据表中所有字段添加数据外,还可以通过指定字段名的方式增加数据。其中指定的字段名可以是数据表中全部的字段,也可以是部分的字段。基本语法格式如下
INSERT [INTO]数据表名(字段名1【,字段名 2]…)(VALUES IVALUE}(值 1L,值 2]…);
在上述语法中,“(字段名1[,字段名2…)”字段列表中,多个字段名之间使用逗号分隔,且字段名的编写顺序可与表结构(字段位置)不同,只需保证值列表“(值 1[,值 2…)”中的数据与其相对应即可。
下面将编号为3的 Mobile phone 插人到 goods 数据表中。具体 SQL,语句及执行结果如下
mysql>INSERT INTo goods (id, name)VALUES (3, 'Mobile phone' );Query OK,1 row affected (0.00 sec)
上述 SQL语句中,字段的名称在使用时不需要使用引号包裹。另外,未添加数据的字段系统会自动为该字段添加默认值 NULL(空的)。
除此之外,MySQL,中还提供了另外一种使用INSERT语句为指定字段添加数据的方基本语法格式如下。
INSERT [INTO]数据表名
SET字段名1-值1[,字段名2-值2]…;
在上述语法中,“字段名 1”“字段名 2”表示待添加数据的字段名称,“值 1”“值 2”表示添加的数据。若在 SET 关键字后,为表中多个字段添加数据,在每对“字段名=值”之间使用逗号(,)分隔即可。
例如,使用“INSERT…SET…"语法实现上述示例的功能,具体 SQL 语句如下
INSERT INTo goods SET id =3,name ="Mobile phone";
需要注意的是,最后一个字段赋值后不需要添加逗号。
3.一次添加多行数据
在实际开发中,向一张数据表中同时插人多条记录时,重复地书写以上 INSERT指令,操作不仅烦琐,又不便于阅读。因此,可以使用 MySQL 提供的另外一种插入数据的语法完成多数据插人。基本语法格式如下,
INSERT [INTO]数据表名[(字段列表)]
{VALUESIVALUE}(值列表)[,(值列表)]…;
在上述语法中,多个“值列表”之间使用逗号(,)分隔。其中,“字段列表”在省略时,插入的数据需严格按照数据表创建的顺序插入,否则“值列表”插入的数据仅需与字段列表中的字段相对应即可。
例如,将以上一次插入一条记录的操作修改成以下形式,完成一次添加多行数据
mySql> INSERT INTO GOOdS VALUES
->(1,'notebook',4998,"High cost performance')
->(2,'笔记本',9998,"续航时间超过 10个小时'),
->(3,"Mobile phone',NULL,NULL);
Query OK,3 rows affected (0.00 sec)
Records:3 Duplicates:0warnings:0
需要注意的是,在多数据插人时,若一条数据插入失败,则整个插入语句都会失败
2.3.2 查询数据
数据的查询操作是 MySQL中最常用,也是最重要的功能之一。下面介绍3种最基本的数据查询方式,其他更复杂的操作会在本书的其他章节中详细地讲解。
1.查询表中全部数据
查询数据表中所有字段的数据,可以使用星号“*”通配符代替数据表中的所有字段名,基本语法格式如下。
SELECT * FROM 数据表名;
下面利用以上语法査看 goods 表中插人的全部数据。具体 SQL语句如下
2.查询表中部分字段
查询数据时,可在SELECT语句的字段列表中指定要查询的字段。基本语法格式如下
SELECT {字段名 1,字段名 2,字段名 3,…}EROM 数据表名;
上述语法中,字段列表“字段名1,字段名2,字段名3,…”中,若列出数据表中所有的字段名,则表示查询表中全部数据。
下面仅査看 goods 表中 id 和 name 字段,具体 SQL语句及执行结果如下
3.简单条件查询数据
在查询数据时,若想要查询出符合条件的相关数据记录时,可以使用 WHERE 实现基本语法格式如下。
SELECT *|{字段名 1,字段名 2,字段名 3,…}
EROM数据表名 MIRE字段名=值;
上述语法表示获取“字段名”等于指定“值”的数据记录,数据的内容中可以是表的部分字段或全部字段。
下面获取 goods 表中 id 等于1的全部商品信息。具体 SQL,语句及执行结果如下
2.3.3 修改数据
修改数据是数据库中常见的操作,通常用于对表中的部分记录进行修改。例如,商品在做活动时,需要在原价的基础上打折,此时就需要对商品价格的数据进行修改。MySQL, 提供了 UPDATE 语句修改数据。基本语法格式如下
UPDATE 数据表名
SET字段名 1=值 1[,字段名 2-值 2,…]
[WHERE 条件表达式1
上述语法中,若实际使用时没有添加WHERE条件,那么表中所有对应的字段都会被修改成统一的值,因此读者在修改数据时,请谨慎操作。
下面将 goods 表中编号为 2的商品价格由 9998 元修改为 5899 元。具体 SQL 语句及执行结果如下。
执行完上述 SQL 语句后,使用 SELECT 查看编号为2的商品价格修改情况
2.3.4 删除数据
删除数据是指对表中存在的记录进行删除。例如,商品停产后,可以删除商品表中的相关数据。MySQL 中使用 DELETE 语句删除表中的记录,基本语法格式如下
DELETE FROM数据表名 [WHERE 条件表达式1;
在上述语法中,“数据表名”指定要执行删除操作的表,WHERE条件为可选参数,用于设置删除的条件,满足条件的记录会被删除。
下面删除 goods 表中编号等于3的商品数据。具体 SQL 语句如下
执行上述 SQL 语句后,使用 SELECT 查询 goods 表中记录的变化。需要注意的是,在删除数据时若未指定 WHERE条件,系统就会自动删除该表中所有的记录,因此读者在操作时需要慎重。
2.4 动手实践:电子杂志订阅表的操作
数据库的学习在于多看、多学、多想、多动手,只有将理论与实际相结合,才能够体现出数据开发与管理的重要性,展现知识学习的价值与力量。接下来请结合本章所学的知识完成电子杂志订阅表的操作。
实践目标
此实践的目标就是能够根据文字提示,完成对应数据表的创建,并可以对数据表中的数据进行简单的增、删、改、查操作。
实践需求
(1)在 mydb 数据库中创建一张电子杂志订阅表(subscribe)。
(2)电子杂志订阅表中要包含4个字段,分别为编号(id)、订阅邮件的邮箱地址(email)、用户是否确认订阅(status,使用数字表示,1 表示已确认,0 表示未确认)、邮箱确认的验证码(code)。
(3)为电子杂志订阅表添加5条测试数据,如表 2-2 所示。
(4)查看已经通过邮箱确认的电子杂志订阅信息。
(5)将编号等于4的订阅确认状态设置为“已确认”
(6)删除编号等于5的电子杂志订阅信息。
动手实践】
1.选择数据库
当 MySQL, 服务器中不存在 mydb 数据库时,创建此数据库,否则忽略。在 mydb 数据库已经存在后,选择 mydb 数据库。具体 SQL 语句如下。
创建电子杂志订阅表2
根据【实践需求】第(2)条需求,创建电子杂志订阅表,具体 SQL,语句及执行结果如下
mysql>CREATE TABLE subscribe(
idINTOMET编号
emai1 VARCHAR(60)COMMENT'邮件订阅的邮箱地址'
statuS INT COMMENT'是否确认,0未确认,1已确认'
code VARCHAR(10)COMMENT'邮箱确认的验证码'
->)DEFAULT CHARSET utf8;
Query OK,0 rows affected (0.01 sec)
3.操作电子杂志订阅表的数据
(1)添加数据。根据【实践需求 第(3)条给出的信息完成电子杂志订阅数据的新增,具体 SQL 语句及执行结果如下。
执行上述 SQL 语句后,使用 SELECT 查询表中的所有数据。
(2)查询数据。查看已经通过邮箱确认的电子杂志订阅信息。具体 SQL,语句及执行结果如下,
2.5 本章小结
本章主要讲解了数据库的创建、查看、选择与删除,数据表和数据的基础操作。通过本章的学习希望读者能够掌握 MySQL,的数据库,数据表以及数据的基本操作,为以后的学习和开发奠定夯实的基础。
标签:1.4,语句,goods,数据库,SQL,数据表,MySQL,数据,字段名 From: https://blog.csdn.net/qq_43416206/article/details/142501967