我们可以对数据库进行四种方式的操作:添加、删除、修改和查询(搜索)。请大家注意的是,SQL语言和其它编程语言一样,对命令语句的语法格式很在意,比如一个括号、逗号或分号的错误都会导致命令无法执行。所以一定要熟悉语法格式。
插入记录
这里我们继续使用前面创建过的数据库作为例子:
mysql> CREATE TABLE test ( > name VARCHAR (15), > email VARCHAR (25), > phone_number INT, > ID INT NOT NULL AUTO_INCREMENT, > PRIMARY KEY (ID));
使用INSERT命令插入数据,将数据分别插入姓名、邮件地址、电话和ID号内。
mysql> INSERT INTO test VALUES mysql> ('Bugs Bunny', 'carrots@devshed.com', mysql> 5554321, NULL);
结果:
Query OK, 1 row affected (0.02 sec)
mysql>
- 数据类型VARCHAR的内容必须要用单引号,所有的字符串类型数据(char, varchar, text, blob)都必须使用单引号,否则会出错误信息。
- 电话号码的内容不用单引号。整数INT类型的数据都不用单引号。
- NULL空值。为什么要在ID中插入空值? 实际上该数据类型使用了AUTO_INCREMENT选项,在插入空值时数据库会自动将ID的值加1。比如最后一个记录的ID值是2,那么再插入一个记录时,新记录的ID值就是3。如果将空值插入TIMESTAMP类型的记录时,那么新记录的TIMESTAMP值就是当前的时间。
注意: 每次插入新记录时必须保证新记录的值的个数与数据类型的数目一致。上面的命令中如果只有一个值,插入命令就会出错。
例如:
mysql> insert into test values('doggy'); ERROR 1058: Column count doesn't match value count mysql>
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;
结果: 显示出与表相关的列及数据。
现在你已经对创建表有了一个基本的认识。表是由数据类型构成的,所有的数据类型形成了记录。 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"
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'。
| 用户会看见如下结果:
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 (\s) 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通常用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: *******
| |