网络数据库教程
Richard Dice
速成教程
网站设计
HTML
JavaScript
样式表
动态HTML
XML
图形与字体
多媒体
Java
后端编程
浏览器
电子商务
相关资源
Web 入门
软件下载
免费资源
源码集锦
相关连接
关于网猴


 

 

 

 

 

第四页:MySQL, SQL, DDL,和DML

MySQL的互动交流指的是用它的语言SQL(结构化程序语言)。SQL一般划分为两部分,第1部分叫做DDL,即数据定义语言(data definition language),你用SQL这个单元告诉MySQL如何设立表格。还有一部分是DML,即数据控制语言( data manipulation language),这个单元用于从你的表格中获取数据。

这里是计划:我将启动mysql,生成一个表格,然后在表格中输入数据,然后检查我刚输入的数据。(我用加重体显示的文字解释各项指令的含义)

     rdice:# mysql test

     Welcome to the MySQL monitor.  Commands end with ; or \g.

     Your MySQL connection id is 4 to server version: 3.21.28-gamma-log

     

     Type 'help' for help.

     

     mysql> create table albums (            这里我在使用DDL
         -> title varchar(100),              设置表格,在表格中
         -> artist varchar(100),             我将存储一些
         -> released date);                  音乐资料

     Query OK, 0 rows affected (0.07 sec)

     

    现在是DML,用于告诉MyDQL在album中加入记录

     mysql> insert into albums(title,artist,released)

         -> values('Selling England By The Pound','Genesis','1973-01-01');

     Query OK, 1 row affected (0.08 sec)

     

      这里是DML声明,它将使我看到我刚才加入的内容
      注意*在SQL语言中指“所有列”
     mysql> select * from albums;

     +------------------------------+---------+------------+

     | title                        | artist  | released   |

     +------------------------------+---------+------------+

     | Selling England By The Pound | Genesis | 1973-01-01 |

     +------------------------------+---------+------------+

     1 row in set (0.06 sec)

MySQL所认可的所有SQL的语法在MySQL文献中都有详细说明,你随时可以查阅。即使今天的课程也已经涉及了许多进出知识,所以你应该仔细研究一下它。

生成表格的级别语法是:

     create table 表格名 (

        1 1数据类型,

        2 2数据类型,

        ...

        _x _x数据类型

     )

各列可以使用的数据类型可以在MySQL文献中找到。在本例中我使用了"date"数据类型以及变量长度字符串。"varchar" 字符串的长度由预设的长度限制,在变量中,是100

要结束mysql中的一个声明,你需要键入一个分号,然后回车。mysql将告诉你的“querySQL中任何指令的术语)”状态,以及处理所用时间。

insert(插入)的语言更简单:

     insert into 表格(1,2,...,_x)

     values(value1,value2,...,value_x)

字符串必须用引号圈起来。

select(选择)是SQL非常有用的声明,必要的时候,它的用法可能会非常复杂。

如果在该数据库中我存储了几百个音乐文件,而且我只想看一下有Genesis创作的作品,我就可以用select发出一个声明查询我所需要的内容:

     select title, released

     from  albums

     where artist = 'Genesis'

     order by released

这次我按名称圈定了我所感兴趣的列,而不是用* 通配符。命令行where artist = 'Genesis'限制必须查询MySQL记录中由Genesis创作的作品,我还命令MySQL将该作曲家的唱片按照发行日期排序。

除了insertselect指令,还有两种基本的DML指令:update(更新)和delete(删除)。 update使你能够改变在表格行中存储的数据;delete使你能删除表格中的一行。

这些指令的使用范例:

     我发现Selling England 的发行日期是21日而不是11日。所以我更新我的记录:

     mysql> update albums

         -> set    released = '1973-02-01'

         -> where  title = 'Selling England by the Pound'

         ->        and artist = 'Genesis';

     Query OK, 1 row affected (0.03 sec)

     

     mysql> select * from albums;

     +------------------------------+---------+------------+

     | title                        | artist  | released   |

     +------------------------------+---------+------------+

     | Selling England by the Pound | Genesis | 1973-02-01 |

     | Wind & Wuthering             | Genesis | 1976-01-01 |

     | We Can't Dance               | Genesis | 1991-01-01 |

     +------------------------------+---------+------------+

     3 rows in set (0.00 sec)



     如果我认为我不喜欢Genesis ...     

     mysql> delete from albums where artist = 'Genesis';

     Query OK, 3 rows affected (0.00 sec)

     

     mysql> select * from albums;

     Empty set (0.00 sec)

使用"update" "delete" 指令时,你需要用where指明查询条件(否则你的表格中的每一行都会被修改或删除,你必须小心)

互联网中有一个很好的SQL教程,我建议仔细阅读该教程。它并不完全适用于MySQL,这是因为SQL也有不同的“方言”。该教程所讲的内容基本适用于MySQL,但有一些细微的区别,在MySQLSQL文献中有具体说明。

今天的课程的最后,我们将再次研究一下mysqlshow:

     rdice:# mysqlshow test

     Database: test

     +--------+

     | Tables |

     +--------+

     | albums |

     +--------+

     rdice:# mysqlshow test albums

     Database: test  Table: albums  Rows: 0

     +----------+--------------+------+-----+---------+-------+

     | Field    | Type         | Null | Key | Default | Extra |

     +----------+--------------+------+-----+---------+-------+

     | title    | varchar(100) | YES  |     |         |       |

     | artist   | varchar(100) | YES  |     |         |       |

     | released | date         | YES  |     |         |       |

     +----------+--------------+------+-----+---------+-------+

mysqlshow记录了我们在mysql中所作的一切工作。当你要求mysqlshow显示表格信息时,它并不告诉你在表格中具体有什么信息,它只是告诉你表格中目前有多少行,它告诉你的是表格的结构。我们已经了解了"Field""Type" ,其他的表格资料年可以从MySQL的文献中找到详细内容)>>

网络数据库教程
第一页 网络数据库教程 - 第三天
第二页 常规的Apache设置
第三页 MySQL和整个数据库/服务器系统
第四页 MySQL, SQL, DDL,和DML
第五页 我们不是在建立互联网站点吗,我是不是漏了什么东西?

[第1天][第2天][第3天][第4天][第5天]

   

本栏目内容归Wired Digital Inc.所有,
任何单位或个人未经许可,不得擅自转载使用。 搜狐公司制作完成。