php基础04(MySQL)

1.SQL

Structured Query Language :结构化查询语言,SQL是操作和管理数据库的语言。

常用的4条sql语句:增删改查。 核心的就这4条

一、增加数据:
语法:insert into tb_name(title, author, content, addate) values('从8月开始,我们接受了', 'admin', '具体内容....', 14352645646);
注意事项:
(1)字段列表与值得内容列表,个数和顺序必须一致
(2)id字段不需要管他,他是自动增长型

二、删除记录:
语法:delete from tb_name [where 条件];
eg: delete from news where id=3;
delete from news where id > 10 and id < 20; // 删除20>id>10的记录
delete from news where id > 10 and author = 'admin';

删除所有记录:
TRUNCATE tb_name; // 删除所有数据,并且重新将id值归0.速度十分快.
与delete from tb_name要快得多

三、修改
语法:UPDATE tb_name SET 字段1 = 新值1, 字段2 = 新值2[WHERE 条件];
*注意:更新数据的时候,一定要指定where条件,否则,整个表都会更新为一样。
举例:
UPDATE news SET author = 'zhangsan', hits = 10000 where id = 10;

四、查询数据
语法: SELECT * 字段列表 FROM tb_name [WHERE 条件] [ORDER BY 字段 ASC|DESC] [LIMIT 限定输出结果]
limit:限制输出的记录数
eg:select * from tb_news where id < 2000 and id > 1000 order by id asc, addate desc limit 50,500;

用于分页很多:
LIMIT startrows,rows; // 从startrows开始,不包括startrows,输出rows条数据
LIMIT 0,10 // 从第0行起,输出10条记录,不包括第0行
LIMIT 1,10 // 从第1行起,输出10条记录,不包括第1行
LIMIT 15,10 // 从第15行起,输出10条记录,不包括第15行

where id between 90 and 100

like 预算福:实现字段模糊查询.比如:查询所有标题中海油北京的所有记录.
where title like '%北京%'; // 标题中含有北京的记录
where author LIKE 'a%'; // 查询以'a'字符开头的作者

五、php操作MySQL

MySQL客户端(命令行)四步步骤:
第一步:链接到MySQL数据库服务器
Mysql -hlocalhost(主机名) -uroot(用户名) -proot(用户密码)
eg: mysql -h127.0.0.1 -uroot -proot

第二步:选择要操作的数据库

use db_name;

第三步:设置当前环境的显示字符集

set names gbk; // dos 命令下只能用gbk

第四步:执行SQL语句

增加:insert into tb_name (字段1, 字段2, 字段3) values (属性值1, 属性值2, 属性值3);
删除:delete from tb_name [where 条件]
删除整个表中的记录:truncate tb_name;
修改:update tb_name set 字段1=值 , 字段2 = 值[where 条件];
查询:select 字段列表 * from tb_name[where 条件][order by 字段 asc/desc][limit 限定记录];

php中操作mysql数据库:
第一步:链接MySQL数据库服务器 mysql_connect()
语法结构: $link = mysql_connect($db_host, $db_user, $db_pwd);
参数说明:
$db_host: 指定要链接的MySQL服务器的主机名或者IP地址,如:localhost:3306
$db_user: 指定用户名,默认root
$db_pwd:指定用户密码,默认root
返回值:如果链接MySQL成功,将返回一个资源标识符,如果链接失败,则返回false.

eg: $link = mysql_connect("localhost", "root", "root");
在页面上,如果没有任何返回值的话,就是链接成功的,否则会报错的.

注意:资源类型的数据,改成布尔型,一律为真(true)
屏蔽php中的错误信息显示:用@符号
$link = @mysql_connect("localhost", "root", "root");

mysql_error() 显示上一次MySQL的出错文本信息

第二步:选择数据库
语法:bool mysql_select_db(string $database_name [, resource $ link_identifier])
返回值:成功选择数据库返回true ,选择数据库失败返回false
参数说明:resource $link_identifier 是可选项,指定当前的活动链接标识符,当前活动链接只有一个.如果省略,则使用上一次联通数据库的标识符.一般$link只有一个.

eg:
$link = @mysql_connect("localhost", "root", "root");
mysql_select_db(“db_name”, $link);

注意: exit()或die(); // 中断或退出程序
语法:exit("先输出exit信息,再退出"); // 退出

注意:if(@mysql_select_db($db_name, $link))
是mysql_select_db() 而不是 mysqli_select_db()

第三步:设置返回数据的字符集
Mysql_query("set names utf8");

注意:mysql是 utf8 其余基本是utf-8

第四步:数据库操作 SQL语句操作

mysql_fetch_assoc() 函数从结果集中取得一行作为关联数组。
返回根据从结果集取得的行生成的关联数组,如果没有更多行,则返回 false。

服务器返回数据到客户端,编码有可能会改变。因为二进制返回.所以需要: mysql_query("set names utf8");

eg:
while($row=mysql_fetch_assoc($result)){
dump($row); // 打印
}

注意:如果执行:SELECT, SHOW, DESCRIBE语句成功返回资源标识符resource,如果失败就是false
其他SQL语句(delete, update, insert)

数组分为:枚举数组 和 关联数组

while($row = mysql_fetch_row($result_2)){   
 // 数组分为美剧数组和关联数组   
     $arr[] = $row;
  // 将每一个$row数组,存到$arr中去,生辰过一个二维数组}
dump($arr);

php define:

define("DB_NAME", "db_liao");

echo("DB_NAME");

六、导入.sql到数据库

参考:http://jingyan.baidu.com/article/cbf0e500d15c762eab289362.html

*注意:source d:/test.sql; 这样步奏的时候.我们一般是将.sql文件拖入到命令行,其样子是:d:\test.sql。我们需要收到将''改为'/'才行.
*注意:使用dreamweaver开发,效率会变得高.不过,它没得代码提示

你可能感兴趣的:(php基础04(MySQL))