1
2
3
4
5
6
7
8
9
10
11

SQL操作和查询语言

发布时间:2017-09-26 05:10   发布人:毛书朋   浏览次数:7923


关联课件:   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语句的使用方法,才能在以后的开发中得心应手。




  • 刘普敏 2018-01-07 15:39:09
    //返回括号里字符串的字符全部大写的字符串 $str=strtoupper("sdaf"); //将括号里第一个字符串变成大写后返回 $str=ucfirst("asdf"); //用echo等将括号里字符串打印在网页上时原汁原味打印出括号里的字符串,包括标签字符 $str=htmlentities("<br/>");
  • 刘普敏 2018-01-07 15:40:16
    批量插入多条数据 insert into worker values(‘tom’,’tom@yahoo.com’),(‘paul’,’paul@yahoo.com’);
  • 刘鑫蕊 2018-01-09 16:07:30
    老师讲的很详细,从中学到了很多。
  • 岳猛 2018-01-09 16:11:24
    经过SQL操作和查询语言讲的非常的详细,让我学会了好多的知识
  • 甄丹丹 2018-01-09 16:27:57
    条理清晰,通俗易懂
  • 潘龙飞 2018-01-09 17:17:27
    精致的讲解,通俗易懂,学到不少,
  • 李倩文 2018-01-10 11:48:39
    简要地介绍了一些Web开发中最为常用的SQL语句。这些语句能够满足一般Web开发的需求。在后面的编程中经常会用到SQL语句,读者应注意多积累、多比较、多练习。掌握尽量多的SQL语句的使用方法,才能在以后的开发中得心应手。
  • 刘心怡 2018-01-10 12:06:04
    通俗易懂 方便学习
  • 杨宇生 2018-01-10 19:19:41
    内容详细易懂,感谢老师