关联课件: 3子项目三 -SQL操作和查询语言(点击在线预览)
3.3.3.3 数据操作语言(INSERT/UPDATE/DELETE)
1.INSERT语句
INSERT语句用来向表中插入新的数据记录。每次插入一条。如要向刚才创建的info表中插入一条各字段值分别为“张三”、“男”、“20”的记录,可以使用下面的语句:
mysql> INSERT INTO info VALUES(“张三”,”男”,20);
执行后显示“Query OK, 1 row affected (0.08 sec)”,表示语句执行成功。
值得注意的是,在插入数据时,字符串型值要用双引号或者单引号引起来,数值型不用引号(加引号就错了)。而且提供的数据也必须按照表的字段顺序排列,不能颠倒。
在下面的小节中将介绍如何从表中查询数据。在查询之前,先执行几次INSERT语句向表中插入几条信息,这样可以更加形象地说明查询语句的作用。不妨再插入“李四”、“王五”、“赵六”3条记录,这样表中共有4条记录。
2.UPDATE语句
UPDATE语句可以对表中现有的记录进行修改。
1)修改全部记录的某个字段的值
例如要将info表中全部记录的年龄都修改成25,可以使用下面的语句:
mysql> UPDATE info SET age=25;
这时如果用SELECT语句查询此表,会看到所有记录的age字段都变成了25。(读者可以执行SELECT * FROM info;语句来查看表中的数据,SELECT语句的详细用法将在7.4.4节介绍)。
此外,还可以一次修改多个字段的值。如除了要将所有记录的age字段修改成25,还要将所有sex记录修改为“女”,可以用如下语句:
mysql> UPDATE info SET age = 25, sex = “女”;
也就是说,多个字段之间用逗号隔开,可以一次修改多个字段的值。
2)修改满足某条件的记录
通过WHERE子句指定的条件,可以修改满足指定条件的记录的值。如要将姓名为“张三”的记录的年龄修改成23,可以用如下语句:
mysql> UPDATE info SET age = 23 WHERE name = “张三”;
执行之后再用SELECT语句查询此表,会发现“张三”的年龄为23,其他记录的年龄的均为25。
同样可以用逗号隔开的方法,修改满足指定条件的记录的多个字段。
3.DELETE语句
DELETE语句用来删除表中的记录。可以一次删除全部记录,也可以删除满足指定条件的记录。
1)删除表中的全部记录。
如要删除表info中全部记录,可以用以下语句:
mysql>DELETE FROM info;
该语句执行后表info中的全部记录都会被删除。可以看出该命令是比较危险的,不小心很容易造成误删,带来意想不到的后果。因此使用此命令时应尽量注意。
2)删除满足条件的记录
如果要删除表info中性别为“女”的记录,可以用如下命令:
mysql> DELETE FORM info WHERE sex = “女”;
读者可以自行尝试变换条件,来观察语句运行效果。
3.3.3.4 数据查询语言(SELECT)
SELECT语句用来查询表中的数据。SELECT语句是SQL中最复杂的语句之一。因为用SELECT语句可以实现极为复杂的查询功能,如可以查询某个表中全部记录、部分满足条件的记录、全部字段、部分满足条件的字段等。还可以同时从多个表中查询满足条件的记录,以及对查询结果进行排序等。
这里仅介绍几种常用的SELECT语句,读者可以参考其他数据库专业书籍来更加深入地学习。
1)查询全部记录全部字段
查询一个表中全部记录,可以用如下语句:
mysql> SELECT * FROM info;
这里“*”表示所有字段。info为表名。程序执行后输出:
------ ------ ------
| name | sex | age |
------ ------ ------
| 张三 | 男 | 20 |
| 李四 | 男 | 18 |
| 王五 | 女 | 18 |
| 赵六 | 女 | 17 |
------ ------ ------
4 rows in set (0.02 sec)
可见刚才插入的4条数据全部被查询出来了。
2)查询全部记录的部分字段值
可以通过指定具体的字段和排序方式,来过滤掉不需要显示的字段。如要查询所有记录的姓名、年龄两个字段值,可以用如下语句:
mysql> SELECT name,age FROM info;
执行后输出
------ ------
| name | age |
------ ------
| 张三 | 20 |
| 李四 | 18 |
| 王五 | 18 |
| 赵六 | 17 |
------ ------
4 rows in set (0.00 sec)
3)查询满足某个条件的记录
通过SELECT语句的WHERE子句,可以查询某些满足指定条件的记录,这在查询中极为常用。如要查询所有年龄小于19的记录,可以用如下语句:
mysql> SELECT * FROM info WHERE age<19;
执行后输出:
------ ------ ------
| name | sex | age |
------ ------ ------
| 李四 | 男 | 18 |
| 王五 | 女 | 18 |
| 赵六 | 女 | 17 |
------ ------ ------
3 rows in set (0.01 sec)
当查询条件有多个时,可以使用AND关键字。如现在查询所有年龄小于19并且性别为女的记录,可以使用下列语句:
mysql> SELECT * FROM infor WHERE age<19 AND sex = “女”;
该语句执行后,将只输出满足条件的王五、赵六的两条记录。
4)查询某些记录,并对结果进行排序
使用SELECT语句的ORDER BY子句可以对查询结果进行排序。如查询所有性别为“女”的记录,并且将结果按照年龄从小到大排序。
mysql> SELECT * FROM info WHERE sex= “女” ORDER BY age ASC;
运行后输出结果如下:
------ ------ ------
| name | sex | age |
------ ------ ------
| 赵六 | 女 | 17 |
| 王五 | 女 | 18 |
------ ------ ------
2 rows in set (0.01 sec)
如果要将从小到大改为从大到小,则将命令中的“ASC”改为“DESC”即可。
本节简要地介绍了一些Web开发中最为常用的SQL语句。这些语句能够满足一般Web开发的需求。在后面的编程中经常会用到SQL语句,读者应注意多积累、多比较、多练习。掌握尽量多的SQL语句的使用方法,才能在以后的开发中得心应手。
//返回括号里字符串的字符全部大写的字符串 $str=strtoupper("sdaf"); //将括号里第一个字符串变成大写后返回 $str=ucfirst("asdf"); //用echo等将括号里字符串打印在网页上时原汁原味打印出括号里的字符串,包括标签字符 $str=htmlentities("<br/>");
批量插入多条数据 insert into worker values(‘tom’,’tom@yahoo.com’),(‘paul’,’paul@yahoo.com’);
老师讲的很详细,从中学到了很多。
经过SQL操作和查询语言讲的非常的详细,让我学会了好多的知识
条理清晰,通俗易懂
精致的讲解,通俗易懂,学到不少,
简要地介绍了一些Web开发中最为常用的SQL语句。这些语句能够满足一般Web开发的需求。在后面的编程中经常会用到SQL语句,读者应注意多积累、多比较、多练习。掌握尽量多的SQL语句的使用方法,才能在以后的开发中得心应手。
通俗易懂 方便学习
内容详细易懂,感谢老师