MySQL PHP一

创建表

create table teacher(
id tinyint unsigned not null,
name char(16) not null,
tele number(8),
sex enum("F","M") default "M"
)

创建列类型的语法是:

col_name col_type[col_attributes][general_attributes]
*col_name 列的名字
*col_type 列类型,控制存储在列中的数据类型
*col_attributes 专用属性,只能应用于制定列
*general_attributes 通用属性,可以应用在出少数列的任意列,例如上面
提到的null,not null,和default

MYSQL的数字列类型有两个:

*整型MYSQL提供了五中整型TINYINT/SMALLINT/MEDIUMINT/INT/BIGINT. 整数列可以用UNDIGNED禁止负数值

*浮点数MYSQL提供了三种浮点数,FLOAT/DOUBLE/DECIMAL

整数类型:smallint

取值范围:有符号-32768到32767(-2的15次方到2的15次方-1) 无符号 0–65535(0到2的16次方-1)

存储要求:2个字节

其他的如INT是4个字节就是2的32次方

tinyint是1个字节

mediumint是3个字节

bigint是8个字节

浮点类型:

float 4个字节

double 8个字节

decimal M+2字节(3.23或更高版本) M字节(低于3.23版本)

日期和时间类型: DATE

PHP脚本控制

MySQL PHP语法 mysql_connect($connect); mysql_query($connect,”SQL语句”); mysql_fetch_array(); mysql_connect(),mysql_close(); 实例展示PHP调用MySQL函数的语法

<?php
$retval=mysql_function(value,[value,...]);
if(!$retval){
die("错误信息");
}
?>

cmd命令行连接MySQL数据库指令

mysql -u root -p
创建数据库命令行
mysqladmin -u root -p create W3CSCHOOL
PHP脚本连接MySQL
connection mysql_connect(server,user,passward,new_link,client_flag);
PHP函数mysql_close()函数来断开与MySQL数据库的连接
bool mysql_close(resource $link_identifier);

本函数关闭指定的连接标识所关联到的MySQL服务器的非持久连接,如果没有 指定link_indetifier,则关闭上一个打开的连接

通常不需要使用,mysql_close(),因为已打开的非持久连接会在 脚本执行完后自动关闭

mysql_close()不会关闭由mysql_pconnect()建立的持久连接

<?php
$dbhost='localhost:3306';//mysql服务器地址
$dbuser='guest';//mysql用户名
$dbpass='123456';//mysql 密码
$conn=mysql+connect($dbhost,$dbuser,$dbpass);
if(!$conn){
die('不能连接:'.mysql_error());
echo'connected successfuly';
mysql_close($conn);
}
?>
承接上面关于建立数据库
<?php
$sql = 'CREATE DATABASE W3CSCHOOL';
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('创建数据库失败: ' . mysql_error());
}
echo "数据库 W3CSCHOOL 创建成功\n";
?>
删除数据库
<?php
$sql='drop database W3CSCHOOL';
$retval=mysql_query($sql,$conn);
if(!$retval){
die('删除数据库失败'.mysql_error());
}
echo'删除成功';
mysql_close($conn);
?>

选择数据库 和连接数据库类似

mysql 数据类型

mysql中费你故意整数字段的类型对于数据库优化是非常重要的

mysql支持多种类型,大致可以分为三大类:数值,日期/时间和字符串

MySQL创建数据表的通用语法:

use lq
create table table_name (column_name,column_type);
 tutorial_id INT NOT NULL AUTO_INCREMENT,
 tutorial_title VARCHAR(100) NOT NULL,
 tutorial_author VARCHAR(40) NOT NULL,
 submission_date DATE,
 PRIMARY KEY ( w3cschool_id )
);

用PHP脚本创建数据表 先连接

<?php
$sql = "CREATE TABLE test( ".
       "tutorial_id INT NOT NULL AUTO_INCREMENT, ".
       "tutorial_title VARCHAR(100) NOT NULL, ".
       "tutorial_author VARCHAR(40) NOT NULL, ".
       "submission_date DATE, ".
       "PRIMARY KEY ( tutorial_id )); ";
mysql_select_db( 'TUTORIALS' );
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('数据表创建失败: ' . mysql_error());
}
echo "数据表创建成功\n";
mysql_close($conn);
?>

删除数据表的语法:drop table test;

使用PHP脚本删除数据表

<?php
$sql = "DROP TABLE w3cschool_tbl";
mysql_select_db( 'W3CSCHOOL' );
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('数据表删除失败: ' . mysql_error());
}
echo "数据表删除成功\n";
mysql_close($conn);
?>

插入数据库命令语句:

insert into test (id,title,author,submission) values (“1”,”a”,”c”,NOW());

php 显示表的所有数据

<?php
//连接数据库  代码省略
$sql='select id,title,author,submission from test';
mysql_select_db('lq');//选择数据库
$retval=mysql_query($sql,$conn);
if(!$retval){
die('获取不到数据'.mysql_error());
}
while($row=mysql_fetch_array($retval,MYSQL_ASSOC))
{//读取的每行记录赋值给变量$row,然后再打印出每个值
//此处也可以直接使用$row=mysql_fetch_assoc($retval)
//也可以使用MYSQL_NUM参数来显示数据表的记录
//$row = mysql_fetch_array($retval, MYSQL_NUM)
echo "id:{$row['id']} <br>".
"titlle:{$row['title']} <br>".
"author':{$row['author']} <br>".
"submission:{$row['submission']} <br>".
 "--------------------------------<br>";
}
mysql_free_result($retval);//释放内存
echo "Fetched data successfully\n";
mysql_close($conn);
?>

*PHP mysql_fetch_array()函数第二个参数为MYSQL_ASSOC, 设置该参数查询结果返回关联数组,你可以使用字段名称来作为数组的索引

*PHP提供了另外一个函数mysql_fetch_assoc(), 该函数从结果集中取得一行作为关联数组。 返回根据从结果集取得的行生成的关联数组,如果没有更多行,则返回 false 内存释放

执行完select语句后,释放游标内存是一个很好的习惯。可以通过 php函数mysql_free_result()来实现

MySQL where子句

sql select 语句使用where子句从数据表读取数据的通用语法:

SELECT field1, field2,…fieldN FROM table_name1, table_name2… [WHERE condition1 [AND [OR]] condition2….

select id,title,author,submission form test where id like ‘_%3’;

使用PHP脚本读取数据

<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
  die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT w3cschool_id, w3cschool_title,
               w3cschool_author, submission_date
        FROM w3cschool_tbl
        WHERE w3cschool_author="Sanjay"';

mysql_select_db('W3CSCHOOL');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
    echo "Tutorial ID :{$row['w3cschool_id']}  <br> ".
         "Title: {$row['w3cschool_title']} <br> ".
         "Author: {$row['w3cschool_author']} <br> ".
         "Submission Date : {$row['submission_date']} <br> ".
         "--------------------------------<br>";
} 
echo "Fetched data successfully\n";
mysql_close($conn);
?>

update子句

修改或更新mysql中的数据,可以使用sql update命令操作

update命令修改mysql数据表数据的通用sql语法

UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause]

update test set title=’java’ where id=3;

PHP脚本

<?php
$sql = 'UPDATE w3cschool_tbl
        SET w3cschool_title="Learning JAVA"
        WHERE w3cschool_id=3';

mysql_select_db('W3CSCHOOL');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully\n";
mysql_close($conn);
?>

delete删除语句

SQL DELETE语句从数据表中删除数据的通用语法:

DELETE FROM table_name [WHERE Clause]

delete from tes where id=2;

PHP实例代码:

<?php
$sql = 'DELETE FROM w3cschool_tbl
        WHERE w3cschool_id=3';

mysql_select_db('W3CSCHOOL');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not delete data: ' . mysql_error());
}
echo "Deleted data successfully\n";
mysql_close($conn);
?>

SQL LIKE子句

LIKE 的从数据库表中读取数据的通用语法:

SELECT field1, field2,...fieldN table_name1, table_name2...
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'

select * from test where author like '%jay';

PHP脚本使用LIKE子句

<?php
$sql = 'SELECT w3cschool_id, w3cschool_title,
               w3cschool_author, submission_date
        FROM w3cschool_tbl
        WHERE w3cschool_author LIKE "%jay%"';

mysql_select_db('W3CSCHOOL');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
    echo "Tutorial ID :{$row['w3cschool_id']}  <br> ".
         "Title: {$row['w3cschool_title']} <br> ".
         "Author: {$row['w3cschool_author']} <br> ".
         "Submission Date : {$row['submission_date']} <br> ".
         "--------------------------------<br>";
} 
echo "Fetched data successfully\n";
mysql_close($conn);
?>