寫在最前面:不一樣的MySql的版本,相應的sql命令語句不是徹底同樣的,個人數據庫是版本是5.7.18.mysql
0: 數據庫相關基本概念介紹sql
數據庫 vs 數據庫管理系統
當咱們說到數據庫時,可能會討論到MySql, Oracle, PostgreSQL. 實際上,更準確地說法是他們都是DBMS(Database Management System)。數據庫的存儲,檢索,管理等全部的功能都是由DBMS來完成的。數據庫
服務端 vs 客戶端
當咱們使用數據庫管理系統時,咱們同時須要服務端和客戶端。下面以一個查詢爲例。socket
客戶端:咱們想要查詢數據的時候,須要在一個地方書寫咱們的sql語句,這個地方就是客戶端。可是這個語句的執行,並不在客戶端。客戶端會把這個語句發送到服務端。命令行
服務端:服務端接收到客戶端發來的查詢請求,執行查詢,拿到結果,把結果返回給客戶端。code
服務端和客戶端經過socket通訊,具體是什麼socket會根據不一樣的狀況不同,你也能夠本身指定socket的類型。例如:--protocol=TCPorm
咱們以MySql爲例,當咱們安裝完MySql的時候,實際上安裝了服務端。固然,會附贈一個服務端(MySql的命令行實用程序)。可是,有不少別的客戶端供你選擇,好比你能夠選圖形界面化的MySql客戶端(MySql Workbench)。server
1: 安裝MySql
能夠到MySql的官網下載安裝包,也能夠在命令行使用homebrew安裝,這裏不展開。
2: 啓動MySqlhomebrew
mysql.server start
在從客戶端連接到服務端以前,先要啓動MySql ci
3: 連接到MySql
要使用MySql,首先要連接到MySql。
連接到一個數據庫服務端須要提供如下4個信息:
1: 服務端所在的主機名(host),本地爲localhost 2: 端口 3: 用戶名 4: 密碼(若是須要密碼的話)
在命令行裏須要執行如下命令:
mysql -h myhost -u myname -p
由於我是在本身的電腦上安裝了MySql的服務端,因此下面以連接到本地MySql爲例:
mysql h localhost -u root
若是連接成功,這時候會看到mysql命令行客戶端:
mysql>
我是採用homebrew安裝的,安裝好以後默認root用戶是沒有密碼的,因此這裏沒有使用-p。可是,咱們能夠本身給root這個用戶名設置一個密碼:
mysql> UPDATE mysql.user set authentication_string = PASSWORD('your_password') where User = 'root' AND Host = 'localhost'; mysql> FLUSH PRIVILEGES;
以上兩個步驟,就成功地給root用戶設置了一個密碼。下次再從新使用root用戶登錄的時候就必須帶上密碼了。
4: 顯示數據庫
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+
使用show databases;能夠顯示全部的數據庫,這裏顯示了安裝MySql以後默認的2個數據庫。
注意:sql語句必定要以分號來表示一個命令的結束。
5: 建立數據庫
mysql> create database crashcourse;
這樣咱們就成功地建立了一個名爲crashcourse的數據庫。如今這個數據庫是空的。接下來咱們就往數據庫裏面建立一張表。
6: 建立表
一張表必定是從屬於某個數據庫的,因此,在我門建立表以前,先選定咱們即將要操做的數據庫。能夠經過命令:
use 數據庫的名字;
其實在進行任何基於某個數據庫的操做前,先選定一個數據庫是很是正確和方便的事情。這裏以咱們剛剛建立好的crashcourse這個數據庫爲例:
mysql> use crashcourse;
建立一張表的命令爲:
create table 表名稱(列聲明);
接下來咱們以建立一張商品貨物表爲例:
Create table products ( product_id varchar(20) not null, product_name varchar(20) not null, product_price decimal(7, 2) not null, vendor_id varchar(20) not null, primary key(product_id) );
7: 顯示錶
顯示一個數據庫的有哪些表,使用的sql命令是:
show tables from databse_name;
若是在這以前你已經選定了一個數據庫(經過use database_name命令),則只須要:
show tables;
咱們以我門剛剛建立的crashcourse數據庫和products表爲例:
mysql> show tables from crashcourse; +-----------------------+ | Tables_in_crashcourse | +-----------------------+ | products | +-----------------------+ 1 row in set (0.00 sec)
8: 顯示列
mysql> show columns from products; +---------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------------+--------------+------+-----+---------+-------+ | product_id | varchar(20) | NO | PRI | NULL | | | product_name | varchar(20) | NO | | NULL | | | product_price | decimal(7,2) | NO | | NULL | | | vendor_id | varchar(20) | NO | | NULL | | +---------------+--------------+------+-----+---------+-------+ 4 rows in set (0.02 sec)
至此,咱們就建立了
一個數據庫:crashcourse,
在crashcourse裏面建立了一張表:products,
給products表建立了4列:product_id,product_name, product_price, vendor_id.
可是,如今我麼們的表裏面尚未任何的數據,在下一篇文章裏,咱們來往表裏面添加數據。