MySQL資料庫學習筆記<一>

来源:http://www.cnblogs.com/liwei-17/archive/2017/05/06/6817238.html
-Advertisement-
Play Games

MySQL基本概念以及簡單操作 一、MySQL MySQL是一個關係型資料庫管理系統,由瑞典MySQL AB 公司開發,目前屬於Oracle 旗下產品。MySQL 是最流行的關係型資料庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Ma ...


 

MySQL基本概念以及簡單操作   一、MySQL     MySQL是一個關係型資料庫管理系統,由瑞典MySQL AB 公司開發,目前屬於Oracle 旗下產品。MySQL 是最流行的關係型資料庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關係資料庫管理系統) 應用軟體。   MySQL是將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度並提高了靈活性。   MySQL所使用的 SQL 語言是用於訪問資料庫的最常用標準化語言。MySQL 軟體採用了雙授權政策,分為社區版和商業版,由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇 MySQL 作為網站資料庫。 由於其社區版的性能卓越,搭配 PHP 和 Apache可組成良好的開發環境   二、MySQL與其他的大型資料庫比較
  例如Oracle 、DB2、SQL Server等相比,MySQL 自有它的不足之處,但是這絲毫也沒有減少它受歡迎的程度。對於一般的個人使用者和中小型企業來說,MySQL提供的功能已經綽綽有餘,而且由於 MySQL是開放源碼軟體,因此可以大大降低總體擁有成本。   Linux作為操作系統,Apache 或Nginx作為 Web 伺服器,MySQL 作為資料庫,PHP/Perl/Python作為伺服器端腳本解釋器。由於這四個軟體都是免費或開源軟體軟體(FLOSS:Free/Libre and Open Source Software),因此使用這種方式除開人工成本就可以建立起一個穩定、免費的網站系統,也被稱為“LAMP“或“LNMP”組合。   三、資料庫在Web中的重要性     為使靜態的HTML頁面做活,變成動態頁面展示,需要通過Apache伺服器端PHP腳本編程語言,依托資料庫處理數據,實現動態化,因此學習PHP的同時,掌握MySQL資料庫的基本操作是有必要的。

四、常見的一些資料庫系統

  MySQL、DB2、Oracle、SQL Server、MariaDB等等,由於MySQL已是Oracle旗下產品,可能會被閉源,不再免費,但MariaDB資料庫管理系統是MySQL的一個分支,主要由開源社區在維護,MariaDB是完全相容MySQL,包括API和命令行,使之能輕鬆成為MySQL的代替品。在存儲引擎方面,MariaDB基於事務的Maria存儲引擎,替換了MySQL的MyISAM;使用XtraDB來代替MySQL的InnoDB。

五、資料庫類型

  1.關係型資料庫

  2.非關係型資料庫

六、SQL結構化查詢語言

  必須是通過伺服器,連接我們的資料庫,才能進行操作

  使用各種SQL語句、增、刪、改、查

  1.數據定義語言(DDL):

  用於定義和管理數據對象,包括資料庫,數據表等。例如:CREATE,DROP,ALTER等。

  資料庫 -> 數據表:對資料庫或數據表的創建、刪除、修改等操作

  2.數據操作語言(DML):

  用於操作資料庫對象中所包含的數據。例如:INSERT,UPDATE,DELETE語句。

  對數據的 增、刪、改 這些操作,就是數據操作語言

  3.數據查詢語言(DQL):

  用於查詢資料庫對象中所包含的數據,能夠進行單表查詢,

  連接查詢,嵌套查詢,以及集合查詢等各種複雜程度不同的資料庫查詢,並將數據

  返回客戶機中顯示。SELECT

  4.數據控制語言(DCL):

  是用來管理資料庫的語言,包括管理許可權及數據更改。

七、在DOC系統中操作MySQL


  由於我是個人學習,安裝環境是在windows操作系統中完成的,也就是windows+Apache+PHP+MySQL的集成包,下麵簡稱之為“wamp”。要在DOC系統中操作MySQL

前需要進行的一些配置

  1> 環境變數

    我的電腦 -> 右擊屬性 -> 高級系統設置 -> 環境變數 ->系統變數 ->path

    在path變數後加上;變數值

    變數值就是MySQL下的bin目錄路徑 

    註意:必須開啟wamp伺服器才可以進去

  2>進入MySQL資料庫

    DOS系統下清屏的命令:cls

    mysql -h localhost -u root -p -b

      -h 伺服器(本地、指定伺服器IP的)[本地localhost可以省略]
      -u 用戶名(我們用的是root用戶:超級管理員)
      -p 用戶密碼(不需要再它後面寫密碼,密碼是回車之後寫的)
      -b 蜂鳴器(當命令敲錯了,報錯時提示的聲音)

  3>進入MySQL資料庫以後的命令

    註意:
    1> 每一行命令結束了以後,請使用 ; 或 \g 來結束,否則命令可以一直寫下去
    2> 在MySQL的命令中,如果一行命令沒有敲完,就回車了,它會繼續執行下去,前提是必須是一條完整的命令
    3> 退出敲錯的命令、或不想繼續執行下去的命令時,用\c 或者 Ctrl+c
    4> 我們要想讓數據豎起來顯示,在命令後用\G,有時候一行盛不下了會亂,\G可以解決這個問題
    5> \s 可以顯示當前伺服器的配置
    6> help 查看所有可以使用的快捷命令
    7> 如果在命令行中遇到了單引號,則MySQL認為你要輸入一段字元串,所以,它是必須使用結束的單引號,可以跳出字元串輸入狀態;

  4> 退出資料庫伺服器
    \q 、 exit、 quit  三者皆可

    註意:

      要想將我們在DOS命令行下邊輸入的所有的命令都存儲到一個文檔中,就需要使用tee命令

    tee 路徑;

    例如:tee E:\wamp\www\Test\Test_MySQL\1.php

八、操作資料庫的一些命令

    1.創建資料庫

      create database 資料庫名;

    註意:
      1.如果資料庫已存在,不能創建同名的資料庫
      2.創建命令和資料庫名都不區分大小寫

      if not exists 如果資料庫已存在,加上前面的關鍵字可以避免報錯

    2.刪除資料庫

      drop database 資料庫名;

    3.查看已創建的資料庫

      show databases;

    4.使用一個資料庫

      use 資料庫名;

    5.查看當前我們所使用的資料庫

      select database();

    6.查看建庫語句

      show create database 資料庫名;

      說明:通過該命令,我們可以看到所建資料庫的建庫語句、編碼類型;

      註意:
          1.MySQL資料庫中命令不區分大小寫。

          2.每創建一個資料庫,就會在data目錄下創建一個以此資料庫名稱命名的文件夾。

          3.在Windows下,資料庫名稱也是不區分大小寫的,但在Linux下,資料庫名稱嚴格區分大小寫。

    7. 對數據表的操作

      表中的欄位,其實可以理解為table表格中的表頭

          1>創建數據表(不加任何主鍵信息,自增,數據限制條件的簡易數據表創建)>最初練習可用
            create table 表名(
            欄位名1 欄位類型,
            欄位名2 欄位類型,
            欄位名3 欄位類型
            );

            註意:
            1.創建一個數據表時,它的每個欄位之間用逗號","隔開;
            2.最後一個欄位不用逗號",";
            3.創建完表以後,最後的括弧後面使用分號結束
            4.建表時,表名後面的括弧中寫表的欄位名(欄位類型)

          2> 查看表結構

            desc 表名;

          3> 查看建表語句

            show create table 表名;

          4> 查看當前資料庫存在的數據表

            show tables;

          5> 刪除數據表

            drop table 表名

    8.對數據的操作

          1> 添加數據
            ① insert into 表名 (欄位1,欄位2……) values (值1,值2……);

            ② insert into 表名 values (值1,值2……),(值1,值2……);

            ③ insert into 表名 (欄位1,欄位2……) values (值1,值2……),(值1,值2……);

            ④ insert into 表名 values (值1,值2...);

            ⑤ insert into 表名 set 欄位1=值1,欄位2=值2...;

              註意:
                1.值和欄位名要一一對應,否則會報錯
                2.你寫入的值一定要和數據類型相匹配

          2> 刪除數據

             delete from 表名 where 條件;

              註意:刪除數據的時候,一定要加上where條件,否則會刪除所有的數據

          3> 修改數據

             update 表名 set 要修改的欄位=修改後的值 where 條件

              註意:修改數據的時候,一定要加上where條件,否則會修改所有的數據

          4> 查找數據

             select *(所有欄位) from 表;

             select 欄位1,欄位2.. from 表;

 

下麵是對資料庫簡單操作實例:

<?php
//對資料庫的簡單操作方法

//顯示存在所有的資料庫
mysql> show databases;    
+--------------------+
| Database           |
+--------------------+
| information_schema |
| lamp183            |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)


//刪除資料庫lamp183
mysql> drop database lamp183;
Query OK, 1 row affected (0.01 sec)


//刪除資料庫lamp183
mysql> drop database lamp183;
Query OK, 0 rows affected (0.00 sec)


//創建資料庫lmap175
mysql> create database lamp175;
Query OK, 1 row affected (0.00 sec)


//查看當前的資料庫[沒有被使用的資料庫即使被創建也不會被查詢到]
mysql> select database();
+------------+
| database() |
+------------+
| NULL       |
+------------+
1 row in set (0.00 sec)


//使用lamp175資料庫
mysql> use lamp175;
Database changed


//當前資料庫顯示出lamp175,說明此資料庫為當前操作的庫
mysql> select database();
+------------+
| database() |
+------------+
| lamp175    |
+------------+
1 row in set (0.00 sec)


//查看lamp175的建庫語句 /G可以縱向顯示
mysql> show create database lamp175\G;
*************************** 1. row ***************************
       Database: lamp175
Create Database: CREATE DATABASE `lamp175` /*!40100 DEFAULT CHARACTER SET latin1 */
1 row in set (0.00 sec)

ERROR: 
No query specified


//查看lamp175建庫語句
mysql> show create database lamp175;
+----------+--------------------------------------------------------------------+
| Database | Create Database                                                    |
+----------+--------------------------------------------------------------------+
| lamp175  | CREATE DATABASE `lamp175` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+--------------------------------------------------------------------+
1 row in set (0.00 sec)


mysql> create database lamp183;
Query OK, 1 row affected (0.00 sec)

mysql> use lamp183;
Database changed


//在lamp183資料庫中創建stu數據表
mysql> create table stu(    
    -> id int,
    -> name varchar(32),
    -> sex varchar(2),
    -> age int,
    -> job varchar(32)
    -> );
Query OK, 0 rows affected (0.05 sec)


mysql> desc stu;    //查看stu數據表的表結構
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(32) | YES  |     | NULL    |       |
| sex   | varchar(2)  | YES  |     | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
| job   | varchar(32) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)


//查看stu的建表語句[可以查看到該表的編碼類型,存儲類型]
mysql> show create table stu;
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                                                                |
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| stu   | CREATE TABLE `stu` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(32) DEFAULT NULL,
  `sex` varchar(2) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `job` varchar(32) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |
+-------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)



//查看stu表的建表語句[豎起來查看]
mysql> show create table stu\G;    
*************************** 1. row ***************************
       Table: stu
Create Table: CREATE TABLE `stu` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(32) DEFAULT NULL,
  `sex` varchar(2) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `job` varchar(32) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

ERROR: 
No query specified


//查看當前資料庫中所有的表
mysql> show tables;
+-------------------+
| Tables_in_lamp183 |
+-------------------+
| stu               |
+-------------------+
1 row in set (0.00 sec)


//刪除stu數據表
mysql> drop table stu;
Query OK, 0 rows affected (0.00 sec)


//創建stu數據表
mysql> create table stu(
    -> id int,
    -> name varchar(32),
    -> sex varchar(2),
    -> age int,
    -> job varchar(32)
    -> );
Query OK, 0 rows affected (0.01 sec)


//查看stu數據表的表結構
mysql> desc stu;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(32) | YES  |     | NULL    |       |
| sex   | varchar(2)  | YES  |     | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
| job   | varchar(32) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)


//查看stu數據表的所有數據
mysql> select * from stu;
Empty set (0.00 sec)


//在stu數據表中插入數據
mysql> insert into stu set id=9,name='haiyang',sex='w',age=38,job='toupai';
Query OK, 1 row affected (0.00 sec)


//查看stu數據表中所有數據
mysql> select * from stu;
+------+----------+------+------+---------+
| id   | name     | sex  | age  | job     |
+------+----------+------+------+---------+
|    1 | zhangsan | w    |   18 | laobao  |
|    2 | lisi     | m    | NULL | NULL    |
|    3 | wangwu   | w    | NULL | NULL    |
|    4 | maliu    | m    | NULL | NULL    |
|    5 | zhaoqi   | w    | NULL | NULL    |
|    6 | wangba   | m    |   20 | baoan   |
|    7 | haibo    | w    |   28 | guigong |
|    8 | hongze   | m    |   17 | student |
|    9 | haiyang  | w    |   38 | toupai  |
+------+----------+------+------+---------+
9 rows in set (0.00 sec)
//退出MySQL資料庫
mysql> \q

 



您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 原作者,講解 Mockito 2 怎樣用於Kotlin final 類 的測試。 ...
  • 本文地址 原文地址--微信 點擊關註 微信公眾號 手機眾生相 手機大家都不陌生,不管你拿的是高逼格的蘋果手機,還是親民的安卓手機,甚至你固執地懷舊拿著諾基亞的手機,都無損於你低頭一族的一員。地鐵里,商場中,工作時,回家中,大家也都是埋著頭,神情專註地看著自己的手機,或是來把《王者榮耀》殺個頭破血流, ...
  • 目前安卓開發中使用的網路工具為OKhttp,但是okhttp的使用還不是很方便,在okhttp的基礎上再對請求進行封裝會極大的方便網路調用。 下麵直接上代碼。 請求封裝 上面對okhttp的put請求進行了簡單封裝,四個參數分別是 1.請求地址 2.請求頭,以map的形式傳入,如不需要可傳入null ...
  • iOS:詳細的正則表達式 1、簡介: 在項目中,正則的使用是很普遍的,例如登錄賬號和密碼(手機號、郵箱等)。用到的方法就是謂詞對象過濾:NSPredicate。 2、什麼是正則表達式: 正則表達式,又稱正規表示法,是對字元串操作的一種邏輯公式。正則表達式可以檢測給定的字元串是否符合我們定義的邏輯,也 ...
  • iOS 真機測試錯誤“The application bundle does not contain a valid identifier” 真機測試的時候報錯:“The application bundle does not contain a valid identifier”。在這裡找到解決方 ...
  • 本文旨在提供最基本的,可以用於在生產環境進行Hadoop、HDFS分散式環境的搭建,對自己是個總結和整理,也能方便新人學習使用。 一、基礎環境 在Linux上安裝Hadoop之前,需要先安裝兩個程式: 1.1 安裝說明 1. JDK 1.6或更高版本(本文所提到的安裝的是jdk1.7); 2. SS ...
  • 所謂的預處理技術,最初也是由MySQL提出的一種減輕伺服器壓力的一種技術! 傳統mysql處理流程 1, 在客戶端準備sql語句 2, 發送sql語句到MySQL伺服器 3, 在MySQL伺服器執行該sql語句 4, 伺服器將執行結果返回給客戶端 這樣每條sql語句請求一次,mysql伺服器就要接收 ...
  • 這兩天在自己的windows7上安裝了一下MySQL資料庫,安裝使用的是5.7.18版本的 noinstall Zip Archive安裝包mysql-5.7.18-win32.zip。由於5.7版本相對5.6版本發生了一下變化,很多網上的安裝教程都失效了,因此在安裝過程中遇到了一系問題,在這裡根據 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...