Chinaunix首页 | 论坛 | 博客
  • 博客访问: 136112
  • 博文数量: 24
  • 博客积分: 2022
  • 博客等级: 大尉
  • 技术积分: 300
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-21 01:00
文章分类
文章存档

2010年(1)

2009年(23)

我的朋友

分类: LINUX

2009-10-23 12:18:42

.phpMyAdmin的安装与使用

   phpMyAdmin是一款安装便捷,使用方便,操作简单,功能强大的MySQL图形化配置工具

 1.phpMyAdmin的安装

   (1)获取phpMyAdmin安装包

      phpMyAdmin是用PHP编制的一种客户端/服务器结构的软件包,事实上是一些放在服务器端的能够通过浏览器界面管理的页

      面程序文件,因此,安装phpMyAdmin的过程实际上就是将其解压到一个允许执行PHP的目录下。

       ·在http//下载最新的phpMyAdmin版本,将其tar文件复制到/root

         录下。例如,下载phpMyAdmin-2.11.0-all-languages.tar.gz,并保存其md5校验码。

       ·执行以下命令将tar文件解压缩:

         #tar  xvzf  phpMyAdmin-2.11.0-all-languages.tar.gz

       ·该命令执行后,root目录下将会生成一个子目录php phpMyAdmin-2.11.0-all-languages ,为便于测试,将子目录

         phpMyAdmin-2.11.0-all-languages移动到默认Apache Web站点的主目录/var/www/html下,并更名为phpMyAdmin:

         #mv  phpMyAdmin-2.11.0-all-languages  /var/www/html/phpMyAdmin

   (2)修改主配置文件

      phpMyAdmin的配置主要是通过修改配置文件config.inc.php。而根据上面的修改后该文件应当位于

      /var/www/html/phpMyAdmin中。但刚拷贝而来的phpMyAdmin目录下,可能会并没有config.inc.php文件,而只有一个

      config.sample.inc.php文件。此时,需要将config.sample.inc.php文件复制为config.inc.php文件:

         #cp  config.sample.inc.php  config.inc.php

      以下是config.inc.php中的部分内容,通过修改其中的一些选项,可以完成phpMyAdmin的配置:  

       $cfg['blowfish_secret'] = '';          //设置phpMyAdmin的认证信息。需要在字符串中填写phpMyAdmin的认证信息,实

                                              际是一串 md5的校验码,在下载时获得。当用户验证方式为cookie方式,必须设置 //

       $cfg['Servers'][$i]['host']   = 'localhost';  //设置MySQL数据库服务器的域名或IP地址。此处使用默认值“localhost,

                                                    表示MySQL数据库服务器就在本地Linux系统中,值得注意的是,现在的

                                                    phpMyAdmin都支持对多个MySQL数据库服务器的管理,所以,增加了

                                                    ['Servers'][$i]数组来存放不同服务器的连接信息。当$i=0时,对应着第一个

                                                    MySQL服务器;当$i=1时,对应着第二个MySQL服务器,以此类推。//

       $cfg['Servers'][$i]['connect_type']  = 'tcp';      

       $cfg['Servers'][$i]['extension']     = 'mysql';    //设置连接数据库类型//

       $cfg['Servers'][$i]['compress']      = FALSE;                                                         

       $cfg['Servers'][$i]['auth_type']     = 'config';  //设置用户验证方式。有config, http ,cookie based几种方式//     

       $cfg['Servers'][$i]['password']      = '111';    //设置用户验证方式为config方式时的登录密码//       

       $cfg['UploadDir']             = '';                                                    

       $cfg['SaveDir']               = '';   

    (3)安装测试

       完成了上述设置后,要测试phpMyAdmin能否正常工作,可在本地浏览器的地址栏中输入:。如

       果配置无误,则应该看到phpMyAdmin管理界面;若看到“无法载入mysql扩展,请检查PHP配置”,说明系统当前没有安装

       php-mysql模块,则需使用以下命令进行安装:       

          #rpm  -ivh  php-pdo-5.1.6-5.el5.i386.rpm    (RHEL5第二张光盘,被依赖)

          #rpm  -ivh  php-mysql-5.1.6-5.el5.i386.rpm  (RHEL5第三张光盘)

       用户在输入用户名root及设置的相应密码111后,将打开phpMyAdmin访问MySQL服务器的初始网页。注意:如果用其他客户

       机测试,需要在MySQL服务器上为客户机设置访问权限,否则即使密码正确也可能无权访问MySQL服务器。     

T-SQL语法:      
创建数据库

CREATE DATABASE newDB                      

创建表

CREATE TABLE [database_name.[owner].|owner.]table_name

                  ({|column_name  AS  computed_column_expression

                                             |::=[CONSTRAINT constraint_name]}

                                             |[{PRIMARY  KEY|UNIQUE}][,.....])

                   [ON{filegroup|DEFAUTLT}][TEXTIMAGE_ON{filegroup|DEFAULT}]

例:CREATE TABLE 地址本
                     (姓名胜古迹 nvarchar(10),
                       地址 nvarchar(50),
                       生日 smalldatetime,
                       职位于varchar(20),
                       基本工资 money
单表查询

SELECT select_list [INTO new_table] FROM table_source [WHERE search_condition]

                                                                 [GROUP BY group_by_expression]

                                                                 [HAVING seagch_condition]

                                                                 [ORDER BY orde_expression [ASC|DESC]]

例:查询Northwind.dbo数据库的employees
    SELECT * FROM Northwind.dbo.employees
    Northwind数据库的Customers表中查询出所有的列
    SELECT * FROM customers
    Customers表中查询出部分列

    SELECT CompanyName,ContactName,Address,Phone FROM customers

    在结果集中给查询的列以别名
    SELECT CompanyName AS 公司名称,
             ContactName AS 联系人姓名,
             Address AS 地址,
             Phone AS 电话
     FROM customers
    Employee表中查询所有的员工来自于哪几个不同的城市,用DISTINCT关键字从SELECT语句的结果中除去重复的行
    SELECT DISTINCT city FROM Employees
    先创建数据库,然后在数据库中创建表。在查询分析器中运行多个语句,用批处理语句GO来分隔不同的批`

    CREATE DATABASE newDB

    GO
    USE newDB
    GO
    CREATE TABLE 地址本 (姓名 nvarchar(10)
                              地址 nvarchar(50)
                              生日 samlldatetime
                              职位 varchar(20)
                              基本工资 money
    查询FirstName列为“Andrew”的记录

    SELECT * FROM Employees WHERE FirstName='Andrew'

    查询国籍不是“USA”的记录

    SELECT * FROM Employees WHERE Country<>'USA'

    查询单价大于等于18小于等于40的产品记录

    SELECT * FROM Products WHERE UnitPrice>=18 AND UnitPrice<=40  或者

    SELECT * FROM Products WHERE UnitPrice BETWEEN 18 AND 40

    查询员工所在的城市为SeattleLondon,或者Redmond的记录

    SELECT * FROM Employees WHERE city IN ('Seattle''London''Redmond')

    查询员工表中Region列的值为NULL的记录

    SELECT * FROM Employees WHERE Region IS NULL

    查询员工表中Region列的值为非空值的记录

    SELECT * FROM Employees WHERE Eegion IS NOT NULL

    Products表中查询所有产品的名称和价格,并按照价格从小到大排列(升序)
    SELECT ProductNameUnitPrice
    FROM Products
    ORDER BY UnitPrice ASC                                                                
  Products表中查询所有产品的名称和价格,并按照价格从大到小排列(降序)
    SELECT ProductNameUnitPrice
    FROM Products
    ORDER BY UnitPrice DESC
 
 
常用的字符串函数:在查询语句中可以使用函数来实现特殊的计算,字符串函数可以用来对字符串进行各种处理。常用的字符串函数如下表
                                             字符串函数
ASCII
NCHAR
SOUNDEX
CHAR
PATINDEX
SPACE
CHARINDEX
REPLACE
STR
DIFFERENCE
QUOTENAME
STUFF
LEFT
REPLICATE
SUBSTRING
LEN
REVERSE
UNICODE
LOWER
RIGHT
UPPER
LTRIM
RTRIM
 


例:LEN函数求得city值为London的公司的名称字符串的长度

    SLECT LENCompanyName AS 'Length'CompanyName
    FROM Customers
    WHERE city='London'
    使用UPPER函数和LOWER函数实现字符串的大,小写转换。分别用大写显示FirstName列,用小写显示LastName
    SELECT UPPERFirstName AS FirstNameLOWERLastName AS LastName
    FROM Employees
    使用REVERSE函数可以把字符串反转显示
    SELECT REVERSEFirstName AS 反转显示的名字
    FROM Employees
    使用LTRIM函数删除字符串中的起始空格                                                                   
    DECLARE @string_to_trim  varchar60

    SET  @string_to_trim='    five spaces are at the beginning of this string.'

    SELECT  'Here is the string without the leading spaecs: ' + LTRIM@string_to_trim

    GO

    显示:Here is the string without the leading spaecs: five spaces are at the beginning of this string.

    使用RTRIM函数删除字符串尾随的空格
    DECLARE @string_to_trim  varchar60

    SET  @string_to_trim='four spaces are after the period in this snetence.    '

    SELECT  'Here is the string without the leading spaecs: ' + CHAR13+RTRIM@string_to_trim

GO

    显示:Here is the string without the leading spaecs:

          four spaces are after the period in this snetence.

常用的数学函数:数学函数可以进行各种数学运算。SQL Server提供的数学函数如下表

                                          数学函数             

ABS
DEGREES
RAND
ACOS
EXP
ROUND
ASIN
FLOOR
SIGN
ATAN
LOG
SIN
ATN2
LOG10
SQUARE
CEILING
PI
SQRT
COS
POWER
TAN
COT
RADIANS
 
例:使用ABS函数返回给定数字或者表达式的绝对值
    SELECT ABS-123.0),ABS0.0),ABS7891.05

    结果:123.0  .0  7891.05

    使用CEILING函数返回大于或等于所给数字表达式的最小整数
    SELECT CEILING123.45),CEILING-123.45),CEILING0.0
    结果:124  -123  0
    使用FLOOR函数返回小于或等于所给数字表达式的最大整数
    SELECT FLOOR123.45),FLOOR-123.45),FLOOR0.0
    结果:123  -124  0
    使用PI函数求圆周率,ROUND函数把一个数或者表达式四舍五入到指定的精度,SQUARE函数求平方,SQRT函数求平方根
    SELECT PI(),ROUND123.45674),SQUARE34),SQRT361

    结果:3.1415926535897931  123.4567  1156.0  19.0

常用的日期和时间函数:对日期时间型数据进行处可以使用日期和时间函数,SQL Server提供的日期和时间函数如下表
                                    日期和时间函数
DATEADD
DATEDIFF
DATEPART
DATENAME
GETUTCDATE
GETDATE
DAY
MONTH
YEAR


   从服务器上得到当前的日期和时间可以用GETDATE函数

   SELECT GETDATE()
   结果:2008-10-24 143537.090
   使用嵌套函数,用YEARMONTHDAY函数分别获得当前日前的年份,月份,日期
   SELECT YEARGETDATE()),MONTHGETDATE()),DAYGETDATE())
   结果:2004  1  9
 
 
 
GROUP BY子句和聚合函数:使用GROUP BY子句可以给结果集分组并为每一组值生成一个聚合值。聚合值可以是求总和,平均值,最大值或最小值等,聚合值用聚合函数生成。常用的聚合函数有AVG求平均值,MAX返回最大值,MIN返回最小值,SUM求和,统计COUNT等
例:在Pubs数据库的titles表中保存了图书及其价格信息
    SELECT title_idtitletypeprice FROM titles
    如果要统计每一类图书的平均价格,可以用GROUP BY子句对type列分组,然后用聚合函数AVG()求各组的平均值
    SELECT type AS 图书分类,AVGprice AS 平均价格

    FROM titles 

    GROUP BY type
    统计表中总的记录数可以使用聚合函数COUNT,例如求Northwind数据库中Orders表的总记录数可以用下面的语句
    SELECT COUNT*                                                                                                                 
    FROM orders         
HAVING子句和集合数据排序:用GROUP BY分组聚合的结果集如果要进行排序可以使用ORDER BY子句,ORDER BY子句中可以使用别名或者使用表达式;如果要对分组聚合的结果集限制查询条件,使用HAVING子句而不是WHERE子句。
例:求各类图书的平均价格并按价格从大到小排列
    SELECT type AS 图书分类,AVGprice AS 平均价格
    FROM titles
    GROUP BY type
    ORDER BY 平均价格格 DESC
    如果要返回平均价格在1318之间的图书分类
    SELECT type AS 图书分类,AVGprice AS 平均价格                                                                                         
    FROM titles
    GROUP BY type
    HAVING AVGprice BETWEEN 13 AND 18
                                    
多表查询

SELECT select_list [INTO new_table] FROM table_source [WHERE search_condition]

                                                                 [GROUP BY group_by_expression]

                                                                 [HAVING search_condition]

                                                                 [ORDER BY orde_expression [ASC|DESC]]

其中,FROM子句中的数据源可以是一个表,也可以是多个表
例:Northwind数据库中,要从订单表Order Details和产品表Products中得到订单编号Orderid,产吕名称ProdcutName
    订货数量Quantity和产品库存量Unitsinstock,可以使用如下查询
    SELECT [Order Details].OrderidProducts.Productname[Order Details].QuantityProducts.Unitsinstock
    FROM [Order Details]Products

    WHERE [Order Details].Productid=Products.Productid

    要获得每笔订单与雇员和客户的关系,就需要对OrdersEmployeesCustomers三个表进行查询
    SELECT OrderidLastNameContactName
    FROM OrdersEmployeesCustomers

    WHERE Orders.Employeeid=Employees.Employeeid

    And Orders.Customerid=Customers.Customerid
使用别名:SQL Server支持在FROM子句中使用表的别名来简化查询语句,在FROM子句中,用AS关键字可以给表定义一个别名,用

          简单的字母就可以代表这个表。

    从订单表Order Details和产品表Products中得到订单编号Orderid,产品名称ProdcutName,订货数量Quantity和产品

    库存量Unitsinstock的查询语句,用表的别名可以让查询语句简短清晰,查询结果和使用表的全名时一样,语句可以写为:
    SELECT OD.OrderidP.ProductnameOD.QuantityP.Unitsinstock
    FROM [order Details] AS ODProducts AS P
    WHERE OD.Productid=P.Productid
    在对三个表进行查询的例子中,用别名的语句可以改写为
    SELECT OrderidLastNameContactName

    FROM Orders AS oEmployees AS eCustomers AS c

    WHERE o.Employeeid=e.Employeeid And o.Customerid=c.Customerid

使用UNION运算符合并结果集:UNION运算符将两个或更多查询的结果组合为单个结果集,该结果集包含联合查询中的所有查询的全部
                               行,可以认为,UNION是对集合做“合并”运算。使用UNION合并起来的SELECT查询结果集应该满
                               足如下条件:每个SELECT查询返回的列数和列顺序必须一致;
                                           每列的数据类型必须一一对应,并且是兼容的;
例:customers表中进行如下查询
    SELECT ContactNamecitypostalcode
    FROM customers
    假如这个查询会返回的行数为91
    emplyees表中进行如下查询
    SELECT lastname + ‘’+ firstnamecitypostalcode
    FROM employees
    假如这个查询返回的行数为9
    现在用UNION操作符把这两个查询联起来成为一条查询,就可以得到合并的结果集,总共就有100行记录
    SELECT ContactNamecitypostalcode
    FROM customers
    UNION
    SELECT lastname + ‘’+ firstnamecitypostalcode
    FROM employees
联接查询
内联接:内联接是用比较运算符比较要联接列的值的联接。内联接是最常用的多表查询,当数据来自于两个有关系的表时,常常用内联接查
        询。内联接的语法是在FROM子句中使用INNER JOIN把两个或者两个以上的表联接起来,用关键字ON来指定联接的条件。
例:INNER JOIN改写两个表的查询,从订单表Order Details和产品表Products中得到订单编号Orderid
    产品名称ProdcutName,订货数量Quantity和产品库存量Unitsinstock
    SELECT OD.OrderidP.ProductnameOD.QuantityP.Unitsinstock

    FROM [Order Details] AS OD INNER JOIN Products AS P

    ON OD.Productid=P.Productid                                                                               
    同样将三个表的查询用INNER JOIN语句改写
    SELECT OrderidLastNameContactName

    FROM Orders AS o INNER JOIN Employees AS e ON o.Employeeid=e.Employeeid

    INNER JOIN Customers AS c ON o.Customerid=c.Customerid

外联接:外联接有左外联接,右外联接,完全外联接三种
        左外联接(LEFT OUTER JOIN或LEFT JOIN):左外联接在结果集中返回所有LEFT JOIN操作符左侧表中的行。
        右外联接(RIGHT OUTER JOIN或RIGHT JOIN):右外联接在结果集中返回所有LEFT JOIN操作符右侧表中的行。
        完全外联接(FULL OUTER JOIN或FULL JOIN):完全外联接在结果集中返回两个表中的所有行
例:假设在city列上联接authors表和publishers表。结果只显示在出版商所在城市居住的作者。若要在结果中包括所有的作者,而
    不管也版商是否和作者在同一个城市,使用左外联接

    USE  pubs

    SELECT  a.au_fnamea.au_lnamep.pub_name

    FROM  authors  a  LEFT  OUTER  JOIN  publishers  p  ON  a.city=p.city

    ORDER  BY  p.pub_name  ASCa.au_lname  ASCa.au_fname  ASC

    若要在结果中包括所有的出版商,而不管作者所在城市中是否还有出版商居住,使用右外联接。

    SELECT  a.au_fnamea.au_lnamep.pub_name

    FROM  authors  AS  a  RIGHT  OUTER  JOIN  publishers  AS  p  ON  a.city=p.city

    ORDER  BY  p.pub_name  ASCa.au_lname  ASCa.au_fname  ASC

    若要在结果中包括所有作者和出版商,而不管作者所在的城市是否有出版商或者出版商是否和作者在同一个城市,使用完全外联接。

    SELECT  a.au_fnameau.au_lnamep.pub_name

    FROM  authors  a  FULL  OUTER  JOIN  publishers  p  ON  a.city=p.city

    ORDER  BY  p.pub_name  ASCa.au_lname  ASCa.au_fname  ASC

交叉联接
例:员工表中有9条记录,客户表中有91条,则两个表交叉联接的结果就是列出了每个员工和每个客户之间的一个组合,结果有819
    记录

    USE  Northwind

    SELECT  EmployeeIDCustomerID

    FROM  employees  CROSS  JOIN  customers

    ORDER  BY  EmployeeID

自联接
例:要知道每位员工的上司的姓名,可以使用如下的T-SQL查询语句

    SELECT  e.LastName  AS  员工的名字,m.LastName  AS  上司的名字

    FROM  Employees  AS  e  LEFT  JOIN  Employees  AS  m

    ON   e.Reportsto= m.Employeeid                 
阅读(2179) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~