MYSQL数据库入门

来源:互联网 发布:清华大学java教材 编辑:程序博客网 时间:2024/04/29 09:29
本文由whanxeh贡献
  MYSQL数据库入门

  MySQL简介
    什么是MySQL?
    MySQL是一个多用户、多线程的SQL数据库,是一个客户机/服务器结构的应用,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。
    SQL (Structured Query Language结构化查询语言)是目前使用最广的并且是标准的数据库语言。SQL语言使得存取或更新信息变得十分容易,你可以直接使用SQL从网站上查询信息。MySQL的快速和灵活性足以满足一个网站的信息管理工作。数据库与用户端之间的接口程序可以使用CGI进行通信。新网ChinaDNS使用的是 PHP,使用PHP和MySQL这两样东西加在一起,对于开发数据驱动的网站这项工作而言是最佳组合。PHP是一种用于服务器端执行程序解释的脚本语言。如果你接触过ASP的话,那么您对于在HTML页面中嵌入代码应该是比较熟悉了。PHP代码在服务器一端被解释、执行并转变成普通的HTML页面内容,送给浏览器一端。这种模式使得我们可以用它来完成相当复杂的功能。
    为什么用MySQL?
    现在每一个人的生活几乎都离不开数据库,如果没有数据库,很多事情都会变得非常棘手,也许根本无法做得到。银行、大学和图书馆就是几个严重依赖数据库系统的地方。在互联网上,使用搜索引擎、在线购物甚至是访问网站地址(http://www……)都离不开数据库。一个数据库通常都安装在称为数据库服务器的计算机上。目前市场上运行最快的 SQL (Structured Query Language结构化查询语言) 数据库之一就是MySQL Server,由瑞典的T.c.X. DataKonsultAB公司开发。MySQL可以从http://www.mysql.com/上下载,它提供了其它数据库少有的编程工具,而且 MySQL对于商业和个人用户是免费的。如果想用MySQL开发应用软件,必须支付一定的产品使用许可费用,具体情况可以访问MySQL's licensing section。
    MySQL的功能特点如下:
    可以同时处理几乎不限数量的用户;
    处理多达50,000,000以上的记录;
    命令执行速度快,也许是现今最快的;
    简单有效的用户特权系统。
    MySQL的用户?
    MySQL在企业中使用非常广泛,其中知名的公司有:
    Silicon Graphics (http://www.sgi.com)
    Siemens (http://www.siemens.com)
    如果这些还不够,你可以在MySQL用户名单上看到更多。
    这篇文章主要是向读者对MySQL服务器的基本操作进行简单的介绍,其中包括怎样建立连接,设置服务器进行简单的命令操作。这里介绍的的命令是一些最重要的,因为它们是构成一些高级命令的基穿
    MySQL通常对用户来说是一种额外服务,所以在使用之前,请向新网ChinaDNS申请开设MySQL帐户。
    MySQL的环境
    MySQL 通常用Telnet进行登录(一个非常好的Telnet软件名为Easyterm,可以从 http://www.arachnoid.com/下载)。我们向用户推荐使用WinMysql 管理工具,下载网址是http://www.tcx.se/Downloads/Win32/myAdmin1.0.1.0.zip 通过Telnet与web服务器连接后,第二个命令提供MySQL服务器的登录。登录的步骤如下:
    1. 连接到服务器。
    login: devshed
    Password: ********
    Last login: Wed Aug 12 09:49:14 from 195.103.124.222
    Copyright 1992, 1993, 1994, 1995, 1996 Berkeley Software Design, Inc.
    Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
    The Regents of the University of California. All rights reserved.
    BSDI BSD/OS 2.1 Kernel #12: Mon Feb 23 13:46:27 EST 1998
    You have new mail.
    www24:mywww/devshed#
    2. 登录到MySQL帐户。
    www24:mywww/devshed# mysql -u devshed -p
    Syntax: mysql -h hostname -u username -p[password]
    Or
    mysql -h hostname -u username --password=password
    用户会被提示输入密码。-p表示输入密码。
    Enter password: *******
    用户会看见如下结果:
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 49 to server version: 3.21.23-beta-log
    Type 'help' for help.
    mysql>
    登录到数据库之后,我们就可以执行各种MySQL的命令,但在对数据库操作之前必须要先调用数据库,也就是与数据库建立连接:
    mysql> use devshed;
    结果:
    Database changed
    Mysql>
    现在你已经连接到数据库。注意命令后面要加上分号(;),几乎所有的MySQL命令都要加分号。有关管理数据库的命令可以通过键入help, \h 或?列出来。
    mysql> help
    help (\h) Display this
    text ? (\h) Synonym for `help'
    clear (\c) Clear command
    connect (\r) Reconnect to the server. Optional arguments are db and host
    edit (\e) Edit command with ?$EDITOR
    exit (\) Exit mysql. Same as quit
    go (\g) Send command to mysql server
    print (\p) print current command
    quit (\q) Quit mysql
    rehash (\#) Rebuild completion hash
    status ( ) Get status information from the server
    use (\u) Use another database. Takes database name as argument
    Connection id: 49 (Can be used with mysqladmin kill)
    mysql>
    也许这些功能不会都能用上,但应该知道每一个命令都会做什么。象命令status, use, print, connect, clear, 和quit在最开始学习使用时都会十分有用。现在,你应该对连接数据库、选择数据库和运行基本命令都应该有一定的了解。下一步将讲解有关对数据库进行操作的基本概念和方法。
    
    MySQL基础
    数据类型和表
    数据库其实不过是由不同层次的数据结构构成的。MySQL中可以存放块(或记录)信息的结构就是表(table)。而这些记录则由更小的信息格式组成,即数据类型。一个或多个的数据类型组成了记录。由记录组成的表构成了数据库的一部分。数据库的层次可以表示如下:
    Database < Table < Record < Datatype
    数据类型有不同的形式和大小,这样程序员就可以根据实际应用的需要建立表。选择合适的数据类型对于数据库的运行性能影响致关重要,所以详细了解这些概念是十分重要的。
    MySQL Datatypes 数据类型
    MySQL支持各种数据类型(即使是编程新手也都基本熟悉)。常用的类型包括:
    CHAR (M) 固定长度字符
    用来表示固定长度的字符串。字符串的长度范围是1-255。例如:car_model CHAR(10);
    VARCHAR (M) 可变长度字符
    VARCHAR 是一个具有灵活性的字符数据类型。字符串的长度范围是1-255。选用VARCHAR通常是比较明智的决定。尽管处理CHAR类型的数据比VARCHAR类型的数据要快,有时会快50%。(CHAR类型存储的数据的长度是声明变量时的固定长度,而不管数据的实际长度。VARCHAR存储的是按数据的实际长度,从而减小了数据文件的大些) car_model VARCHAR(10);
    INT (M) [Unsigned] 整数类型
    INT是整数类型,存储整数的值范围是-2147483648到2147483647。在声明类型时可选用"unsigned",这样值的范围就是0到4294967295。
    light_years INT;
    合法整数: '-24567',非法整数: '3000000000'。
    light_years INT unsigned;
    合法整数: '3000000000',非法整数: '-24567'。
    FLOAT [(M,D)] 浮点类型
    FLOAT代表浮点类型,用来表示更精确的数字类型。
    rainfall FLOAT (4,2);
    这个变量可以用来表示一年当中的平均降水量,并精确到小数。FLOAT (4,2)表示数值一共可以有4位数字,小数点后有2位数字。请看下面哪些数值可以用上面的变量类型表示:
    42.35是合法的
    324.45是不合法的,将被修改为324.5
    2.2 是合法的数值
    34.542 不合法,将被修改为 34.54
    注意:由于FLOAT会将数值四舍五入,所以如果不想让数值随意被更改,建议使用DECIMAL。
    DATE 日期类型
    用来存放日期信息,缺省的格式是'YYYY-MM-DD',日期范围可以从'0000-00-00' 到 '9999-12-31'。声明日期型变量the_date:the_date DATE;
    TEXT / BLOB 文本和大对象
    如果字符串的长度超过了255,或者要将一篇文章保存到数据库中,CHAR和VARCHAR就无法使用了,这里就要用到TEXT和BLOB类型,该类型可以保存的字符串长度在255 - 65535字节内。BLOB是一个能保存二进制数据的的大对象。BLOB和TEXT数据类型是一样的,唯一的区别就是TEXT不区分大小写,而BLOB区分大小写。
    SET 固定类型
    一个SET是可以有零或多个值的一个字符串对象,其每一个必须从表创建造被指定了的允许值的一张列表中被选择。由多个集合成员组成的SET列通过由由逗号分隔(“,”)的成员被指定。SET类型最多可以64个值。
    transport SET ("truck", "wagon") NOT NULL;
    经过上面的声明之后,transport可以有下面几个值:
    ""
    "truck"
    "wagon"
    "truck,wagon"
    ENUM 枚举类型
    ENUM是与SET属性相同的数据类型,但从中取值时只能取一个值。
    transport ENUM ("truck", "wagon") NOT NULL;
    经过上面的声明之后,transport可以有下面几个值:
    ""
    "truck"
    "wagon"
    Records 记录
    一组数据类型就构成了记录。一个记录可以只有一个数据类型,也可以根据需要设置很多个。一个或多个记录构成了一个表。
    Tables 表
    在我们可以对数据库进行操作之前,必须建立一个可以存放数据的表。可以通过如下方法创建:
    mysql> CREATE TABLE test (
    > name VARCHAR (15),
    > email VARCHAR (25),
    > phone_number INT,
    > ID INT NOT NULL AUTO_INCREMENT,
    > PRIMARY KEY (ID));
    输出结果:
    Query OK, 0 rows affected (0.10 sec)
    mysql>
    这样你的第一个表就建成了。
    所有的数据类型都可以使用下面的选项:
    · 主键值Primary Key。主键值是用来将记录区分开来,因为没有两个记录能使用同一个主键值。在必须要保持记录的唯一性时,使用主键值是非常有用的。
    · Auto_Increment自动增量。使用了这个选项的列在每增加一个记录时,都会自动将记录在该列的值加1。
    · NOT NULL非空变量。表示该列不能被分配为空值。
    例:
    soc_sec_number INT PRIMARY KEY;
    这样soc_sec_number字段就不能有重复的值。
    ID_NUMBER INT AUTO_INCREMENT;
    从1开始,自动按顺序将后面的值在前面的基础上增加1。
    与表相关的命令
    我们可以使用一些与表有关的命令:
    显示表内容
    如果想显示数据库当中存在的所有表,可以使用命令show tables,mysql> show tables;
    显示列
    mysql> show columns from test;
    结果:
    显示出与表相关的列及数据。
    现在你已经对创建表有了一个基本的认识。表是由数据类型构成的,所有的数据类型形成了记录