专业只做数据库实训和认证的品牌机构

微信公众号新浪微博
免费咨询电话:400-0909-964
当前位置: 网站首页 > MySQL培训 > MySQL课程 > MySQL认证教程:create创建数据库和表

MySQL认证教程:create创建数据库和表

文章来源: 更新时间:2016/7/15 14:13:07

在线老师点击咨询:

最新学讯:近期OCP认证正在报名中,因考试人员较多请尽快报名获取最近考试时间,报名费用请联系在线老师,甲骨文官方认证,报名从速!

我要咨询

MySQL认证教程:create创建数据库和表,假设你已拥有创建和修改服务器上数据库所必需的权限,那么我们来看一下如何创建数据库以及数据库中的表。在本章的示例中,我们将为一个虚拟的书店建立一个数据库:

  1. CREATE DATABASE bookstore;  

通过这条简单的SQL 语句,本书已创建了名为bookstore 的数据库。你可能已经注意到上述语句中的命令及保留字的字母都是大写的。这并不是必需的,MySQL 语句以及子句中的保留字对大小写并不敏感。数据库与表名对大小写是否敏感取决于你所用的操作系统,比如在Linux 系统上对大小写是敏感的,而Windows 系统,对大小写则不敏感。按照通常的习惯,在SQL 说明文档中保留字均使用大写字母,而数据库名、表名以及字段名都使用小写字母。你可能也注意到了SQL 语句结尾处的分号。一条完整的SQL 语句可能不止一行,直到输入分号以后,客户机程序才会将SQL 语句发送到服务器解析执行。用"\c" 替代分号,可取消正在执行的SQL 语句。

创建好数据库后,这虽然只是个空库,但是我们可通过下面的语句从默认数据库切换到新数据库:

  1. USE bookstore  

使用上述语句,就不必在每个SQL 语句中都指定所用到的数据库名了。默认情况下,MySQL 会把最后一个指定的数据库作为当前使用的数据库。该语句是基于客户机程序的SQL 语句,所以在句尾不必添加分号。

下面,我们将创建第一个表,以后本书将把数据添加到此表中。首先创建一个存放图书基本信息的数据表,因为这是书店业务的核心信息:

  1. CREATE TABLE books ( book_id INT, title 
    VARCHAR(50), author VARCHAR(50));  

上面的SQL 语句创建了带有三个列的图书信息表。圆括号内是列的全部列表。

第一列是每条记录的标识码,代表一本书。你可以按照上面的例子将其数据类型设为INTEGER 或INT 。第二列和第三列是可变长的字符类型,每列值的长度不能超过50 。

输入DESCRIBE 语句可查看刚刚创建的表的结果,该结果以表格形式输出:

  1. DESCRIBE books; +---------+---------------+------+---
    --+---------+-------+ | Field | Type | Null | Key | 
    Default | Extra | +---------+---------------+-----
    -+-----+---------+-------+ 
     
  2. | book_id | int(11)     | YES   |   | NULL  |   |   
  3. | title     | varchar(50) | YES     |   | NULL  |   |   
  4. | author    | varchar(50) | YES     |   | NULL  |   |   
  5.  
  6. +---------+---------------+------+-----+---------+-------+  

考虑到书店规模有点大,我们认为还需要为数据元素多添加几个列:出版商、出版年份、ISBN 码、图书类型(例如:小说、诗歌、戏剧)、图书描述,等等。我们还想让MySQL 自动为book_id 列分配一个数字编号,这样在添加一行新记录时就不必担心有重复问题发生。另外,我们决定将作者字段的真实作者名改成标识码,通过标识码可将本表与包含作者名字段的其他表关联起来。这种方式将数据统一起来,可以简化数据的输入,也使排列查找操作更容易实现。输入下列SQL 语句可在已创建好的数据表中完成修改操作:

  1. ALTER TABLE books  
  2. CHANGE COLUMN book_id book_id INT AUTO_INCREMENT PRIMARY KEY,  
  3. CHANGE COLUMN author author_id INT,  
  4. ADD COLUMN description TEXT,  
  5. ADD COLUMN genre ENUM('novel','poetry','drama'),  
  6. ADD COLUMN publisher_id INT,  
  7. ADD COLUMN pub_year VARCHAR(4),  
  8. ADD COLUMN isbn VARCHAR(20); 

在这个SQL 语句的起始行后,可以看到每个修改或添加字段的子句都是由一个逗号分开的。第二行子句修改book_id 列。即便是使用原来的列名和数据类型,我们也要将其重写一遍。我们还要为其添加AUTO_INCREMENT 标记,它负责执行前一段提到的任务,就是将任意一个唯一的值分配给表中的每条记录。另外,我们还要将该字段设为主键,以提高数据检索的速度。

第一个CHANGE 子句可能会让人感到迷惑,因为其中列名(book_id )出现了二次。当了解CHANGE 子句的语法时,你就会明白其中的意义了:第一个book_id 表示将要修改的现有列,该子句余下的部分用于指定一个新列。要想更好地理解这个子句的意思,可查看第二条CHANGE 子句:该子句用新列author_id 替代了现有列author 。数据表中不再有名为author 的列。

在第三行子句中,我们修改了author 列,令其名称及数据类型与将要创建的authors 表中的名称与类型一致。如同books 表中的索引列代表图书一样,authors 表中也有一个代表每个作者的索引列。我们把books 表和authors 表关联起来做查询操作,这样就可通过books 表的author_id 列找到author 表中相应的记录。由于authors 表中相应列的数据类型是INT ,所以该子句中author_id 列的数据类型也一定是INT 。

第四行子句为每本书添加了一个描述列。该列的数据类型是文本型,文本类型是可变长数据类型,可支持长度小于64 千字节的数据。然而,还有许多其他因素可进一步约束文本列。请参阅附录A以查看数据类型列表及其对应的范围以及其他的限定因素。

在genre 列中,为了确保统一性,事先已列举了几个可用的值。该字段允许为空值或NULL ,空值或NULL 并不需要指定。

向books 表输入数据之前,我们先快速建立一个aurhors 表。该表做为备查表。首先要向author 表中添加数据,因为当我们向books 表中添加数据时,需要知道books 表中authors 列的标识号:

  1. CREATE TABLE authors  
  2. (author_id INT AUTO_INCREMENT PRIMARY KEY,  
  3. author_last VARCHAR(50),  
  4. author_?rst VARCHAR(50),  
  5. country VARCHAR(50)); 

尽管我们为虚拟书店添加了其他几个字段,但authors 表用到的字段并不多。如前段所述,根据需要,我们还要把books 表与authors 表通过author_id 字段关联在一起。

在authors 表中,将作者的名和姓分别存放在二个不同的字段中,这样可以很容易通过姓对数据进行分类查找。另外还要添加一个作者的国籍列,这样就可以根据顾客的要求查找特定国家作者的相关作品。为了方便起见,最好使用国家代码,然后在其他备查表中列出国家的全称。我们尽量保持本指南的简单性,所以仅把有实用价值的信息列举出来。

本文地址:http://www.cuug.com.cn/mysql/kecheng/12481280431.html 转载请注明!


在线预约 抢先报名 获取课程排期

Oracle培训机构

金牌讲师<>

冉乃纲-老师CUUG金牌讲师
冉老师 CUUG金牌讲师 Oracle及RedHat高级讲师、Unix/Linux 资深专家...[详细了解老师]

免费咨询上课流程 客服在线中

陈卫星-老师CUUG金牌讲师
陈老师 CUUG金牌讲师 精通Oracle管理、备份恢复、性能优化 11年Ora...[详细了解老师]

免费咨询上课流程 客服在线中

选学校如何选择适合自己的学校

CUUG -CHINA UNIX USER GROUP,是国际UNIX组织UNIFORUM的中国代表,是国内悠久的专业UNIX培训机构,被誉为中国UNIX 的摇篮。多年来,以提高教学质量为本,强调素质教育,积极引进、消化国外的新技术,有效的结合中国....[详情]

一站式服务(从入学到就业一帮到底)

入学

学习

就业

实操

食宿
地址:北京市海淀区北清路164号28-38号院
课程咨询:010-59426307 010-59426319 400-0909-964
企业服务:137 1818 8639(陈经理)
部分信息来源于网络,如有错误请联系指正!
版权所有@北京神脑资讯技术有限公司 (CUUG,中国UNIX用户协会) Copyright 2016 ALL Rights Reserved 京ICP备11008061号-1