MySQL 是一个真正的多用户、多线程SQL数据库服务器,MySQL具有小巧、功能齐全、查询迅捷等优点 ,MySQL 对于一般中小型,甚至大型应用都能够胜任。
1.2 数据类型和数据表
用于保存数据记录的结构被称为数据表。
而每一条数据记录则是由更小的数据对象,即数据类型组成。
Database < Table < Record < Datatype
MySQL 数据库提供了多种数据类型,其中较为常用的几种如下:
CHAR (M)
CHAR数据类型用于表示固定长度的字符串,可以包含最多达255个字符。其中M代表字符串的长度。
VARCHAR (M)
VARCHAR是一种比CHAR更加灵活的数据类型,同样用于表示字符数据,但是VARCHAR可以保存可变长度的字符串。
其中M代表该数据类型所允许保存的字符串的最大长度
INT (M) [Unsigned]
INT数据类型用于保存从- 2147483647 到2147483648范围之内的任意整数数据。如果用户使用Unsigned选项,则有效数据范围调整为0-4294967295。
FLOAT [(M,D)]
FLOAT数据类型用于表示数值较小的浮点数据,可以提供更加准确的数据精度。其中,M代表浮点数据的长度(即小数点左右数据长度的总和),D表示浮点数据位于小数点右边的数值位数。
DATE
DATE数据类型用于保存日期数据,默认格式为YYYY-MM-DD。
TEXT / BLOB
TEXT和BLOB数据类型可以用来保存255 到65535个字符,如果用户需要把大段文本保存到数据库内的话,可以选用TEXT或BLOB数据类型。TEXT和BLOB这两种数据类型基本相同,唯一的区别在于TEXT不区分大小写,而BLOB对字符的大小写敏感。
SET
SET数据类型是多个数据值的组合
例如:transport SET ("truck", "wagon") NOT NULL;
ENUM
ENUM数据类型和SET基本相同,唯一的区别在于ENUM只允许选择一个有效数据值。
在MySQL数据库中创建新的数据表:
CREATE TABLE test (
name VARCHAR (15),
email VARCHAR (25),
phone_number INT,
ID INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY (ID));
主要的参数选项
Primary Key
具有Primary Key限制条件的字段用于区分同一个数据表中的不同记录。
Auto_Increment
具有Auto_Increment限制条件的字段值从1开始,每增加一条新记录,值就会相应地增加1。
NOT NULL
NOT NULL限制条件规定用户不得在该字段中插入空值。
添加记录
使用INSERT命令向数据库中添加新的记录
INSERT INTO test VALUES ('John', '[email protected]',5554321, NULL);
查询数据
使用SELECT命令进行数据的查询。例如:
SELECT * FROM test WHERE (name = "John");
删除数据
使用DELETE命令。
DELETE FROM test WHERE (name = "");
修改数据
使用UPDATE命令。
UPDATE test SET name = 'Mary' WHERE name = "John";
1.3配置MySQL数据库
安装完成后,可以选择Configure the MySQL Server now来启动MySQL的设置向导
一般选择Standard Configuration(标准配置模式)。
选择Install As Windows Service选项,Service Name可以自己选择和设置,选中Launch the MySQL Server automatically(自动启动MySQL服务)。
对话框中单击Next按钮后,弹出的对话框,可进行root用户密码的设置,设置完成后单击Next按钮,然后单击Execute即可开始MySQL的配置。
1.4用JDBC访问MySQL数据库
JDBC是一种Java数据库连接API,它为Java程序员提供了一种在Java代码中访问关系数据库的标准方法。
JDBC可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
一个Java程序要访问数据库,需通过以下几步来完成:
第一,打开数据库连接;
第二,建立语句对象;
第三,通过该语句对象将SQL语句传送给数据库,进行数据库操作;
第四,获取结果及有关结果集的信息。
在MyEclipse里面右键单击项目-〉propertie-〉Java Build Path-〉 Libraries-〉Add External Jars ...
找到驱动文件的位置
这样JSP程序就可以通过JDBC接口访问MySQL数据库了。
1.4示例代码
先在MySQL中建立一个数据表
create table user
(name char(20),
password char(20),
email char(100),
user_id char(20),
primary key(user_id));
insert into user(name,password,email,user_id)
values(‘Yang’,’123’,’[email protected]’,’0001’);
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page contentType="text/html; charset=gb2312"%>
<%@ page language="java"%>
<%@ page import="com.mysql.jdbc.*"%>
<%@ page import="java.sql.*"%>
<%
//驱动程序名
String driverName = "com.mysql.jdbc.Driver";
//数据库用户名
String userName = "root";
//密码
String userPwd = "text";
//数据库名
String dbName = "test";
//表名
String tableName = "user";
//连接字符串
String url = "jdbc:mysql://localhost/" + dbName + "?user="
+ userName + "&password=" + userPwd;
Class.forName("com.mysql.jdbc.Driver").newInstance();
java.sql.Connection conn = DriverManager.getConnection(url);
out.print("数据库连接成功!");
out.print("
");
java.sql.Statement statement = conn.createStatement();
String sql = "SELECT * FROM " + tableName;
java.sql.ResultSet rs = statement.executeQuery(sql);
// 输出每一个数据值
out.print("编号 ");
out.print("|");
out.print("用户名");
out.print("|");
out.print("Email");
out.print("
");
while (rs.next()) {
out.print(rs.getString(4) + " ");
out.print("|");
out.print(rs.getString(1) + " ");
out.print("|");
out.print(rs.getString(3));
out.print("
");
}
out.print("
");
out.print("数据库操作成功!");
rs.close();
statement.close();
conn.close();
%>