MySQL學習日記

2021-08-17 19:52:35 字數 3765 閱讀 2493

time:2018.3.29 01:34

設定嚮導檔案位於c:/program files/mysql/bin/mysqlinstanceconfig.exe

可以用它來對mysql進行一些設定

mysql預設埠號:3306

mysql中超級使用者:root

mysql配置檔案

編輯資料表的預設儲存引擎

default-storage-engine=innodb

select version(); // 用於顯示當前伺服器版本

select now(); // 用於顯示當前日期時間

select user(); //用於顯示當前使用者

整型

tinyint     1個位元組

smallint 2個位元組

mediumint 3個位元組

int 4個位元組

bigint 8個位元組

浮點型
float

double

日期時間型
year

time

date

datetime

timestamp

字元型
char(m)        m位元組        定長型別,不足補齊

varchar(m) l+1個位元組 變長型別

tinytext l+1個位元組 l<2^8

text l+2個位元組 l<2^16

mediumtext l+3個位元組 l<2^24

longtext l+4個位元組 l<2^32

enum('value1','value2',...) 1或者2個位元組,取決於列舉值個數

set('value1','value2',...) 1,2,3,4或8個位元組,取決於set成員數目

use命令
- 開啟資料庫

- use 資料庫名稱;

建立資料表
create table [if not exists] table_name(

column_name data_type,

...);

自動編號

auto_increment

- 自動編號,且必須與主鍵組合使用(自動編號的一定要為主鍵)

- 預設情況下,初始值為1,每次增加1

非空約束

null / not null

- null,字段值可以為空

- not null,字段值禁止為空

- 類似unsigned的用法,在後面寫

主鍵約束

primary key

- 主鍵約束

- 每張資料表只能有乙個主鍵

- 主鍵保證記錄的唯一性(值不允許相同)

- 主鍵自動為not null

唯一約束

unique key

- 唯一約束

- 唯一約束可保證記錄的唯一性

- 唯一約束的字段可以為空值(null)

- 每張資料表可以存在多個唯一約束

預設約束

default

- 預設值

- 當插入記錄時,如果沒有明確為字段賦值,則自動賦予預設值

- 後面緊跟預設值

外來鍵約束

foreign key

保持資料一致性,完整性

實現一對一或一對多關係

外來鍵約束的要求

1. 父表和子表必須使用相同的儲存引擎,而且禁止使用臨時表。

2. 資料表的儲存引擎只能為innodb。

3. 外來鍵列和參照列必須具有相似的資料型別。其中數字的長度或是否有符號位必須相同;而字元的長度則可以不同。

4. 外來鍵列和參照列必須建立索引。如果外來鍵列不存在索引的話,mysql將自動建立索引。

外來鍵約束的參照操作

1. cascade: 從父表刪除或更新且自動刪除或更新子表中匹配的行

2. set null: 從父表刪除或更新行,並設定子表的外來鍵列為null,如果使用該選項,必須保證子表沒有指定not null

3. restrict: 拒絕對父表的刪除或更新操作

4. no action: 標準sql的關鍵字,在mysql中與restrict相同

表級與列級約束

對乙個資料列建立的約束,稱為列級約束

對多個資料列建立的約束,稱為表級約束

列級約束既可以在列定義時宣告,也可以在列定義後宣告

表級約束只能在列定義後宣告

show tables

- 檢視資料表列表

- show tables [from db_name] [like 'pattern' | where expr];

show columns
- 檢視資料表結構

- show columns from tbl_name;

insert
- 插入記錄

- insert [into] tbl_name [(col_name,...)] values(val,...);

select
- 記錄查詢

- select expr,...from tbl_name;

修改列
新增一列

alter table tbl_name add [column] col_name column_definition [first | after col_name];

新增多列

alter table tbl_name add [column] (col_name column_definition,...);

刪除列alter table tbl_name drop [column] col_name;

(要刪除多列的話,在後面加,drop [column] col_name,...)

新增約束
新增主鍵約束

alter table tbl_name add [constraint [symbol]] primary key [index_type] (index_col_name,...);

新增唯一約束

alter table tbl_name add [constraint [symbol]] unique [index | key] [index_name] [index_type] (index_col_name,...);

新增外來鍵約束

alter table tbl_name add [constraint [symbol]] foreign key [index_name] (index_col_name,...) reference_definition;

新增/刪除預設約束

alter table tbl_name alter [column] col_name

Mysql學習日記

今天在csdn看到了乙個笑話,是這麼寫的 程式猿的讀書歷程 x語言入門 x語言應用實踐 x語言高階程式設計 x語言的科學與藝術 程式設計之美 程式設計之道 程式設計之禪 頸椎病 指南。然後我默默看了看書架,任重而道遠啊,感覺自己還要努力,爭取早日讀到勁椎病 指南 今天花時間複習了mysql的列資料型...

MySQL 學習日記 二

我只是將文件裡的一些東西寫了下來,我的學習參考也是在網上找的乙個中文文件,有人需要的話可以去提 mysql 中的一些特殊處理 select from where item 等價於strings query select from where item include using namespace ...

mysql學習日記之索引

在mysql資料庫中,資料的查詢是我們經常用到的操作。在查詢的時候,我們經常是根據一些條件進行過濾而不是把所有的記錄都查詢出來,當乙個表中的記錄很多的時候,有時候我們查詢一條記錄可能需要遍歷整張表,這樣效率是非常低下的,建立索引可以有效提高查詢效率。簡單的分,索引可以分為單列索引和組合索引 單列索引...