文档视界 最新最全的文档下载
当前位置:文档视界 › MySql 数据库用java程序创建表以及存储过程

MySql 数据库用java程序创建表以及存储过程

MySql 数据库用java程序创建表以及存储过程
MySql 数据库用java程序创建表以及存储过程

MySql 数据库用java程序创建表以及存储过程

1.同一般的数据库操作基本一样。

2.Statement.executeUpdate(String sql); 这个方法可以用来执行DDL语句,以及执行更新操作。

3.需要注意 CallableStatement 接口的用法。

用于执行 SQL 存储过程的接口。JDBC API 提供了一个存储过程 SQL 转义语法,该语法允许对所有 RDBMS 使用标准方式调用存储过程。此转义语法有一个包含结果参数的形式和一个不包含结果参数的形式。如果使用结果参数,则必须将其注册为 OUT 型参数。其他参数可用于输入、输出或同时用于二者。参数是根据编号按顺序引用的,第一个参数的编号是 1。

{?= call [,, ...]}

{call [,, ...]}

IN 参数值是使用从 PreparedStatement 中继承的 set 方法设置的。在执行存储过程之前,必须注册所有 OUT 参数的类型;它们的值是在执行后通过此类提供的 get 方法检索的。

4.需要注意存储过程调用的方法。

5.registerOutParameter 的使用方法。

void registerOutParameter(int parameterIndex, int sqlType) throws SQLException

按顺序位置 parameterIndex 将 OUT 参数注册为 JDBC 类型 sqlType。所有 OUT 参数都必须在执行存储过程前注册。由 sqlType 指定的 OUT 参数的JDBC 类型确定必须用于 get 方法来读取该参数值的 Java 类型。如果预期返回给此输出参数的 JDBC 类型是取决于此特定数据库的,则 sqlType 应该是java.sql.Types.OTHER。

方法 getObject(int) 检索该值。

参数:

parameterIndex - 第一个参数是 1,第二个参数是 2,依此类推。

sqlType - java.sql.Types 定义的 JDBC 类型代码。如果参数是 JDBC 类型NUMERIC 或 DECIMAL,则应使用接受标度值的那种。

下面是一个具体的程序实例:

/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

package gui.database;

import java.sql.*;

import java.util.logging.Level;

import java.util.logging.Logger;

/**

*

* @author zhfdai

*/

public class DBManager {

public static void main(String[] args) {

final String DATABASE_NAME = "jdbc:mysql://localhost:3306/test"; final String USER_NAME = "root";

final String PASSWORD = "zhfdai";

Connection connection; //为数据库建立的连接

Statement statement; //将执行的SQL语句

CallableStatement callable; //将执行的SQL存储过程

try {

Class.forName("org.gjt.mm.mysql.Driver");

connection = DriverManager.getConnection(DATABASE_NAME, USER_NAME, PASSWORD);

statement = connection.createStatement();

/*

创建时,先检查该数据库中该项是否已经存在。若存在,就删除。 */

String checkTable = "DROP TABLE IF EXISTS test.teacher;"; statement.executeUpdate(checkTable);

String createTable = "Create table test.teacher(name varchar(20) not null primary key ,age int not null);";

statement.executeUpdate(createTable);

String checkProcedure1 = "DROP PROCEDURE IF EXISTS

test.queryall";

statement.executeUpdate(checkProcedure1);

String createProcedure1 = "CREATE PROCEDURE test.queryall() BEGIN SELECT * FROM test.teacher; END";

statement.executeUpdate(createProcedure1);

String checkProcedure2 = "DROP PROCEDURE IF EXISTS

test.queryCount";

statement.executeUpdate(checkProcedure2);

String createProcedure2 = "CREATE PROCEDURE

test.queryCount(OUT param INT) BEGIN SELECT COUNT(*) INTO param FROM test.teacher; END";

statement.executeUpdate(createProcedure2);

String query = "queryall";

callable = connection.prepareCall("{call " + query + "}"); ResultSet rs = callable.executeQuery();

System.out.println("Column :" +

rs.getMetaData().getColumnCount());

System.out.println("Table:" +

rs.getMetaData().getTableName(1));

String queryCount = "queryCount(?)";

callable = connection.prepareCall("{ call " + queryCount + " }");

callable.registerOutParameter(1,

Types.INTEGER); //设定参数的数据类型。

callable.executeQuery(); //获取参数所得值。

int rowCount = callable.getInt(1);

System.out.println("The number of rows is " + rowCount);

} catch (SQLException ex) {

Logger.getLogger(DBManager.class.getName()).log(Level.SEV ERE, null, ex);

} catch (ClassNotFoundException ex) {

Logger.getLogger(DBManager.class.getName()).log(Level.SEV ERE, null, ex);

}

}

}

用MySQL创建数据库和数据库表(新手必看)

用MySQL创建数据库和数据表: 步骤: 1、使用show语句找出在服务器上当前存在什么数据库:mysql>show databases; 2、创建一个数据库test: mysql>create database test; 3、选择你所创建的数据库: mysql>use test; 4创建一个数据表: 首先查看刚才创建的数据库中存在什么表: mysql>show tables; (说明刚才创建的数据库中还没有数据库表)

接着我们创建一个关于students的数据表:包括学生的学号(id),姓名(name),性别(sex),年龄(age)。 mysql>create table students(id int unsigned not null auto_increment primary key,name char(8) not null,sex char(4) not null,age tinyint unsigned not null,); 解释:以"id int unsigned not null auto_increment primary key" 行进行介绍: "id" 为列的名称; "int" 指定该列的类型为int(取值范围为-8388608到8388607), 在后面我们又用"unsigned" 加以修饰, 表示该类型为无符号型, 此时该列的取值范围为0到16777215; "not null" 说明该列的值不能为空, 必须要填, 如果不指定该属性, 默认可为空; "auto_increment" 需在整数列中使用, 其作用是在插入数据时若该列为NULL, MySQL将自动产生一个比现存值更大的唯一标识符值。在每张表中仅能有一个这样的值且所在列必须为索引列。"primary key" 表示该列是表的主键, 本列的值必须唯一, MySQL将自动索引该列。 下面的char(8) 表示存储的字符长度为8, tinyint的取值范围为-127到128, default 属性指定当该列值为空时的默认值。

mysql的多表操作查询

超详细mysql left join,right join,inner join用法分析 下面是例子分析 表A记录如下: aID aNum 1 a20050111 2 a20050112 3 a20050113 4 a20050114 5 a20050115 表B记录如下: bID bName 1 2006032401 2 2006032402 3 2006032403 4 2006032404 8 2006032408 创建这两个表SQL语句如下: CREATE TABLE a aID int( 1 ) AUTO_INCREMENT PRIMARY KEY , aNum char( 20 )

) CREATE TABLE b( bID int( 1 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , bName char( 20 ) ) INSERT INTO a VALUES ( 1, ‘a20050111′ ) , ( 2, ‘a20050112′ ) , ( 3, ‘a20050113′ ), ( 4, ‘a20050114′ ) , ( 5, ‘a20050115′ ) ; INSERT INTO b VALUES ( 1, ‘ 2006032401′ ) , ( 2, ’2006032402′ ) , ( 3,’2006032403′ ) , ( 4, ’2006032404′ ) , ( 8, ’2006032408′ ) ; 实验如下: 1.left join(左联接) sql语句如下: SELECT * FROM a

如何使用MySQL数据库

如何使用MySQL数据库 一、下载软件: ●下载MySQL数据库压缩安装文件,解压后得到mysql-essential-5.1.36-win32文件 夹,运行安装程序,将其安装到指定位置。 ●要在Java应用中访问MySQL数据库,需要相应的驱动程序。下载驱动程序 mysql-connector-java-5.1.10.zip,在解压后的文件夹根目录中找到资源包 mysql-connector-java-5.1.10-bin.jar。并将其拷贝到Tomcat的安装目录的lib 文件夹下。 二、基本操作 ●使用密码admin进入编辑管理平台,假设要建立数据库testjdbc,数据表user。 ●建立数据库 create database TestJDBC; ●设定当前数据库 use testJDBC ●建立数据表 create table user(username varchar(32),password varchar(32),age int, address varchar(32) ); ●添加数据 insert into user(username, password, age, address) values(‘John’,’ 123456’,18,’Hexi District, Tianjin’) ●显示数据表内容 select * from user; 三、其他常用命令 ●删除数据库 drop database testjdbc; ●显示当前数据库 show databases; ●显示数据表 show tables; ●删除数据表 drop table user; ●显示数据表结构 describe user; 四、MySQL的配置 ● 1.选择向导,进入配置界面

2.1MySQL创建数据库表

鲁琴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();

jsp-mysql总结表的操作合集

jsp+mysql进行简单的增删改查总结 第一步创建一个新的包用于封装学生属性 在新包里面创建新的类存入学生属性 publicclass shuxing { String name; int age; String sex; int id; 右击鼠标选择soure-gennerategettersand setters来封装数据 第二步创建另一个新的包用于主体serlvet的操作 Servlet里面操作: 1.因为doget比dopost拥有更强的保密性,所以把dopost的语句也沿用doget的形式 doPost(request,response);注意删除的时候是不是把}也删除了,会报错。2.将设置请求的编码格式为’UTF-8’防止后面输入学生信息的时候出现乱码,之所以放在前面是怕后面写的话就不可以public公用了。 3.读取后面表中按钮的名称,用一个新的名字来获取随后跳转需要调用的语句 String opeationName = request.getParameter("openration");//取出条件的OPENRATION,看执行哪一种语句 4.查看取出的名称是否为空。 opeationName = opeationName==null?"":opeationName.trim();//取出来看下是不是空,不是空去掉空格 5.用if()else()语句来写调用的程序用前面取出的名字 一:删除方法:opeationName.equals("delete") (1).提取要删除的ID String id=request.getParameter("id"); (2).查看是否为空,为空输出“”if(id==null) { id=""; } (3).try{}catch()语句用于报错 try{ int result = doDelete(id);//调用到doDelete的方法 Listqw = new ArrayList();//创建新的集合用于存放数据 qw = getData();//获取数据 request.setAttribute("qw" ,qw);//缓存范围中设置具体的属性:第一个参数是属性名,字符串类型的数据。,也是以后获取的依据条件,第二个是插入的数据,支持对象属性。 (4)跳转进入最开始的jsp页面即查询语句的JSP界面 二.增加opeationName.equals("add") (1).增加不需要提取什么属性。直接获取在JSP中提交的数据即可,但是要观察是否为空String newname=request.getParameter("name");

用MySQL创建数据库和数据库表

用MySQL创建数据库和数据库表 帐户luowei505050的专栏 类别数据库 #用MySQL创建数据库和数据库表 #1、使用SHOW语句找出在服务器上当前存在什么数据库:SHOW DATABASES; #2、创建一个数据库db1 create database db1; #3、选择你所创建的数据库 use db1; #use test; #4、创建一个数据库表 create table t_person (FNamevarchar(20),Fageint); # 5、显示表的结构: SHOW TABLES; #查看表中数据 select * from t_person; # 6、往表中加入记录 Insert Into t_person(FName,FAge) values('Jim',25); Insert Into t_person(FName,FAge) values('green',38);

Insert Into t_person(FName,FAge) values('kate',20); Insert Into t_person(FName,FAge) values('john',23); Insert Into t_person(FName,FAge) values('tom',28); Insert Into t_person(FName,FAge) values('daviy',30); #查看表中数据 select * from t_person; # 7、用文本方式将数据装入一个数据库表 LOAD DATA LOCAL INFILE "mytable.txt" INTO TABLE pet; #其它操作 insert into t_person(fname) values('lily'); insert into t_person values('poly',22); updatet_person set fage=30; updatet_person set fage=20 where fname='tom'; updatet_person set fage=50 where fname='tom' or fname='jim'; delete from t_person where fname='jim'; delete from t_person where fage>30; delete from t_person;

用MySql创建数据库和表

用MySql创建数据库和表 关键字: mysql 1、使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; +----------+ | Database | +----------+ | mysql | | test | +----------+ 3 rows in set (0.00 sec) 2、创建一个数据库abccs mysql> CREATE DATABASE abccs; 注意不同操作系统对大小写的敏感。 3、选择你所创建的数据库 mysql> USE abccs Database changed 此时你已经进入你刚才所建立的数据库abccs. 4、创建一个数据库表 首先看现在你的数据库中存在什么表: mysql> SHOW TABLES; Empty set (0.00 sec) 说明刚才建立的数据库中还没有数据库表。下面来创建一个数据库表 mytable: 我们要建立一个你公司员工的生日表,表的内容包含员工姓名、性别、出生日期、出生城市。 mysql> CREATE TABLE mytable (name VARCHAR(20), sex CHAR(1), -> birth DATE, birthaddr VARCHAR(20)); Query OK, 0 rows affected (0.00 sec) 由于name、birthadd的列值是变化的,因此选择VARCHAR,其长度不一定是20。可以选择从1到255的任何长度,如果以后需要改变它的字长,可以使用ALTER TABLE语句。);性别只需一个字符就可以表示:"m"或"f",因此选用 CHAR(1);birth列则使用DATE数据类型。 创建了一个表后,我们可以看看刚才做的结果,用SHOW TABLES显示数据库中有哪些表: mysql> SHOW TABLES; +---------------------+ | Tables in menagerie | +---------------------+ | mytables | +---------------------+

个人总结的mysql常用命令大全

第一招、mysql服务的启动和停止 net stop mysql net start mysql 第二招、登陆mysql 语法如下:mysql -u用户名-p用户密码 键入命令mysql -uroot -p,回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql 的提示符是: mysql> 注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP 第三招、增加新用户 格式:grant 权限on 数据库.* to 用户名@登录主机identified by "密码" 如,增加一个用户user1密码为password1,让其可以在本机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令: grant select,insert,update,delete on *.* to user1@localhost Identified by "password1"; 如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。 如果你不想user1有密码,可以再打一个命令将密码去掉。 grant select,insert,update,delete on mydb.* to user1@localhost identified by ""; 第四招:操作数据库 登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。 1、显示数据库列表。 show databases; 缺省有两个数据库:mysql和test。mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。 2、显示库中的数据表: use mysql;

mysql多表操作与练习笔记

mysql多表操作与练习 数据库备份与恢复 ◆数据库备份 ◆数据库恢复 多表操作 ◆多表设计 ◆外键介绍与创建 ◆多表查询介绍 ◆多表查询-内连接 ◆多表查询-外连接 ◆多表查询-子查询 SQL练习 【内容:数据库备份与恢复】 数据库备份 数据库的备份是指将数据库转换成对应的sql文件。数据库导出sql脚本的命令如下: ●mysqldump –u用户名–p密码数据库名>生成的脚本文件路径; 以上备份数据库的命令中需要用户名和密码,即表明该命令要在用户没有登录的情况下使用数据库恢复 数据库的恢复指的是使用备份产生的sql文件恢复数据库,即将sql文件中的sql语句执行就可以恢复数据库内容。因为数据库备份只是备份了数据库内容,所以备份产生的sql文件中没有创建数据库的sql语句,在恢复数据库之前需要自己动手创建数据库。 ●在数据库外恢复 mysql -u root -p 数据库名< 文件路径 注意:要求数据库必须先创建出来. ●.在数据库内恢复 source SQL脚本路径:使用这种方式恢复数据,首先要登录数据库 【重点总结】 备份 Mysqldump –u root –p abc mydb>c:/mydb.sql 恢复 1.mysql –u root –p mydb

【内容:多表操作】 多表设计 当我们要完成一个软件系统时,需要把系统中的实体抽取出来,形成概念模型。例如部门、员工都是系统中的实体。概念模型中的实体最终会成为Java中的类、数据库中的表。今天我们需要了解的概念模型包括以下两个: ●对象模型:针对java中的实体类,例如我们之前学习的domain层中的User类等; ●关系模型:对应数据库中的表。 在java中有以下三个关系描述: ●is a:例如猫是动物,表示继承关系; ●has a:例如人有两只手,表示的是类与成员的关系; ●use a:表示类与方法之间的关系; 我们今天主要关注的是第二个关系:类与成员的关系。这种关联关系可以分为如下三种: ●一对一关联:例如身份证与人就是一对一的关系,一个人只有一个身份证,一个身份证 号只属于一个人。 ●一对多关联:例如用户与订单,一个用户可以拥有多个订单,多个订单可以属于同一个 用户,这是一个很明显的一对多关联。 ●多对多关联:例如商品与订单,一个订单中可以包含多个商品,而一个商品也可以存在 于多个订单中,这就是一个多对多关联。 概念模型在java中对应这实体类,在实体类中使用成员变量完成关联关系,而且一般都是双向关联,以下是java中实体类与成员之间的关联关系,如下所示: 一对一关联 //身份证类一的一方 public class IDCard { private Person person; //身份证关联人类一对一 } //人类一的一方 public class Person { private IDCard idcard; //人类关联身份证类一对一 } 一对多关联 //用户一的一方 public class User { private List orders; //用户可以有多个订单,在用户中关联订单} //订单多的一方 public class Order { private User user; //多个订单可以属于一个用户,在订单中关联用户} 多对多关联 // 订单多的一方 public class Order { private List products; //订单中可以包含多个商品,订单关联商品

MySQL存储过程实例教程

MySQL存储过程实例教程 MySQL 5.0以后的版本开始支持存储过程,存储过程具有一致性、高效性、安全性和体系结构等特点,本节将通过具体的实例讲解PHP是如何操纵MySQL存储过程的。 实例261:存储过程的创建 这是一个创建存储过程的实例 录像位置:光盘mingrisoft9?lt;/p> 实例说明 为了保证数据的完整性、一致性,提高应用的性能,常采用存储过程技术。MySQL 5.0之前的版本并不支持存储过程,随着MySQL技术的日趋完善,存储过程将在以后的项目中得到广泛的应用。本实例将介绍在MySQL 5.0以后的版本中创建存储过程。 技术要点 一个存储过程包括名字、参数列表,以及可以包括很多SQL语句的SQL语句集。下面为一个存储过程的定义过程: create procedure proc_name (in parameter integer)begindeclare variable varchar(20);if parameter=1 thenset variable='MySQL';elseset variable='PHP';end if;insert into tb (name) values (variable);end; MySQL中存储过程的建立以关键字create procedure开始,后面紧跟存储过程的名称和参数。MySQL的存储过程名称不区分大小写,例如PROCE1()和proce1()代表同一个存储过程名。存储过程名不能与MySQL数据库中的内建函数重名。 存储过程的参数一般由3部分组成。第一部分可以是in、out或inout。in表示向存储过程中传入参数;out表示向外传出参数;inout表示定义的参数可传入存储过程,并可以被存储过程修改后传出存储过程,存储过程默认为传入参数,所以参数in可以省略。第二部分为参数名。第三部分为参数的类型,该类型为MySQL数据库中所有可用的字段类型,如果有多个参数,参数之间可以用逗号进行分割。 MySQL存储过程的语句块以begin开始,以end结束。语句体中可以包含变量的声明、控制语句、SQL查询语句等。由于存储过程内部语句要以分号结束,所以在定义存储过程前应将语句结束标志“;”更改为其他字符,并且该字符在存储过程中出现的几率也应该较低,可以用关键字delimiter更改。例如: mysql>delimiter // 存储过程创建之后,可用如下语句进行删除,参数proc_name指存储过程名。 drop procedure proc_name 实现过程

将动态网页的数据写入数据库

将动态网页的数据写入数据库 前面几节着重介绍了连接数据库的知识和相应操作,所引用的范例中,也只是介绍了连接部分的代码。从本节开始,后面几节都是介绍不同访问方式的代码。本节主要介绍数据库数据的写入代码。 在JSP动态网页中,因为连接不同数据库,使用不同的JDBC,连接部分的代码有所不同。而访问部分的代码,基本一样。所以后面的代码范例,一律都使用Access数据库进行介绍。如果读者使用其他数据库体验本书的范例,只要将代码中连接部分进行修改,调试后都可以运行。 一、范例的演示和代码清单 本节演示数据库写入操作的范例,仍然是上一节的动态网页ch4-31.jsp。由于演示前提、演示步骤、代码清单和上一节完全相同,这里不再重复叙述。而是直接进行代码分析,本节着重分析网页代码的整体结构,以及写操作代码的具体构成。 二、动态网页的代码分析 Ch4-31.jsp是从表单获得数据,然后连接数据库,再将获得的数据写入数据库的动态网页。代码的结构分为如下几个部分: 第一部分:调用java.sql专用包(第9行)。 9)<%@page contentType="text/html;charset=gb2312" import="java.sql.*" %> 代码中import="java.sql.*",是将java.sql专用包调入。因为后面的代码要使用SQL语句,所有调用SQL语句的专用类,都在这个包中。因此凡是连接访问数据库的动态网页,在页命令设置的代码行中,都必须有import="java.sql.*"一项。 第二部分:从表单获得数据(第11-17行)。 11)String clas =new String(request.getParameter("clas")); 12)String na =new String(request.getParameter("na")); 13)String name =new String(request.getParameter("name")); 14)String sex =new String(request.getParameter("sex")); 15)String password=new String(request.getParameter("pass")); 16)String password2=new String(request.getParameter("repass")); 17)String email =new String(request.getParameter("email")); 这几行代码,和前几章中获得数据的代码有所不同。它是将获得的数据,强行转化为字符串型的对象。这样做主要为了保证后面代码使用数据时,绝对是字符串类型。如果仍然使用原来所学的代码,一般情况下,网页都可正常运行。以第11行为例,可以仍然写成如下格式: 11)String clas = request.getParameter("clas"); 第三部分:定义字符串变量,分别用于承载JDBC驱动、连接数据库url参数的内容、要运行的SQL语句内容(第19-20行)。 19)String DBDriver="";

MySQL建立电子商城数据库

DBMS Project——淘宝数据库设计

一、数据库需求 根据淘宝网的功能设计数据库。使用MySQl 数据库软件完成设计。 淘宝网作为国内最优秀的C2C网站(没有之一)满足了广大人民足不出户方便购物的需求。由最广大买家和买家组建起来的交易平台,每天都有难以计数的数据库应用的需要。从检索,到插入删除,新建列表,都依赖于背后的数据库系统的支持。 我们了解到,淘宝网最初的数据库系统即由MySQl构建,后来随着规模的扩大而升级。本次Project就是运用MySQL来设计实现淘宝的数据库。 具体描述: 1)用户user需先注册。 2)用户登录前,可以检索所有商品goods和店铺shop。用户登陆后,可以下订单order和购买商品,实现加入购物车shoppingcart和收藏夹favourite功能。 3)用户可注册开店,此处需要开店认证功能。为使系统简洁,限制每位用户只能开1家店铺。 4)相同商品按店铺不同区分,ID也不同。即,同一本数据库系统教程,在店铺A和B出售,其ID也不同。同一店铺内同一本书的ID显然相同。 5)下订单后需要支付功能。 6)管理员功能。用户可以对所开店铺内商品进行添加、修改和删除。管理员有权对所有店铺内商品进行删除。

二、E/R图 三、关系设计 1)用户表 User (uid, uname, password, phonenum, email, urate ) 用户表(user)主要包括用户ID,昵称,密码,电话,邮箱。用户ID是主键。

2)店铺表 Shop ( sid, uid, sname, srate, satisfy ) 店铺表(shop )包括店铺ID ,店铺名,用户 ID (即掌柜ID ),店铺等级,顾客满意度。店铺ID 是主键,uid 是外键。 3)商品列表 Goods (gid, gname, sid, price, category, salesvol, reserve, desc ) 商品列表(goods )包括商品ID ,商品名,店铺ID ,价格,品类,销售量, 库存,描述。商品ID 是主键,sid 是外键。

MySQL存储过程简单入门

MySQL存储过程语法 1、概念 存储过程就是能完成一定操作的一组SQL语句。 2、作用 大大提高效率(存储过程本身执行速度非常快,而且,调用存储过程大大减少数据库交互次数);提高重用性。 3、使用方法 1、创建: create procedure sp_name() begin …… end 注意:可能有参数。 2、调用: call sp_name() 注意:括号不能省略。 3、删除: drop procedure sp_name 注意:没有括号,不能在一个存储过程中删除另一个存储过程,只能调用。 4、语句: 条件语句, if 条件then statement else statement end if while循环语句, [label:] while expression do statement end while [label]; loop循环语句, [label:] loop statement end loop [label];

repeat until循环语句, [label] repeat statement until expression end repeat [label]; 5、常用命令: show procedure status:显示数据库所有存储过程基本信息。 show create procedure sp_name:显示一个存储过程详细信息。 关于运算符和基本函数与Java有些区别,用时注意就行。 4、实例 1、创建: create procedure proc_name (in parameter integer) begin declare variable varchar(20); if parameter=1 then set variable='MySQL'; else set variable='PHP'; end if; insert into tb (name) values (variable); end; 注意:代码不区分大小写;存储过程之间以及存储过程与内建函数不能同名; 存储过程参数(in传入,out传出,inout可传入,修改后传出,缺省是in); 由于存储过程内部要以分号结束,需要delimiter进行更改。 2、实现: ⑴、mysql –u用户名–p用户密码 ⑵、delimiter //(将结束符号“;”改成“//”,避免与存储过程冲突) ⑶、use 数据库名 ⑷、……(创建存储过程) ⑸、call proc_name(5)//(调用存储过程) -------------------------------------------- call proc_name(@para)//(对应存储过程定义中out的输出) select @para// ⑹、show procedure status//与show create procedure proc_name// 3、程序代码调用:(out型的部分代码) try{ //调取out型的存储过程P(计算记录总数) stmt = conn.prepareCall("{call p(?)}"); //读取所有OUT型的存储过程的返回参数数据 stmt.registerOutParameter(1, Types.INTEGER); stmt.execute(); int i= stmt.getInt(1);

实验六 MySql存储过程

实验六MySql存储过程 一、实验目的 1、熟悉MySql的存储过程 二、实验内容 1、建立一张学生表,属性有学号、姓名、年龄三个字段。 2、建立一个存储过程,实现学生的全查询 3、分别用IN 和OUT实现姓名的调用 4、声明一个变量,把变量加1,再把变量加入到学生表的学号字段中。 5、建立一个存储过程,外部调用这个存储过程,当外部传入的值是0时,则在学生表中插入一个学号是17的学生,如果是1时,则在学生表中插入一个学号是18的学生,如果都不是,则在学生表中插入一个学号是19的学生. 6、建立一个存储过程,做一个循环语句,循环插入5个学生。(至少用三种循环的存储过程方法) 三、试验结果截图 1.建立一张学生表,属性有学号、姓名、年龄三个字段。 2.建立一个存储过程,实现学生的全查询

3.分别用IN 和OUT实现姓名的调用 4.声明一个变量,把变量加1,再把变量加入到学生表的学号字段中。

5.建立一个存储过程,外部调用这个存储过程,当外部传入的值是0时,则在学生表中插入一个学号是17的学生,如果是1时,则在学生表中插入一个学号是18的学生,如果都不是,则在学生表中插入一个学号是19的学生.

6建立一个存储过程,做一个循环语句,循环插入5个学生。(至少用三种循环的存储过程方法) 所有代码: 1. create table stu( stuno int, stuna varchar(20), stuage int ); insert into stu values(001,'zhangsan',22);

insert into stu values(002,'lisi',23); insert into stu values(003,'wangwu',23); insert into stu values(004,'maliu',24); insert into stu values(005,'zhaoqi',25); insert into stu values(006,'gaoba',23); insert into stu values(007,'ddddd',22); insert into stu values(008,'ttttt',21); 2. create procedure select_all() select * from stu; 3. delimiter // create procedure searchno( in no int, out na varchar(20), out age int ) begin select stuna from stu where stuno=no into na; select stuage from stu where stuno=no into age; end // delimiter ; call searchno(n,@na,@age); select @na,@age; 4. delimiter // create procedure noupdate( in n int) begin update stu set stuno=stuno+n; end // delimiter ; 5. delimiter // create procedure addstu( in sno int ) begin case sno when 0 then insert into stu values(17,'no17',20); when 1 then insert into stu values(18,'no18',20); else insert into stu values(19,'no19',20); end case; end //

MySQL论坛数据库建表实例(张伟)

CREATE TABLE BBSAccount( AccountID bigint auto_increment primary key, NickName varchar(30) NOT NULL, Birthday datetime, Password varchar(20), State char(2), SEmail varchar(50)); CREATE TABLE BBSSector( SectorID int auto_increment primary key, AccountID bigint not null, SectorName varchar(20) not null, ClickingRate int default ‘0’, TopicCount bigint default ‘0’, FOREIGN KEY(AccountID )REFERENCES BBSAccount(AccountID) ON UPDATE CASCADE ON DELETE RESTRICT);

CREATE TABLE BBSTopic( TopicID bigint auto_increment primary key, AccountID bigint not null, Title varchar(50) not null, TopicText text not null, TopicDate timestamp null default current_timestamp, ReplyCount int not null, ClickingRate int default ‘0’, SectorID int not null, FOREIGN KEY(AccountID) REFERENCES BBSAccount(AccountID)ON UPDATE CASCADE ON DELETE RESTRICT, FOREIGN KEY(SectorID) REFERENCES BBSSector(SectorID)ON UPDATE CASCADE ON DELETE RESTRICT); CREATE TABLE BBSReply(

数据库与动态网页制作

数据库基础与动态网页制作教学大纲 课程名称:数据库基础与动态网页制作 适用专业: 学时:44 学分: 开课学期:第二学期 课程类别:限定选修 先修课程:计算机应用基础 一、课程性质与任务 通过本课程的教学,使学生能基本掌握数据库的基本理论和设计数据库的基本方法,特别是ER分析技术和范式分析等数据分析技术,同时,在数据库研究和应用领域内,提高分析问题和解决问题的能力,掌握SQL语言在具体数据库管理系统中的应用;掌握开发ASP 程序的基础知识和基本方法,对网络程序设计有一个全面的认识和了解,初步掌握ASP动态网站开发的基本思想和方法;通过Dreamweaver开发工具的学习,学会留言板、新闻发布管理系统、会员注册、网上调查、搜索查询、在线购物等高级动态网页制作的方法。二、课程的教学内容与教学要求 2.课程教学内容 第一模块:数据库设计及查询 1.1 数据库基础知识

(1)数据库的基本概念:包括数据、数据库、数据库系统、数据库管理系统。 (2)数据管理技术新进展:分布式数据库、并行数据库、多媒体数据库、主动数据库、对象-关系数据库、数据仓库、工程数据库、统计数据库、空间数据库等。 1.2 数据模型、逻辑设计及范式分析基础 (1)数据模型要素:理解数据模型包含的几个方面 (2)概念模型:E-R设计、逻辑设计及物理设计 (3)关系数据库范式分析基础:数据依赖、范式的概念和种类,1nf,2nf,3nf及bcnf 的概念及实现方法。 1.3 SQL基础知识 (1)SQL的特点、SQL语言的基本概念 (2)单表查询:选择表中的若干列、条件查询、消除重复 1.4 SQL高级查询 (1)查询结果排序和分组、集函数的使用(count、sum、avg等) (2)复合连接查询、嵌套查询、集合查询 (3)数据更新:包括数据插入、数据修改和数据删除 第二模块:ASP编程基础 2.1 ASP基础知识 (1)ASP的工作原理 (2)动态网页技术及其区别 (3)IIS的安装和配置;站点、虚拟目录的设置方法 (4)Dreamweaver或Frontpage中站点的建立 (5)了解DreamWeaver站点设置与IIS设置的关系 (6)ASP动态网站开发工具及帮助文档 2.2 VBSCRIPT脚本语言 (1)VBScript的变量与常量、数组、运算符 (2)VBScript数据输入与输出、条件语句、Select Case语句、循环语句的语法 (3)VBScript的过程与函数的概念及其区别,过程与函数的基本应用 (4)VBScript的常用函数的语法及基本用法 (5)综合应用VBScript脚本语言,编写简单的程序 2.3 ASP程序与ASP内置对象 (1)ASP内置对象和内置组件的基础知识 (2)Request对象的属性、事件和方法 (3)Response对象的属性、事件和方法 (4)Session对象的属性、事件和方法 (5)综合应用Request对象、Response对象和Session对象编写简单的ASP程序 2.4 ASP的内置组件 (1)Ad Rotatoe组件: (2)Browser Capabilities组件 (3)Content Linking组件 (4)File Access 组件 (5)TextStream组件 (6)性能组件 2.5ASP与数据库 (1)ASP与数据库连接的方法

如何用MySQL创建数据库和数据库表

用MySQL创建数据库和数据库表 1、使用SHOW语句找出在服务器上当前存在什么数据库: 2、创建一个数据库abccs mysql> CREATE DATABASE abccs; 注意不同操作系统对大小写的敏感。 3、选择你所创建的数据库 mysql> USE abccs Database changed 此时你已经进入你刚才所建立的数据库abccs. 4、创建一个数据库表 首先看现在你的数据库中存在什么表: mysql> SHOW TABLES; Empty set (0.00 sec) 说明刚才建立的数据库中还没有数据库表。下面来创建一个数据库表mytable: 我们要建立一个你公司员工的生日表,表的内容包含员工姓名、性别、出生日期、出生城市。 由于name、birthadd的列值是变化的,因此选择VARCHAR,其长度不一定是20。可以选择从1到255的任何长度,如果以后需要改变它的字长,可以使用ALTER TABLE语句。);性别只需一个字符就可以表示:"m"或"f",因此选用CHAR(1);birth列则使用DATE数据类型。 创建了一个表后,我们可以看看刚才做的结果,用SHOW TABLES显示数据库中有哪些表:

5、显示表的结构: 6、往表中加入记录 我们先用SELECT命令来查看表中的数据: mysql> select * from mytable; Empty set (0.00 sec) 这说明刚才创建的表还没有记录。 加入一条新记录: 再用上面的SELECT命令看看发生了什么变化。我们可以按此方法一条一条地将所有员工的记录加入到表中。 7、用文本方式将数据装入一个数据库表 如果一条一条地输入,很麻烦。我们可以用文本文件的方式将所有记录加入你的数据库表中。创建一个文本文件“mysql.txt”,每行包含一个记录,用定位符(tab)把值分开,并且以在CREATE TABLE语句中列出的列次序给出,例如:

相关文档
相关文档 最新文档