2.1MySQL创建数据库表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
鲁琴Handout #2
网络数据库技术2013-03-04
网络数据库技术—创建数据库和表
学会了如何键入命令后,就可以学习如何访问数据库了。
这部分的主要内容:
◆命令行方式创建数据库和表
◆界面创建数据库和表
◆有关表结构
◆MySQL的数据类型
1.命令行方式创建数据库
这部分主要介绍如何使用MySQL命令行客户端创建及使用一个简单的数据库。
假设要处理学生相关的信息,可以通过创建表来保存数据,以及从表中检索数据。在这部分,我们将学习如何执行下面的操作:
◆创建数据库
◆创建表
我们可以使用SHOW命令来显示当前服务器上存在的所有数据库。mysql> SHOW DATABASES;
Mysql数据库描述了用户的访问权限;test 数据库通常作为示例,做用户的工作空间。
不同的机器显示出的数据库是不同的;如果没有SHOW DATABASES权限的话,用这个命令是不能显示出数据库的。
如果存在test数据库,我们来访问它。
mysql> USE test
Database changed
注意:USE命令,同QUIT命令一样, 后面不需要分号(;)(当然了,如果加上;也没有关系)。另外,USE 命令有一点是特别的:它必须写在一行上。
你可以使用test数据库(如果你可以访问它)来试验下面的命令,但是你做的任何操作都可能被同样可以访问这个数据库的其他用户改变。所以你应该请求MySQL管理员允许你使用自己的数据库。假设你自己的数据库名字为xscj,管理员需要执行下面的命令:
mysql> GRANT ALL ON xscj.* TO 'your_mysql_name'@'your_client_host';
这里,your_mysql_name 是MySQL 用户的名字,your_client_host是你现在正在工作的连接到服务器的主机的名字。
1.1 创建数据库
1.1.1 创建数据库xscj
mysql> CREATE DATABASE xscj;
在Unix操作系统下,数据库名字区分大小写(这不同于SQL关键字),表名也区分大小写。在Windows操作系统下,数据库名及表名不区分大小写(尽管在同一个查询语句中大小写应一致),但是在使用过程中最好使用与创建时一致的大小写。
注意:当创建数据库时,显示如下错误提示:
ERROR 1044 (42000): Access denied for user 'monty'@'localhost' to database 'menagerie'
这表示你的用户账号没有创建数据库的权限,我们在“MySQL访问权限”一节中再讨论这个问题。
1.1.2 选择数据库xscj
创建一个数据库后,并不能直接使用这个数据库。必须用USE命令将这个数据库变成当前活动的数据库:
mysql> USE xscj
Database changed
同一个数据库只能创建一次,但是每次使用它时都要用USE命令。
另外,可以在连接mysql服务器时,用连接参数指定当前活动的数据库。shell> mysql -h host -u user -p xscj
Enter password: ********
1.1.3 查询当前活动数据库的命令:
SELECT DATABASE();
1.1.4 创建数据库命令的完整语法格式:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
[create_specification [, create_specification] ...]
其中create_specification:
[DEFAULT] CHARACTER SET charset_name
| [DEFAULT] COLLATE collation_name
说明:语句中“[ ]”内为可选项。
提示:关于“字符集与校对规则”,请参看教材P373 附录D
1.2 修改数据库
数据库创建后,如果需要修改数据库的参数,可以使用ALTER DATABASE命令。
语法格式:
ALTER {DATABASE | SCHEMA} [db_name]
alter_specification [, alter_specification] ...
其中alter_specification:
[DEFAULT] CHARACTER SET charset_name
| [DEFAULT] COLLATE collation_name
说明:
ALTER DATABASE用于更改数据库的全局特性,这些特性储存在数据库目录中的db.opt文件中。用户必须有对数据库进行修改的权限,才可以使用ALTER DATABASE。修改数据库的选项与创建数据库相同,功能不再重复说明。如果语句中数据库名称忽略,则修改当前(默认)数据库。
【例】修改数据库xscj的默认字符集和校对规则。
ALTER DATABASE xscj
DEFAULT CHARACTER SET gb2312
DEFAULT COLLATE gb2312_chinese_ci;
1.3 删除数据库
已经创建的数据库需要删除,使用DROP DATABASE命令。
语法格式:
DROP DATABASE [IF EXISTS] db_name
其中:
db_name是要删除的数据库名。可以使用IF EXISTS子句以避免删除不存在的数据库时出现的MySQL错误信息。
注意:
这个命令必须小心使用,因为它将删除指定的整个数据库,该数据库的所有表(包括其中的数据)也将永久删除。
2.命令行方式创建表
2.1 创建表
创建数据库很容易,但此时数据库是空的。用SHOW TABLES命令可以看出来:
mysql> SHOW TABLES;
Empty set (0.00 sec)
难的是确定数据库的结构:数据库中有哪些表及每个表中有哪些列。
首先要创建一个表包含每个学生的基本信息,这个表我们将其命名为xsqk,它应该包含学号,姓名,性别,出生日期,专业,联系电话。
mysql> CREATE TABLE xsqk (xh CHAR(10),xm VARCHAR(10), xb
CHAR(1),csrq DATE,zy VARCHAR(30),lxdh VARCHAR(20));
说明:
VARCHAR (可变长度字符串)类型对于xm(姓名)列,zy(专业)列和lxdh(联系电话)列是一种好的选择,这些列的取值的长度不固定。
如果在这里类型定义不合理,MySQL 提供了一条ALTER TABLE命令来