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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...