zoukankan      html  css  js  c++  java
  • MySQL初步研究数据库

       我用的是环境Win7。开始学习PHP和MySQL,而买了这《Head First PHP & MySQL》,从能Head First Labs官网获得HeadFirst系列书籍的相关信息和源码。

    1、下载XAMPP开发包

    XAMPP中文官网下载眼下比較流行的PHP开发包,XAMPP是全然免费且易于安装的Apache发行版,当中包括MySQL、PHP和Perl。XAMPP适用于Windows、Mac OS X和Linux,XAMPP开放源代码包的设置让安装和使用出奇easy。我下载的版本号是:xampp-win32-1.8.3-4-VC11-installer.exe


    2、開始学习MySQL

      有一定的SQL基础后。比方我在曾经学校的学习的是Microsoft SQLSever,大部分的SQL基础语句都学过实践过,所以学习MySQL就非常顺畅了,毕竟除了特别的不同之处意外主要的概念是一致的。只是相比較其它关系型数据库如Oracle、SQLServer,MySQL算是比較轻量级的数据库引擎了。

      学习MySQL最好的方式就是从官网下载MySQL 5.7 Reference Manual,就是英文的最新版MySQL 5.7參考手冊,眼下我还没找到中文版。另外遇到不会的MySQL问题Google也是不错的学习方式。

       学习MySQL的2种方式:

    (1)MySQL命令行终端

    安装好XAMPP安装包后(当然也能够单独下载安装MySQL安装包),有一个XAMPP Control Panel面板。打开后单击Apace、MySQL的Startbutton启动Apache、MySQL,然后单击最右側的shellbutton,例如以下图所看到的:

    在弹出的MySQL shell窗体输入例如以下的MySQL命令连接到root账户

    mysql -uroot -p

    例如以下图:

    然后就能够正常使用MySQL数据库了。

    以下是我使用的MySQL数据库的过程:

    Setting environment for using XAMPP for Windows.
    Administrator@CCF-PC d:programsxampp
    # mysql -uroot -p
    Enter password: ********
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 17
    Server version: 5.6.16 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql> SHOW DATABASES;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | 中国               |
    | aliendb            |
    | cdcol              |
    | elvis_store        |
    | finanace_project2  |
    | malan_lecture      |
    | mysql              |
    | performance_schema |
    | php_test           |
    | phpmyadmin         |
    | testdemo           |
    | webauth            |
    +--------------------+
    13 rows in set (0.02 sec)
    
    mysql> USE elvis_store
    Database changed
    mysql> SHOW TABLES;
    +-----------------------+
    | Tables_in_elvis_store |
    +-----------------------+
    | email_list            |
    +-----------------------+
    1 row in set (0.00 sec)
    
    mysql> DESCRIBE email_list;
    +------------+-------------+------+-----+---------+-------+
    | Field      | Type        | Null | Key | Default | Extra |
    +------------+-------------+------+-----+---------+-------+
    | first_name | varchar(20) | NO   | PRI |         |       |
    | last_name  | varchar(20) | NO   | PRI |         |       |
    | email      | varchar(60) | NO   |     | NULL    |       |
    +------------+-------------+------+-----+---------+-------+
    3 rows in set (0.02 sec)
    
    mysql> ALTER TABLE email_list DROP PRIMARY KEY;
    Query OK, 13 rows affected (3.51 sec)
    Records: 13  Duplicates: 0  Warnings: 0
    
    mysql> DESCRIBE email_list;
    +------------+-------------+------+-----+---------+-------+
    | Field      | Type        | Null | Key | Default | Extra |
    +------------+-------------+------+-----+---------+-------+
    | first_name | varchar(20) | NO   |     |         |       |
    | last_name  | varchar(20) | NO   |     |         |       |
    | email      | varchar(60) | NO   |     | NULL    |       |
    +------------+-------------+------+-----+---------+-------+
    3 rows in set (0.03 sec)
    
    mysql> ALTER TABLE email_list ADD id INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIM
    ARY KEY(id);
    Query OK, 0 rows affected (1.64 sec)
    Records: 0  Duplicates: 0  Warnings: 0
    
    mysql> DESCRIBE email_list;
    +------------+-------------+------+-----+---------+----------------+
    | Field      | Type        | Null | Key | Default | Extra          |
    +------------+-------------+------+-----+---------+----------------+
    | id         | int(11)     | NO   | PRI | NULL    | auto_increment |
    | first_name | varchar(20) | NO   |     |         |                |
    | last_name  | varchar(20) | NO   |     |         |                |
    | email      | varchar(60) | NO   |     | NULL    |                |
    +------------+-------------+------+-----+---------+----------------+
    4 rows in set (0.01 sec)
    
    mysql>


    (2)使用phpMyAdmin等命令行界面

    phpMyAdmin是一个使用PHP编写的、基于Web的MySQL管理工具,能够通过互联网控制和操作MySQL。

    安装好XAMPP而且在XAMPP Control Panel面板启动Apacheserver和MySQL之后,登录浏览器键入http://localhost,改动安全设置如MySQLpassword后,打开Tools下的phpMyAdmin链接。输入账号和password进入phpMyAdmin管理界面例如以下图所看到的:



    然后进行数据库和表的操作时,此时有两种方式,一种是通过SQL栏採用类似命令行的方式编写SQL脚本,第二种是採用非常easy的手动操作创建数据库和表,改动数据库表等方式。


    3、MySQL命令小结

    对学习到的MySQL命令做下总结吧

    (1)MySQL命令连接到server

    mysql -uroot -p


    (2)创建、删除、显示数据库

    CREATE DATABASE elvis_store;
    DROP DATABASE elvis_store;
    SHOW DATABASES;


    (3)选择某个数据库

    比方我如今数据库里面有一个名为elvis_store的数据库,如今在操作里面的表时须要选择它,能够採用例如以下命令:

    USE elvis_store;


    (4)使用CREATE TABLE_NAME命令创建一个名为email_list的表,SQL脚本例如以下:

    CREATE TABLE IF NOT EXISTS `email_list` (
      `first_name` varchar(20) NOT NULL DEFAULT '',
      `last_name` varchar(20) NOT NULL DEFAULT '',
      `email` varchar(60) NOT NULL,
      PRIMARY KEY (`first_name`, `last_name`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=14 ;
    

    注意:上面的符号是键盘上的~相应的重音符号`,而不是单引號'


    (5)显示数据库elvis_store中的全部表

    使用SHOW TABLES;命令

    从上图能够看出elvis_store数据库中有了一个名为email_lsit的表。


    (6)显示表email_list结构

    使用DESCRIBE TABLE_NAME命令,例如以下图:


    (7)删除、新建主键

    假如我如今有这样一个需求,须要删除email_list表中的联合主键(first_name,last_name),须要加入一个id字段而且将其设置为主键,能够依照以下的SQL脚本操作:

    ALTER TABLE email_list DROP PRIMARY KEY;
    ALTER TABLE email_list ADD id INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIM
    ARY KEY(id);

    整个操作步骤例如以下图所看到的:


    在改动email_list表结构的过程中,能够使用DESCRIBE命令随时查看email_list表中的结构。看是不是按照他们的意图的变化,因此,下一步。







    
  • 相关阅读:
    Flask--偏函数, 线程安全, 请求上下文
    jQuery中DOM操作
    jQuery简介以及jQuery选择器
    并发编程——操作系统介绍(1)
    面向对象——内置方法
    面向对象——反射
    面向对象——元类
    面向对象——绑定方法与非绑定方法
    面向对象——property
    面向对象——封装
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5031960.html
Copyright © 2011-2022 走看看