mysql基础
来源:互联网 发布:加qq群软件 编辑:程序博客网 时间:2024/05/17 08:54
MySQL客户端下,操作数据库的步骤
第一步:连接到MySQL数据库服务器
mysql.exe–hlocalhost –uroot -proot
第二步:选择要操作的数据库
usedb_name;
第三步:设置当前环境的显示字符集
Setnames gbk; //在MySQL客户端只能使用gbk,别的编码都不可以
第四步:执行SQL语句,对数据表进行查询
增加:INSERT INTO table_name(字段1,字段2,字段3) VALUES(值1,值2,值3)
删除:DELETE FROM table_name [WHERE条件]
删除整个表中的记录:TRUNCATE table_name
修改:UPDATE table_name SET 字段1=值1,字段2=值2 [WHERE条件]
查询:SELECT 字段列表|* FROM table_name [WHERE条件][ORDER BY 字段][LIMIT限定记录]
PHP操作MySQL的步骤
第一步:连接MySQL数据库服务器mysql_connect( )
语法结构:resource $link =mysql_connect($db_host,$db_user,$db_pwd)
参数说明:
$db_host:指定要连接的MySQL服务器的主机名或IP地址,如:localhost:3306
$db_user:指定用户名,默认root
$db_pwd:指定用户密码,默认root
返回值:如果连接MySQL成功,将返回一个资源标识符(活动链接)$link;如果连接失败,返回false。
举例:$link =mysql_connect(“localhost”,”root”,”root”);
注意:资源类型的数据,转成布尔型,一律为true。
屏蔽PHP的错误信息显示:使用@符号。
$link = @mysql_connect(“localhost”,”root”,”root”); //屏蔽了mysql_connect()的系统错误信息
mysql_error()
语法:stringmysql_error();
功能:显示上一次MySQL的出错文本信息
exit()或die()
功能:输出一个消息并且退出当前脚本
语法:void exit ([ string $string
] )
说明:先输出一个信息,然后再中止脚本向下运行。
第二步:选择当前要操作的数据库mysql_select_db( )
语法结构:bool mysql_select_db( string $database_name
[, resource$ link_identifier
] )
返回值:成功选择数据库返回true,选择数据库失败返回false
参数说明:
$database_name:指定当前要操作数据库名称;
[$link_identifier]:是可选项,指定当前的活动链接标识符。当前活动链接只有一个。
如果省略,则使用上一次连通数据库的标识符。
举例:mysql_select_db(“saixinjituan”,$link)
第三步:设置返回数据的字符集
mysql_query(“set names utf8”);
第四步:SQL语句操作
1、执行SQL语句
功能:发送一条 MySQL 查询
语法:resource mysql_query( string $query
[, resource$link_identifier
= NULL ] )
返回值:
如果执行SELECT、SHOW、DESCRIBE语句成功返回资源标识符(resoure),如果失败返回false;
其它SQL语句(DELETE、UPDATE、Insert等)执行成功将返回true,执行失败将返回false
举例:
$sql = “CREATEDATABASE IF NOT EXISTS db_name”;
$sql = “SELECT * FROM 007_newsWHERE id<100”;
$result = mysql_query($sql);
要使用操作数据库的命令,必须要有权限。
2、从结果集中取出一行作为枚举数组返回
语法:array mysql_fetch_row($result,$link)
功能:从结果集中取出一行,作为枚举数组返回,并将光标移到下一行的开始处,没有更多数据返回,则返回false。
举例:$arr = mysql_fetch_row($result)
提示:通过while循环,可以取出所有的数据,主要代码如下:
//数据库查询
$sql = "select id,title,author,source,hits,addate from007_news where id<50";
$result = mysql_query($sql);
//从结果集中,取出一行数据
while($row=mysql_fetch_row($result))
{
$arr[] =$row; //将循环的每个$row数组,存到$arr中去,生成一个二维数组
}
dump($arr);
3、从结果集中取得一行作为混合数组返回
语法:$arrRow =mysql_fetch_array($result[,$type])
参数:
$result:是指执行完SQL语句后返回的结果集;
$type:指数组的类型,取值:MYSQL_BOTH、MYSQL_NUM、MYSQL_ASSOC
MYSQL_NUM:是一个常数,必须大写,返回的数据是枚举数组;
MYSQL_ASSOC:返回的是关联数组,数组下标是字符的;
MYSQL_BOTH:同时返回混合数组
提示:默认返回的是混合数组
举例:$arrRow =mysql_fetch_array($result,MYSQL_ASSOC)
4、从结果集中取得一行作为关联数组返回
语法:$arrRow =mysql_fetch_assoc($result)
含义:返回的直接就是关联数据
5、取得返回的结果集中记录总数
语法:int $records = mysql_num_rows($result)
提示:必须在结果集出现后,才能作统计
知识点补充:
1、包含文件include( )和require( )
语法: include(“include/config.php”)
include “include/config.php”
require(“include/config.php”)
require“include/config.php”;
说明:将外部文件的代码包含到当前文件中来运行。
Include和require的主要区别是:它们除在处理错误方面不一致外,其它方面一模一样。Include当包含文件中含有错误时,程序会继续向下运行;而require( )当包含文件中存在错误时,会立即输出一个致命错误信息,并中止程序继续运行。
2、通过全局变量数组来获取表单提交值
$_GET[]:获取method=get 的表单中元素的提交值;比如:$username = $_GET[“username”];
$_POST[]:获取method=post 的表单中元素的提交值;比如:$username= $_POST[“username”];
3、trim()
功能:去除字符串首尾处的空白字符(或者其他字符)
语法:string trim ( string $str
[, string $charlist
= " \t\n\r\0\x0B" ] )
4、header()
功能:主要用于告诉客户端以什么编码显示网页,网页跳转。
语法:void header(设置信息)
举例:设置客户端用什么字符集显示 header(“content-type:text/html;charset=utf-8”)
网页跳转:header(“location:http://www.sina.com.cn”)
注意:header()函数前不能有任何内容输出,包括空白,放在网页的第一行执行。
5、md5()
功能:对字符串进行加密,以32位字符返回。
语法:string md5(“abc”)
提示:因为md5的加密算法现在已经不再复杂。
数据库操作
一、创建数据库
语法:Create Database [IF NOTEXISTS] db_name [CHARSET]
参数:
CreateDatabase是创建数据库的命令;
[IFNOT EXISTS]是可选项,如果不存在,再进行创建;
db_name:是要创建的数据库的名称,命名方式跟变量一样,但不加$符号;
[CHARSET]设置数据库的字符集,如果不设置会用MySQL的默认字符集latin1;
举例:
CREATEDATABASE IF NOT EXISTS zhangsan CHARSETutf8;
CREATEDATABASE zhangsan; //使用的是默认字符集latin1
二、显示所有数据库
语法:show databases
三、删除数据库
语法:DROP DATABASE [IF EXISTS] db_name
说明:
Dropdatabase是删除数据库的命令;
[IFEXISTS]是可选项,如果存在,再进行删除,不会出现出错的信息;
举例:
DROPDATABASE IF EXISTS zhang; //删除数据库zhang
四、选择数据库
语法:USE db_name
举例:usesaixinjituan; //选择saixinjituan的数据库
五、更改数据库默认字符集
1、更改MySQL的配置文件:C:\Program Files (x86)\phpStudy\MySQL\my.ini
客户端(Client Section):default-character-set=gbk
服务器端(Server Section):default-character-set=latin1
2、在MySQL客户端使用命令修改
ALTER DATABASE dbname DEFAULT CHARACTER SET gbk
数据表操作
一个网站可以有多张表:新闻表、管理员表、产品表、留言表.
一、显示当前数据库中的所有表
语法:show tables FROM db_name
说明:查询某一个数据库中的所有的表
二、创建数据表
语法结构:
CREATE TABLEtable_name(
列名1 列的类型类型 列的属性,
列名2 列的数据类型 列的属性,
列名3 列的数据类型 列的属性
)
参数说明:
列名1,指定每个字段的名称,命名跟变量一样;
列的数据类型:指定每个字段存储什么样的数据;
列的属性:对列更详细的设置
举例:
CREATE TABLE 007_news(
id int notnull auto_increment primary key,
title varchar(50) not null,
content text null,
addate int(12) nonull
);
列的常用属性
(1)not null | null 指定列的值可以为空,还是不空,默认为null,一般id字段不能为空;
(2)DEFAULT default_value ,设置某个列的默认值,默认值可以是字符串或数字。
举例:sex tinyint not null DEFAULT 1;
(3)auto_increment:指定某个列为自动增长型,一般是指为id字段,可以保证id的值永不重复;
(4)primary key:是主键索引。主键索引必须给具有auto_increment属性的字段来添加。主键索引只能是一个,其它的都是普通索引。
索引:就相当于一本书的目录索引,通过目录查询要看的内容,比直接翻书翻到要快得多。
id字段是每个数据表都必须有的字段,id字段必须具有这三个属性:not null、auto_increment、primarykey。
三、修改数据表
语法:ALTER TABLE table_name ……
提示:使用phpMyAdmin来修改数据表
四、删除数据表
语法:DROP TABLE table_nameFROM db_name
五、显示表结构
语法:Describe table_name
功能:显示某一个表的结构
MySQL数据类型
整型、浮点型、字符型、文本型、日期型
一、整型
tinyint:最小整数,1个字节表示,-128~127(带符号) 0-255、如:性别、邮件是否已读
smallint:小型整数,2个字节表示,0-65535,如:工资
mediumint:中型整数,3个字节表示,0-1677万
int:一般整数,4个字节表示,0-42亿,如:文章的点击率
bigint:大型整数,8个字节表示,2^64-1
二、浮点型
float(m,d):可以精确到小数点后7位,m代表总长度,d代表小数位数;
float(6,2):表示总长度为6位(不含小数点),小数位数是2位。如:1200.65
double:可以精确到小数点后15位。
三、字符型
char(M):固定宽度,取值范围0-255个字符,如:新闻标题、贴子标题等
char[10],假设我存了5个字符,其它的空间会用空格填充。
参数M指定字段的宽度;
varchar(M):自动伸缩型,取值范围0-65535个字符,如:新闻标题、贴子标题等
varchar(10),假设我存了5个字节,它的长度应该是6,这里多出的1是字符长度。
四、文本型
TINYTEXT,1个字节,0-255个字符
TEXT,2个字节,0-65535个字符
MEDIUMTEXT,3个字节,0-1677万个字符
LONGTEXT,4个字节,0-42亿个字符
五、日期时间型
Date:格式YYYY-MM-DD存储,如:2014-08-01
Time:格式HH:mm:ss存储,如:12:09:30
Datetime:格式YYYY-MM-DD HH:mm:ss存储
Timestamp:格式YYYY-MM-DD HH:mm:ss
$addate = time();
Date(“Y-m-d H:i;s”);
在MySQL的客户端如何显示简体中文?
因为MySQL的客户端默认字符集,应该是GBK,因此显示时,要把当前的显示字符集改为GBK;
格式:set names gbk
只需要设置数组库的字符集,数据表将继承数据库中的字符集。
show命令
1、显示MySQL主机的所有数据库:SHOWDATABASES;
2、显示某个数据库中的所有表格:SHOW TABLES [FROM db_name];
3、显示创建数据库时的语句:SHOW create database db_name
4、显示某个数据库中表的结构:SHOW CREATE TABLE table_name [FROM db_name]
SQL简介
SQL,Structured Query Language结构化查询语言。SQL是操作和管理数据库的语言。
常用的SQL语句:增加、删除、修改、查询。
一、增加数据 INSERT INTO
语法:INSERT INTOtable_name(title,author,content,addate) VALUES(‘从8月开始每个人都可以申请城市户口’,’admin’,’内容……’,11010101010)
注意事项:
(1) 字段列表与值的内容列表,个数和顺序必须一致;
(2) id字段不需要管它,它是自动增长型。
二、删除记录DELETE FROM
语法:DELETEFROM table_name [WHERE条件]
举例:
DELETEFROM news WHERE id=3; //删除id=3的记录
DELETEFROM news WHERE id<4; //删除id<4的记录
DELETEFROM news WHERE id>10 and id<20; //删除20>id>10的记录
DELETEFROM news WHERE id>10 or author=’admin’ ; //删除id>10的所有记录,或者author=’admin’记录
TRUNCATE table_name
功能:删除所有数据,并重新将id值归0.
说明:与deletefrom删除全部数据要快的多。
举例:TRUNCATEnews
三、修改记录 UPDATE SET
语法:UPDATEtable_name SET 字段1=新值1,字段2=新值2 [WHERE条件]
注意:更新数据时,一定要指定WHERE条件,否则,整个表都会更新为一样
举例:
UPDATEnews SET author=’zhangsan’,hits=100000 WHERE id=120 //id=120的记录修改
UPDATEnews SET title=’新闻的新标题’ WHEREid=130;
……
四、查询数据SELECT
语法:SELECT *|字段列表 FROM table_name [WHERE条件][ORDER BY字段 ASC|DESC] [LIMIT限定输出的结果]
参数:
*:将列出所有字段的数据,一般是当字段少的时候才用;
字段列表:指定要查询的字段,多个字段间用逗号隔开,如:SELECT id,title,addate FROM 007_news
[WHERE条件]指定查询的条件;
[ORDERBY]对哪些字段进行排序,排序分升序(ASC)和降序(DESC)
[LIMIT]限制输出的记录数
WHERE条件子句
Like运算符:实现字段模糊查询,比如:查询所有标题中含有北京的所有记录。
%:相当于windows系统中的搜索中的匹配符号“*”
WHEREtitle LIKE ‘%北京%’; //标题中含有北京的记录
WHEREauthor LIKE ‘a%’; //查询以“a”字符开头的作者
……
Order By排序子句
对一个字段或多个字段进行排序,排序的关键字有两个:升序(ASC)默认、降序(DESC)
SELECT * FROM news ORDER BY id DESC //对id字段进行降序排列
SELECT * FROM news ORDER BY author ASC,addate DESC //作者升序排列,时间倒序排列
Limit子句
限定要输出的记录数。
语法:LIMIT startrow,rows
参数:startrow表示开始行号,rows表示要显示多少条记录
提示:LIMIT语句主要应用于 ,网页的数据分页。
举例:LIMIT 0,10 //从第0行起,输出10条记录,不包括第0行。
LIMIT 1,10 //从第1行起,输出10条记录,不包括第1行。
LIMIT 15,10 //从第15行起,输出10条记录,不包括第15行。
- MySQL基础
- MySQL基础
- MySql基础
- MySQL基础
- mysql基础
- MYSQL基础
- MySQL基础
- mysql基础
- mysql基础
- MySQL 基础
- mysql基础
- mysql基础
- mysql 基础
- MySQL基础
- MySql 基础
- mysql基础
- mysql基础
- mysql基础
- poj 2828 Buy Tickets
- android一种统计工具Flurry的使用说明
- https原理
- 算法与数据结构面试题
- Android Animations动画使用详解
- mysql基础
- 上海巨鳄是如何突围商业市场同质化?
- vim配置及插件安装管理(超级详细)
- hdu 4932 Miaomiao's Geometry
- 快速反转速个数组方法
- html年月日下拉联动菜单 年月日三下拉框联动
- 几种任务调度的 Java 实现方法与比较
- datascience之机器学习week1
- RCP应用篇之Eclipse表单