MySQL的几种表外连接及PHP操作MySQL的函数

内连接

按照条件,将左表的每天记录匹配右表,如果条件符合,字段内容将会被保存,如果不符合,则不会被保存;

语法:

select  *|字段列表 from 左表 inner join 右表 on 左表.字段=右表.字段...;

Inner 可以省略掉;

简约版语法

select  *|字段列表 from 左表 join 右表 on 左表.字段=右表.字段....;

外连接

左外连接

语法:

select  *|字段列表 from 左表 left  join 右表 on 左表.字段=右表.字段...;

跟内连接基本一样,唯一一点区别:外连接,没匹配成功的话,左表的字段内容会保存,而右表则是以null保存。

右外连接

语法:

select  *|字段列表 from 左表 right  join 右表 on 左.字段=右表.字段...;

跟内连接基本一样,唯一一点区别:外连接,没匹配成功的话,右表的字段内容会保存,而左表则是以null保存。

自然连接

规则:

只要两张表中具有相同的字段名,系统就认为是一个连接条件,就会主动的去匹配这两个相同的字段名的值是否相同,如果两个表的相同的字段名的值相同,就认为匹配成功;如果两张表中有多个字段名相同,则所有相同的字段名的值都要相同才算是匹配成功!

自然内连接

语法:

左表 natural inner join右表

跟内连接一样,没匹配成功的字段会直接被删除;

自然外连接

语法:

左表 natural  left|right  join 右表

跟外连接一样,只是匹配条件是系统定而已

PHP操作MySQL

mysql_connect 函数:连接数据库

语法:

Mysql_connect(‘本机名’,’用户名’,’密码’);

断开连接需要使用mysql_close函数!

mysql_query函数:发送操作指令

mysql_query(“操作指令”)

mysql_query 函数如果操作失败的话会返回一个布尔值的(frue),如果成功的话,可能会返回布尔值的(true)也可能返回一个资源结果集

那么,如何提取资源结果集呢?

mysql_fetch_array()函数:提取资源结果集

资源结果集返回的是一个关联及索引并存的一个数组,一次提取,数组指针会下移,及获得下一行数值

MYSQL_BOTH:同时返回关联和索引数组,也是默认值!

MYSQL_fetch_ASSOC:只返回关联数组!

MYSQL_fetch_row:只返回索引数组

当资源结果集使用完了之后,应该主动的释放它:

使用另一个系统函数mysql_free_result(结果集资源);

错误调试函数

因为PHP连接MySQL中不会报错,所以得需要用到错误调试函数来报错

mysql_errno:错误编码

Mysql_error:错误信息

MySQL数据备份

文本备份:

复制粘贴数据表,但每次所以表都要复制,浪费空间

数据备份:

语法:

select *|字段列表 into outfile 文件地址 from 表名;

注意:

文件地址中目录名不能省略,不能备份到一个已经存储了数据的文件中,文件必须由MySQL系统自己新建,也就是说,你只需要指定一个目录,然后设置文件名,MySQL系统就会自己帮你新建好!

Sql备份

语法:

mysqldump  -hlocalhost P3306  -uroot p 数据库名[数据表1 数据表2……] > 存储路径

还原语法

语法:

方法1

mysql  -hPup 数据库名字 < 备份路径

方法2

source 备份路径;

时间: 2024-12-19 07:35:50

MySQL的几种表外连接及PHP操作MySQL的函数的相关文章

总结: MySQL(基础,字段约束,索引,外键,存储过程,事务)操作语法

1. 显示数据库列表 show databases; # 查看当前所有数据库 show databases \G   #以行的方式显示 2. 在命令行中,执行sql语句 mysql -e 'show databases' -uroot -p123456 mysqlshow -uroot -p123456 # 不常用,记住上面那个就行了 3.创建数据库语法 create database 数据库名; 例如: create database `HA-test`; 4. 切换数据库 use HA-te

MySQL学习——SQL查询语句(连接查询&amp;子查询)(三)

一:连接查询: 连接查询是将俩个或者俩个以上的表按照某个条件连接起来,从中选择需要的数据,连接查询同时查询俩个或者俩个以上的表时使用,当不同的表中存在表示相同意义的字段时,可以通过该字段来连接这几个表,例如,学生表中有course_id字段来表示所学课程的课程号,课程表中有num字段来表示课程号,那么可以通过学生表中的course_id字段与课程表中的num字段来进行连接查询,连接查询包括内连接查询和外连接查询. 1.1 内连接查询 内连接查询是一种常用的连接查询,内连接查询可以查询俩个或者以上

mysql查询、子查询、连接查询

mysql查询.子查询.连接查询 一.mysql查询的五种子句 where子句(条件查询):按照“条件表达式”指定的条件进行查询. group by子句(分组):按照“属性名”指定的字段进行分组.group by子句通常和count().sum()等聚合函数一起使用. having子句(筛选):有group by才能having子句,只有满足“条件表达式”中指定的条件的才能够输出. order by子句(排序):按照“属性名”指定的字段进行排序.排序方式由“asc”和“desc”两个参数指出,默

SQL中的内连接外连接和交叉连接是什么意思?

内连接又分为等值连接.自然连接和不等连接三种. 外连接分为左外连接(LEFT OUTER JOIN或LEFT JOIN).右外连接(RIGHT OUTER JOIN或RIGHT JOIN)和全外连接(FULL OUTER JOIN或FULL JOIN)三种.与内连接不同的是,外连接不只列出与连接条件相匹配的行,而是列出左表(左外连接时).右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的数据行. 交叉连接(CROSS JOIN)没有WHERE 子句,它返回连接表中所有数据行的笛卡尔积,

标量子查询优化外连接

同事发来2个语句,说语句1跑得慢,语句2很快就出结果.一执行,果然很慢.仔细发现,2个语句不等价. 语句1: select l.*,o.object_name from v$locked_object l left join all_objects o on l.object_id=o.object_id; 语句2: select l.*,o.object_name from v$locked_object l,all_objects o where l.object_id=o.object_i

MySQL在创建数据表的时候创建索引

转载:http://www.baike369.com/content/?id=5478 MySQL在创建数据表的时候创建索引 在MySQL中创建表的时候,可以直接创建索引.基本的语法格式如下: CREATE TABLE 表名(字段名 数据类型 [完整性约束条件], [UNIQUE | FULLTEXT | SPATIAL] INDEX | KEY [索引名](字段名1 [(长度)] [ASC | DESC]) ); UNIQUE:可选.表示索引为唯一性索引. FULLTEXT:可选.表示索引为全

mysql的四种启动方式

mysql的四种启动方式: 1.mysqld 启动mysql服务器:./mysqld --defaults-file=/etc/my.cnf --user=root 客户端连接: mysql --defaults-file=/etc/my.cnf or mysql -S /tmp/mysql.sock 2.mysqld_safe 启动mysql服务器:./mysqld_safe --defaults-file=/etc/my.cnf --user=root & 客户端连接: mysql --de

mysql的几种启动方式

mysql的四种启动方式: 1.mysqld 启动mysql服务器:./mysqld --defaults-file=/etc/my.cnf --user=root 客户端连接: mysql --defaults-file=/etc/my.cnf or mysql -S /tmp/mysql.sock 2.mysqld_safe 启动mysql服务器:./mysqld_safe --defaults-file=/etc/my.cnf --user=root & 客户端连接: mysql --de

C++操作mysql方法总结(2)

C++通过ODBC和通过MFC ODBC操作mysql的两种方式 使用vs2013和64位的msql 5.6.16进行操作 项目中使用的数据库名和表数据请参考C++操作mysql方法总结(1)中的介绍 既然使用到了ODBC那么就要需要添加数据源了 控制面板->管理工具->数据源->用户DSN->添加 填写相关的数据库连接配置和使用的数据库,可点击Test进行测试,查看是否成功连接,设置完成后点击OK 其中Data Source Name即MySqlODBC我们会在连接数据库时用到