1. 程式人生 > >mysql實操總結(基礎篇-上)

mysql實操總結(基礎篇-上)

基礎篇--SQL介紹及MySQL安裝
一、結構化查詢語句(Structured Query Language)簡稱SQL
1)啟動MySQL:
$sudo service mysql start
$mysql -u root

2)檢視資料庫:
mysql > show databases;

3)連線資料庫:
mysql > USE <資料庫名>;

4)查看錶:
mysql > SHOW TABLES;

5)退出:
使用quit或exit退出MySQL

基礎篇--建立資料庫並插入資料
1)新建資料庫:
mysql > CREATE DATABASE <資料庫名>;

2)新建資料表:
mysql > CREATE TABLE 表的名字
(列名a資料型別  (資料長度)
列名b資料型別  (資料長度)
列名c資料型別  (資料長度));

3)資料型別:
資料型別大小(位元組)用途格式
INT4整數
FLOAT4單精度浮點數
DOUBLE8雙精度浮點數
ENUM單選(比如性別)ENUM('A', 'B', 'C')
SET多選SET('1', '2', '3')
DATE3日期YYYY-MM-DD
TIME3時間點或持續時間HH:MM:SS
YEAR1年份值YYYY
CHAR0~255定長字串
VARCHAR0~255變長字串
TEXT0~65535長文字資料

4)插入資料:
mysql > INSERT INTO 表的名字 (列名a, 列名b, 列名c) VALUES (值1, 值2, 值3);

基礎篇--SQL的約束
1)約束分類:
約束型別主鍵預設值唯一外來鍵非空
關鍵字PRIMARY KEYDEFAULTUNIQUEFOREIGN KEYNOT NULL

2)載入資料.sql
mysql > source /home/shiyanlou/Desktop/SQL3/MySQL-03-01.sql

3)主鍵(PRIMARY KEY):
主鍵是用來約束表中的一行,作為這一行的唯一識別符號,在一張表中通過主鍵就能準確定位到一行。主鍵不能重複且不能為空。
主鍵建立方式1:
CREATE TABLE employee (
id INT(10) PRIMARY KEY,
name CHAR(20) );

主鍵建立方式2:
people_num INT(10) DEFAULT,
CONSTRAINT dpt_pk PRIMARY KEY (dpt_name)其中:dpt_pk(主鍵名(自定義))

主鍵建立方式3:
CONSTRAINT proj_pk PRIMARY KEY (proj_num, proj_name)其中:dpt_pk(主鍵名(自定義))、((proj_num, proj_name)為複合主鍵)

4)預設值約束(DEFAULT):
當有DEFAULT約束的列,插入資料為空時,將使用預設值。
people_num INT(10) DEFAULT '10',注:people_num有DEFAULT約束,預設值為10

4.1.正常插入數值:
INSERT INTO department(dpt_num, people_num) VALUES ('dpt1', 11);

4.2.people_num為空,使用預設值:
INSERT INTO department(dpt_num) VALUES ('dpt2);

5)唯一約束(UNIQUE):
它規定一張表中指定的一列的值必須不能有重複值,即這一列每個值都是唯一的。
UNIQUE(phone), 這裡有UNIQUE約束,phone的值唯一
當INSERT語句新插入的資料和已有資料重複的時候,如果有UNIQUE約束,則INSERT失效。

6)外來鍵約束(FOREIGN KEY):
外來鍵既能確保資料完整性,也能表現表之間的關係。一張表可以有多個外來鍵,每個外來鍵必須REFERENCES(參考)另一張表的主鍵,被外來鍵約束的列,取值必須在它參考的列中有對應值。
CONSTRAINT emp_fk FOREIGNKEY(in_dpt) REFERENCES department(dpt_name)注:emp_fk(外來鍵名(自定義))、in_dpt(外來鍵)、department(dpt_name)--參考列為department表的dpt_name列

在INSERT時,如果被外來鍵約束的值沒有在參考列中有對應,如參考列(department表的dpt_name)中沒有dpt3,則INSERT失敗。
INSERT INTO employee VALUES (02, 'Jack', 30, 3500, 'dpt3');

7)非空約束(NOT NULL):
被非空約束的列,在插入值時必須非空。