创建表
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);
?>