首页  前一页  后一页  末页
[154] [155] [156] [157] [158]
本留言簿共有493条记录, 现在时间2025-5-24 19:14:39,计算机地址:192.168.9.44
日期查询:
现在是第31页
一共有99页
Books库中表及结构信息 环境:一键安装 库表:Mysql.sql  xx3.sql xx4.sql 页面:Myphp.php   
序号 留言内容
158

D:2012-3-21
T:8:47:00
IP:192.168.8.40



作者:
张顺海

2012.3.22 星期四

教学内容:PHP与数据库的连接、查询、显示、关闭代码;智能查询应用(三)

教学目标:掌握数据库在PHP中的操作方法

教学重点:指令代码的语法

教学难点:数据库操作代码的改进;

教学方法:(复习课)实训课

教学地点:四号微机室

 

一、作业评析、巩固复习、新课导入

1.应该上交作业15人,实际上交14人,商丹因为请假未交。本次作业优秀人员:王娟、刘蕊、张婷婷

2.主要存在问题:

1)<php......?>没有成对出现;

2)$jg->num_rows;中有的丢失减号,有的把下划线写在减号,如:$jg >num-rows;

3)在使用@$db=new mysqli('localhost','root','11111111','books');//建立数据库的连接时,把登陆名称root丢失,有的私自必定登陆密码,如果信息有误,后续的所以命令也不能正确执行;

4)有的同学字符串时,单引号或者使用双引号没有成对出现,如echo ‘title“..,前边是单引号,后边是双引号,是不对的

5)有的同学丢落了字符连接符号,如  echo "title:".$re['title'."br>
",其中的“.”是非常重要的。

3.上节内容复习

复习上节内容

3.新课导入

这节课,我们主要是继续完成上节的内容,一是安装上节运行环境(下载程序、导入指令、建立数据库及表);二是背写指令代码(建立自己的PHP页面,运行数据库连接,显示运行结果);三主要是对已经有的程序进行改写(连接不同的数据表、显示不同的内容,必要时关闭数据库)。 


 

二、新授

1.不同数据库的连接:

@$db=new mysqli('localhost','root','11111111','books');//建立数据库的连接

比如,由数据库“books”更改库“xsvjz”,则命令中只需要把上边的红色部分的books改为xsvjz即可,登陆名及密码,是登陆数据库服务器的用户名及密码,并不是连接数据库的用户名及密码。

2.执行不同查询命令:

$cx="select * from books";             //查询语句内容

比如:想查询数据表customers中的内容,只需要把红色部分改变内容即可,如“select * from customers”。

3.开始执行指令,并得到结果:

$jg=$db->query($cx);                   //执行保存在变量cx中的查询语句,并把结果保存在变量jg中。

4.得到上边命令执行的结果中的数据行数量,可能没有得到记录,那么将会是零。

$sl=$jg->num_rows;                     //将执行结果中的行数(记录数)保存到变量sl中,行的数量可做为下边循环的次数。

5.循环控制(有好多种,现在我们只涉及一种,一般适合已经知道循环次数的)

for ($i=1,$i<=$sl,$i++)

{

}
语法:根据for中的循环条件来确定{}中代码执行的次数。

本循环题目中条件有两个变量,一个是新建立的变量$i,一个是上边已经建立的变量$sl(即第4问中的$sl,行数)。

大家试一下如何代码,可能就会明白其中的循环控制:

for ($i=1,$i<=10,$i++)

{echo $i."
";}

6.显示命令echo,看如下实例:

NO1

<?php
$str = "This is my first php?";
echo $str;
echo "<br>";
echo $str."<br>"."don't know!";
?>

输出:

This is my first php?
This is my first php?
I don't know!

no2

单引号和双引号的不同之处。单引号仅输出变量名,而不是值:

<?php
$color = "red";
echo "Roses are $color";
echo "
";
echo 'Roses are $color';
?>

输出:

Roses are red
Roses are $color

NO3

简化语法:




Roses are


运行结果: Roses are red

三、练习

1.将新授的内容中的语法,运用到自己的代码改写中去。(尤其是数据内容的输出语法形式)

2.将数据库“books”中的数据表“customers”中的所有内容显示出来,按自己设计的输出格式。(重点)

四、总结

这节课,我们把上次课的内容(数据库的连接,查询,结果显示)PHP代码进行了背写练习,不少同学出了这样那样的问题,最后有了正确的结果,说明理论与上机的区别,说明了‘程序调试’的重要,也说明了我们对程序设计中‘语法’的运用。

通过练习,我们知道了for的语法,知道了echo函数在程序中的使用格式。

五、作业(书面作业如下)

将数据库表“books”中的“orders”的内容显示出来,形式一个页面文件myorders.php。

六、教学反思

157

D:2012-3-12
T:13:58:00
IP:192.168.8.40



作者:
张顺海

2012.3.15 星期四

教学内容:PHP连接数据库、select智能查询(二)

教学目的:掌握PHP中与Mysql数据库的建立连接、数据查询、数据显示命令及方法;

教学重点:php+apache+mysql环境安装【 一键安装文件】下载,Mysql默认用户:root,密码:11111111。

教学难点:PHP中与数据库的连接

教学方法:教学实验法

教学教具:电子教案,实习环境(PHP+apache+mysql),4号微机室 

一、作业点评、内容复习、新课导入:

1.作业点评:

这次作业应该上交15人,实际上交14人,差郝倩。优秀人员:刘睛睛、张婷婷、王娟

作业存在的问题:

数据类型匹配问题:customerid=4,写成了customerid='4',原因是customerid是int型的,所以条件的右边也应该是int型的,可是'4'是字符型的,显然是不匹配的,所以应该去年引号。

字段名书写问题:customerid写成了customeird,orderid写成order。

逗号丢失问题:select orderid,customerid from orders; 中的逗号是不能丢的。

文件路径保存的问题:source c:\yoursql.sql; 错误的写成了source c:/yoursql.sql; (应该用反斜杠表示文件的保存路径)

其他问题:有的yoursql.sql写成了your.sql;一个select语句中有两个from等等。

2.上节内容回顾:

  • 批处理运行指令:source <命令文件地址>
  • 显示指令:
  • select * from
  • select * from where <条件>
  • 条件短语:between、like、in

 

3.新课导入 :

我们已经知道了数据库的概念、建立方法,数据库与数据表之间的关系,显示数据库(show databases)与显示数据表(show tables)命令,查看数据表的结果命令(describe customers),查询数据表(select * from orders)方法,智能查询的几个关键短语(where、between、like、in)等等,一个数据的记录插入(insert into)、记录的删除(delete from)命令。我们学习Mysql的关键是配合PHP网页设计,用于数据库管理,这节课我们简单的学习一个,PHP中与Mysql数据管理系统的搭配。

二、新授

(一)PHP中连接Mysql数据库的一般过程:

1.建立一个连接【P204-->11.2.2】

2.建立一个新的查询【P206-->11.2.4】

3.得到查询结果、显示结果【P206-->11.2.5】

4.断开数据库的连接【P207-->11.2.6】

(二)实例:【 下载

数据库连接

结果:

运行结果

(三)预习相关指令:

通过PHP连接MYSQL数据库

   $conn = mysql_connect("localhost","root","password") or die("无法连接数据库");
   mysql_select_db("table" ,$conn) or die ("找不到数据源");



通过PHP创建MYSQL数据库

  $conn = mysql_connect("localhost","root","password") or die("无法连接数据库");
  mysql_create_db("xsvjz") or die("无法创建数据库");
  $sqlstr = "create database other_xsvjz";
  mysql_query($sqlstr) or die("无法创建,一般请检查权限什么的");


创建mysql的表

  $conn = mysql_connect("localhost","root","password") or die("无法连接数据库");
  mysql_select_db("books",$conn) or die("无法连接数据库books");
  $sql = "create table no3_table(xm char(6),xb char(2),nl int, xh int not null))";
  $mysql_query($sql) or die(mysql_error()); 

(四)数据表查询(二)

1.between、like、in短语应用已经讲过,请大家认真想一想,或者看看上节课的笔记或电子教案;

2.not between

3.not like

4.not in

三、练习

将数据库books中的数据表books的记录信息显示如下:(请将上边的myphp.php内容加以改变)

0-672-31509-2 | Pruitt,et al. | Teach Yourself GIMP in24 Hours | 24.99 |
0-672-31697-8 | Michael Morgan | Java 2 for Professional Developers | 34.99 |
0-672-31745-1 | Thomas Down | Installing Debian GNU/Linux | 24.99 |
0-672-31769-9 | Thomas Schenk | Caldera OpenLinux System Administration Unleashed | 49.99 |
 

四、总结

1.数据库的连接(提供主机-localhost、登陆用房名--root、登陆密码--11111111、数据库名books);

如:@$db=new mysqli('localhost','root','11111111','books');//建立数据库的连接

2.数据库表的查询

如:

$cx="select * from books";             //查询语句内容
$jg=$db->query($cx);                   //执行保存在变量cx中的查询语句,并把结果保存在变量jg中。
$sl=$jg->num_rows;                     //将执行结果中的行数(记录数)保存到变量sl中。

3.数据表查询结果的显示

如:

for ($i=1;$i<=$sl;$i++)                //控制循环指定次数(记录数量在变量sl中)
{$re=$jg->fetch_assoc();               //从结果(变量jg)中获取一条记录,把该行保存到变量re中。
 echo "</br><b>NO".($i)."</b></br>";          //换行、粗体、显示序号
 echo 'isbn:'.$re['isbn']."</br>";     //显示标题isbn,然后从结果行变量re中取出isbn的内容。
 echo 'title:'.$re['title']."</br>";   //显示标题title,然后从结果行变量re中取出title的内容。
 echo 'author:'.$re['author']."</br>";  //显示标题author,然后从结果行变量re中取出author的内容。
}

4.断开数据连接

如:

$jg->free();     //数据结果集的释放;

$db->close();   //数据库的断开; 

五、作业

 本节课的作业就是:(红色字体为书面作业:抄写及背诵,下节课背写代码试验)

1.明白php中与Mysql建立的一种方法(本来有很多),只需要记住一个就可以了,比如本节课讲的方法。

2.把Myphp.php的网页代码写在作业本上(抄写),背过来,包括注释内容,下次课背写完成代码。

156

D:2012-3-6
T:15:28:00
IP:192.168.8.40



作者:
张顺海

2012.3.8 星期四

教学内容:运行.sql文件(批处理),select(记录显示)命令的使用(一);

教学目的:掌握成批运行相应指令的方法;掌握记录显示命令的智能处理;

教学重点:select命令的使用

教学难点:条件表达式的选择

教学方法:示例法、综合实训

 

一、作业评析、复习及导入:

2012.3.1作业,2012.3.6上午由韩艳伟同学收齐15本上交,上交率100%。

本次作业优秀人员:商丹、张婷婷、刘艳新

作业存在的问题:

有的同学第一题没有做,我们留了两道题的书面作业;

新增记录的命令是:insert into no2....,有的同学将insert写成了inster;

显示表格中的内容:select * from,有的同学写反了:select from *;

删除表格中的记录中的条件应该是一个表达式:where xb='男';;

有的同学把xb='男'中的性别字段名写成了xm='男',这说明查看题意不认真,而且出现了几个同学的雷同;

复习:

上节课讲的是:记录的增加、显示(简单)、删除。

增加:insert into no2 (xm,xb,sfzh) values ('张三','男','130625199908021125');

显示:select * from no2;

删除:delete from no2 where xb='男';

导入:建立一个库(容器后)create database <库名>后,再建立一张新表格(表结构)create table no2后,可能插入数据(表内容)insert into no2 (xm,xb,sfzh) values ('张三','男','130625199908021125'); 后,可以显示其中的记录信息select * from no2; 后,还可以删除其中的某条或者某些记录信息delete from no2 where xb='男';。

问题的提出:因为我们每次上课,电脑已经初始化,需要安装Mysql服务器,其中的数据库books,还有其中的数据表(5张)已经不存在,所以要使用库和表的话,需要重新建立库、表,还需要为每张表重新输入相应的记录,甚是麻烦。好在,我已经把相应的内容输入到了电子教案里,让同学们通过复制粘贴的方式可以快速、准确的建立库、表、记录。但有没有更快速、效率高的呢,答案是有的,那就是--批处理(一下执行一批指令的操作方式)

二、新授

1.批处理执行方式:下载【  mysql.sql】文件

大家分析下面的过程:

启动Mysql控制台到mysql->模式下:

create database books;

use books;

create table customers (customerid int unsigned not null auto_increment primary key, name char(50) not null,address char(100) not null,city char(30) not null);

create table orders (orderid int unsigned not null auto_increment primary key,customerid int unsigned not null,amount float(6,2),date date not null);

create table books (isbn char(13) not null primary key ,author char(50),title char(100),price float(4,2));

create table order_items (orderid int unsigned not null,isbn char(13) not null,quantity tinyint unsigned,primary key (orderid,isbn));

create table book_reviews (isbn char(13) not null primary key ,review text);

insert into customers values

(3,'Julie Smith ','25 Oak Street','Airport West'),(4,'Alan Wong','1/47 Haines Avenue','Box Hill'),

(5,'Michelle Arthur','357 North Road','Yarraville');

 

insert into orders values

(NULL,3,69.98,'2007-04-02'),(NULL,1,49.99,'2007-04-15'),(NULL,2,74.98,'2007-04-19'),

(NULL,3,24.99,'2007-05-01');

 

insert into books values

('0-672-31697-8','Michael Morgan','Java 2 for Professional Developers',34.99),

('0-672-31745-1','Thomas Down','Installing Debian GNU/Linux',24.99),

('0-672-31509-2','Pruitt,et al.','Teach Yourself GIMP in24 Hours',24.99),

('0-672-31769-9','Thomas Schenk','Caldera OpenLinux System Administration Unleashed',49.99);

 

insert into order_items values

(1,'0-672-31697-8',2),

(2,'0-672-31769-9',1),

(3,'0-672-31769-9',1),

(3,'0-672-31509-2',1),

(4,'0-672-31745-1',3);

 

insert into book_reviews values

('0-672-31697-8','The Morgan book is clearly written and goes well beyond most of the basic Java books out there.');

2.大家分析后,可以看出这些指令的先后,已经完成了如下操作:

建立一个新的数据库books;

建立五张表格分别是(customers、orders 、books 、order_items 、book_reviews )

分别给五张表格输入相应的记录(customers中3条记录、orders中4条记录、books中4条记录、order_items 中4条记录、book_reviews中1条记录)

这个命令序列正是我们学习的过程

3.把这些指令按本来的先后顺序写入一个文件里。可以把从第一行(create database books;)开始,到最后一行(

insert into book_reviews values)复制,然后用记事本新建一个文件,文件名为mysql.sql,文件保存在c:\(根目录下待用)

4.程序的运行:

mysql->source c:\mysql.sql;

批处理运行sql指令

5.检查效果:(可以把下边的8条指令写入show.sql)中,批执行,可以看到效果。

show databases;

use books;

show tables;

select * from customers;

select * from orders;

select * from books;

select * from order_items;

select * from book_reviews;

 三、记录的显示命令

1.我们可以使用select命令显示出相应表格中的记录信息。当一张表格中的记录越来越多的时候,可能我们并不想看到所有的信息,只要筛选出我们感兴趣的记录,可能我们只对一些记录的某些项目感兴趣,可能我们并不知道我们想要的内容在不在表格里,或者我们并不知道完整的信息去寻找它,那我们需要使用到select中的强大功能。

2.今天我们讲的课,使用select去实现我们的查找,但并不表示完成这些功能就是select的全部作用,其实只是冰山一角,因为它还能给我们智能的分析、总结出表格中不存在,但正是我们需要的数据信息,这些我们会在以后的章节中去领会它。

3.select的命令功能举例:(我们以customers、orders表格为例)

显示出指定表格的所有记录:select * from customers;

显示出全部信息

显示出指定表格中的某些记录:select * from customers where name='Julie Smith';

显示表格中的全部信息

显示出指定表格中的指定内容:select customerid,name from customers;

显示出表格内容的部分信息

显示出指定表格中的指定条件:select * from orders where amount>=50 and amount<=100;

select * from orders where amount between 50 and 100;

两种显示价格区间的方法

显示出customers中住址中含有字母r的记录: select * from customers where address like "%r%";

显示出含某些特定信息的记录

显示出订单(orders)表格中的订单ID( orderid)为1和3的订单:select * from orders where orderid in (1,3);

显示指定的ID(集合元素)in短语

四、练习:

1.按题目二中的要求,把相应的内容复制粘贴,建立一个.sql的文件(大家思考一下,不建立后缀名为.sql的文件行不行),今天我们没有提供这个文件的下载方式,是因为我想让大家学会建立这个文件的方法。从下节课开始,就会提供下载地址啦!

2.按题目三中的要求,把相应的内容理解后,查找出相应的记录来。

五、总结:

1.批处理运行指令:source <命令文件地址>

2.显示指令:

select * from

select * from where <条件>

条件短语:between、like、in

六、作业(下面红色字体的是书面作业)

1.今天我们讲了批处理sql指令的方法(把相应的sql指令建立一个.sql文件)。

如我们已经在C盘根目录建立了一个yoursql.sql的文件,去运行它的命令是什么?

 2.按如下要求筛选出需要的记录信息(筛选就是按指定的条件找出信息来,select的功能就是筛选功能,也叫查询功能)

筛选出customers表格中customerid号为4的记录信息;(题目完成的意思是其他的记录信息我们不感兴趣)

筛选出orders表格中orderid和customerid两项内容;(题目完成的意思是其他的内容如amount、date我们不感兴趣)

筛选出books表格中的author中含有字母o的记录信息;(题目完成的意思是不含有字母o的记录,我们不感兴趣)

 

 

 

 

 

155

D:2012-2-29
T:7:43:00
IP:192.168.8.40



作者:
张顺海

2012.3.1 星期四

教学内容:表格的建立、记录的插入、记录的显示、记录的删除;

教学目的:掌握数据的输入(增加记录)、输出(显示记录)、删除(删除记录);

情感目标:理解

教学重点:insert、select、delete;

教学难点:数据库、表格、记录、字段、数据、类型之间的关系;

教学地点:4号微机室

 

一、作业评析、复习回顾、导入

1.作业评析:(上节作业完成优秀人员:赵敬、彭彩霞;作业书写认真的优秀人员:黄李晴

  • 有的同学数据库与数据表分不清楚:显示数据库列表应该是show databases;,显示数据表列表应该是show tables;。
  • 数据类型很多,像int、date、char、varchar、text等,不同的数据类型规定了某一类(某一栏)数据的特性。有的同学只写出了三个,没有认真看电子教案。
  • 虽然数据库是database,表格是table,但使用show命令的时候,应该使用复数形式,有的同学忘记了加s。
  • 有的同学只抄了题,没有做完作业,就上交了。
  • 有的同学写了四种类型的数据,但从书上看到了‘timestamp’但没有写全,只写了timetamp,少写了S,没有认真看教案,而且有两个同学出现了雷同。
  • 有的同学显示、新建命令不分:即show databases;(显示数据库列表)写成了create databases;

2.复习回顾:

上节课我们学习了数据库、数据表的建立,掌握了数据库与数据表的关系(口袋与苹果的关系),掌握了建立表时(字段名、字段类型、字段宽度、字段属性)的各种约定。

如:create table no2  (xm char(6),xb char(2),sr date,sfzh char(18) not null primary key)

解释:

命令:create table

表格名:no2

字段个数:4(分别是xm,xb,sr,sfzh)用来存储姓名、性别、出生日期,身份证号的信息。

字段属性:xm--字段名,char--字段类型,(6)--字段宽度,not null --字段约束属性(不能为空),primary key-字段约束属性(主键,不能重复)等

3.导入

建立数据库的过程,就是建立一个窗口的过程,如 create database books;

建立数据表的过程,就是建立一个表格的表头的过程,如 create table no2  (xm char(6),xb char(2),sr date,sfzh char(18) not null primary key);

有了表格结构(表头--栏目个数、栏目名称、栏目宽度、栏目约束属性),就可以增加、修改、删除、查询数据了。

图例:

表格的结构(表头)、记录、字段之间的关系

二、新授

1.增加数据:【P183】

将数据写入表格,专业术语为插入记录。(记录就是一组有关系的数据集合,体现在表格中是一行,如上边的例子中姓名、性别、身份证号就是一组数据,每一行是一个人的完整信息)

命令:insert into <table file>   [(字段1,字段2....)] values (值11,值12....)[,(值21,值22....)]     

解释:将一组数据按指定的顺序写入当前表格里,一次可以写多条记录。

实例:将张三、男、130625199908021125,李四、女、130625199709234322,王五、男、130625199811022321写入表格no2中。

命令为:

insert into no2 (xm,xb,sfzh) values ('张三','男','130625199908021125')  一次写一条记录;

insert into no2 values ('李四','女','130625199709234322'),('王五','男','130625199811022321')  一次写两条记录,因为写入的顺序与表结构的字段顺序一致,且个数相符,所以(xm,xb,sfzh)可以省略。

2.记录的显示:(简单形式,以后学习复杂形式)【P185】

命令:select * from <表格名>

例如:select * from no2   当然确保no2表格所在的数据库已经是当前库(更换当前库的命令是 use )

执行时:会看到以下结果

3.记录的删除:【P198】

命令:delete from <表格名> [where <条件>]

实例:delete from no2 where xm='张三'

结果:将表格no2中的‘xm’为‘张三’的记录删除

检测:select * from no2

结果如下:记录已经减少了一个。

注意:delete from no2; 将会把表格no2中的所有记录行删除,所以会倍加小心,因此要加指定条件。

图形举例:

插入记录、删除记录

三、练习

将以【P184】 页的数据记录写入books数据库中的指定表格里。book_insert.sql,录入时可以复制、粘贴运行,保证录入效果。

use books;

insert into customers values

(3,'Julie Smith ','25 Oak Street','Airport West'),(4,'Alan Wong','1/47 Haines Avenue','Box Hill'),

(5,'Michelle Arthur','357 North Road','Yarraville');

 

insert into orders values

(NULL,3,69.98,'2007-04-02'),(NULL,1,49.99,'2007-04-15'),(NULL,2,74.98,'2007-04-19'),

(NULL,3,24.99,'2007-05-01');

 

insert into books values

('0-672-31697-8','Michael Morgan','Java 2 for Professional Developers',34.99),

('0-672-31745-1','Thomas Down','Installing Debian GNU/Linux',24.99),

('0-672-31509-2','Pruitt,et al.','Teach Yourself GIMP in24 Hours',24.99),

('0-672-31769-9','Thomas Schenk','Caldera OpenLinux System Administration Unleashed',49.99);

 

insert into order_items values

(1,'0-672-31697-8',2),

(2,'0-672-31769-9',1),

(3,'0-672-31769-9',1),

(3,'0-672-31509-2',1),

(4,'0-672-31745-1',3);

 

insert into book_reviews values

('0-672-31697-8','The Morgan book is clearly written and goes well beyond most of the basic Java books out there.');

四、作业

1.掌握增加记录、显示记录、删除记录的命令,它们分别是什么?(书面作业)

2.理解P184页的记录插入命令,P185页的显示命令,P198页的记录删除命令。(课下复习作业)

3.预习P186-187页的记录筛选条件、P191-192页的特定顺序获取数据、P192页的分组与合计数据、P194页的选择要返回的行。(预习作业)

4.写出以下三个命令:(书面作业)

1)将如下记录写入books数据库的no2数据表;

2)将数据库books中的no2数据表的所有记录、所有字段信息显示出来;

3)将books数据库的no2数据表中的‘男’同学的记录删除;

 

 

 

154

D:2012-2-21
T:9:57:00
IP:192.168.8.40



作者:
张顺海

2012.2.23  星期四

教学内容:

数据库、数据表;

数据表中的(表、行、列、属性、值、)【P156】

教学目的:

理解数据库、数据表的含义及层次;

掌握建立数据库、建立数据表的命令;

教学重点:create database、create table命令;

教学难点:建立一个自己的数据库(xxb)、一个数据表(no1)

 

一、作业评析,复习、引入:

(一)作业评析:

现在网络方向的人员15人:全部按时上交作业,作业批改情况

郝倩、田露露 、刘艳新、张春杏、刘亚南、赵敬、彭彩霞、韩艳伟、黄李晴、刘睛睛、龙静、张婷婷、商丹、刘蕊、王娟。

优秀代表:郝倩、赵敬

存在的情况:

1.书写错误:Oracle写成Orade;Db2写成Ob2;

2.字迹书写不认真,有些潦草;

3.有的同学把关系型数据库写成了‘关系形’,有错别字;

4.同学没有写清楚所留作业的日期和时间;
 

(二)复习

1.复习建立Mysql环境(安装、调试、登陆)

2.查看现有数据库的命令show databases【P176】;

3.打开数据库的命令 use mysql【P172】

4.查看当前数据库中的数据表命令 show tables;【P176】

(三)引入

经过我们安装、调试、登陆了MySQL环境后,使用了查看数据库、数据表的命令,看到里边的内容都是自己不明白的数据信息,从这节课开始,我们建立自己的数据库、数据表。

二、数据库、数据表的建立(重点理解数据类型的定义):

(1)数据库:【P166】

命令:create database <数据库名>

例如:create database xxb  建立一个名为xxb的数据库文件。

检测:show databases;  会看到当前用户下的所有的数据库名列表,其中就已经有了xxb。

重点:按书上的建立books数据库,命令为 cretae database books;

(2)数据库表:【P172】

命令:create table <数据库表名>(表格列列表)

例如:create table no1 (xm varchar(6),xb varchar(2),bj varchar(4));

含义:建立一张表格,表格名为no1,这张表格隶属于当前库xxb,其中有三列,分别是xm,xb,bj,在规定列数、列名时,还规定了每一列的宽度,分别是6、2、4,用这三列分别保存姓名,性别,班级

书上的【P173】中的程序清单9-1中bookorama.sql中的建立5张表,分别是:(创建5张表时,应该改换当前库为books)

1.create table customers (customerid int unsigned not null auto_increment primary key, name char(50) not null,address char(100) not null,city char(30) not null);

解释:

建立表命令 create table

表格名:customers  (顾客表)

表格列:4列,customerid、name、address、city,即分别保存顾客ID,顾客姓名、顾客地址、所在城市;

表格列属性:customerid,整型(int),无符号(unsigned),不能为空(not null),自动增长(auto_increment),主键(primary key);name,字符型(char(50)),不能为空(not null);address,字符型(char(100)),不能为空(not null);city,字符型(char(30)),不能为空(not null)。

2.create table orders (orderid int unsigned not null auto_increment primary key,customerid int unsigned not null,amount float(6,2),date date not null);

表格命令:create table

表格名:orders(定单表)

表格列:4列,分别是orderid、customerid、amount、date,用来保存定单ID,顾客ID,定单金额,定单日期。

表格列属性:amount,浮点型(也就是实数型,即可以是小数,6个宽度,2位小数,xxx.xx型的小数,如128.25),date(日期型,日期型数据有固定的宽度,用来保存定单的日期)。

3.create table books (isbn char(13) not null primary key ,author char(50),title char(100),price float(4,2));

表格命令:create table

表格名:books(书目表)

表格列:共4列,分别是isbn、author、title、price,分别保存书的书号、作者、书名、价格。

表格列属性:(大家自己分析),其中主键是isbn,即书号,每本书都有唯一的书号,可以做为主键。【P175】

4.create table order_items (orderid int unsigned not null,isbn char(13) not null,quantity tinyint unsigned,primary key (orderid,isbn));

表格命令:create table

表格名:order_items(定单信息)

表格列:共3列,分别是orderid、isbn、quantity,分别保存定单ID,书号、数量

表格列属性:tinyint,是指的整数0-255之间的(含),注意一下指定两个主键的形式 primary key (orderid,isbn)。

5.create table book_reviews (isbn char(13) not null primary key ,review text);

表格命令:create table

表格名:book_reviews(书目信息)

表格列:共2列,分别是isbn、review,分别保存书号、相关文本;

表格列属性:text,是一种数据类型,可能盛放更多的数据;【P176】

三、建立后的表格查看命令

命令:show tables;【P176】查看当前库中的所有表的清单列表;

含义:显示当前数据库中的所有表的清单(应该和use配合使用)

如:查看当前数据库books中的所有表格show tables;

命令:describe <表名> 【P176】,查看当前表格的结构(所有列的表格列名、列属性等)。

如:查看表格列结构的命令describe

 

四、练习:

按要求建立自己的表no1,隶属于库xxb,按题目二中的第2条中的no1建立,并使用相应命令检查,库xxb,表no1的存在是不是正确的;

五、作业(红色的为书面作业)

1.理解数据库、数据表的层次关系,掌握改换当前库的命令,显示库列表、表列表的命令?

2.掌握建立表的命令格式,举出4种不同的数据类型定义(如char型)?

3.这节课,建立了几个库,几张表,分别列出它们的名子?

2012.2.22

 

 

首页  前一页  后一页  末页
现在是第31页一共有99页