操作資料庫和資料表 | MySQL(一)基礎

語言: CN / TW / HK

theme: scrolls-light

「這是我參與11月更文挑戰的第11天,活動詳情檢視:2021最後一次更文挑戰


相關文章

MySQL:MySQL系列


前言:

MySQL是一個關係型資料庫管理系統,是目前最好的 RDBMS (Relational Database Management System,關係資料庫管理系統) 應用軟體之一。 - 優點: - ①開源的資料庫軟體,關鍵是免費的! - ②體積小,速度快,總體擁有成本低,招人成本比較低。 - ③一般中小型網站的開發都選擇 MySQL 作為網站資料庫。

1、資料庫

1.1 基本的操作

1.建立資料庫 sql CREATE DATABASE IF NOT EXISTS testDataBase; 2.刪除資料庫 sql DROP DATABASE IF EXISTS testDataBase; 3.使用資料庫 sql USE school; 4.檢視資料庫 sql SHOW DATABASE;

1.2 資料庫的列型別

數值:

bash tinyint 十分小的資料 1個位元組 smallint 較小的資料 2個位元組 mediumint 中等大小 3個位元組 int 標準的整數 4個位元組(常用) bigint 較大的資料 8個位元組 float 浮點數 4個位元組 double 浮點數 8個位元組 (精度問題) decimal 字串形式的浮點數,一般用於金融計算的時候字串:

bash char 字串固定大小 0-255 varchar 可變字串 0-65535(常用) tinytext 微型文字 2^8-1 text 文字串 2^16-1 (儲存大文字)時間日期:

bash date YYYY-MM-DD,日期 time HH:mm:ss 時間格式 datetime YYYY-MM-DD HH:mm:ss 最常用的時間格式 timestamp 時間戳 1970.1.1到現在的毫秒數 year 年份表示null:

bash 沒有值,未知 注意,不要使用null進行運算,結果為null

1.3 資料庫的欄位型別

unsigened: bash 無符號的整數 宣告該列不能宣告負數zerofill: bash 0填充的 10的長度 1 – 0000000001 不足位數用0 填充

自增: bash 通常理解為自增,自動在上一條記錄的基礎上+1 通常用來設計唯一的主鍵 index,必須是整數類似 可以自定義設定主鍵自增的起始值和步長

非空 NULL not Null bash 假設設定為 not null,如何不給他賦值,就會報錯 NULL 如果不填寫,預設為NULL

預設: bash 設定預設的值!

1.4建立表

建立: ```sql --目標:建立一個schoo1資料庫 --建立學生表(列,欄位)使用SQL 建立 --學號int 登入密碼varchar(20)姓名,性別varchar(2),出生日期(datatime),家庭住址,emai1--注意點,使用英文(),表的名稱和欄位儘量使用括起來 -- AUTO_ INCREMENT 自增 --字串使用單引號括起來! --所有的語句後面加,(英文的),最後一個不用加 -- PRIMARY KEY 主鍵,一般- 一個表只有一個唯一 -的主鍵!

CREATE DATABASE school CREATE TABLE IF NOT EXISTS student ( id INT(4) NOT NULL AUTO_INCREMENT COMMENT '學號', name VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名', pwd VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密碼', sex VARCHAR(2) NOT NULL DEFAULT '男' COMMENT '性別', birthday DATETIME DEFAULT NULL COMMENT '出生日期', address VARCHAR(100) DEFAULT NULL COMMENT '家庭住址', email VARCHAR(50) DEFAULT NULL COMMENT '郵箱', PRIMARY KEY (id) )ENGINE=INNODB DEFAULT CHARSET=utf8 ``` ②格式:

sql CREATE TABLE [IF NOT EXISTS] `表名`( `欄位名` 列型別[屬性][索引][註釋], `欄位名` 列型別[屬性][索引][註釋], ... `欄位名` 列型別[屬性][索引][註釋] )[表型別][表的字符集設定][註釋] 1.5 資料表的型別

INNODB和MYISAM: | | MYISAM | INNODB | | ------------ | ------ | ---------------------- | | 事務支援 | 不支援 | 支援 | | 資料行鎖定 | 不支援 | 支援 | | 外來鍵約束 | 不支援 | 支援 | | 全文索引 | 支援 | 不支援 | | 表空間的大小 | 較小 | 較大,約為MYISAM的兩倍 |

注意的是: - 在MySQL5.6版本以後INNODB也支援了 全文檢索,但是隻支援英文的檢索。有興趣的小夥伴可以自己去了解下兩種表的型別底層儲存方式的區別,在此我不多講。 常規使用操作:

  • MYISAM 節約空間,速度較快,
  • INNODB 安全性高,事務處理,多表多使用者操作

在物理空間存在的位置:

所有的資料庫檔案都存在data目錄下,一個資料夾就對應一個數據庫

本質還是檔案的儲存

MySQL 引擎在物理檔案上的區別

  • innoDB 在資料庫表中,只有一個*.frm檔案,以及上級目錄下的ibdata1檔案
  • MYISAM 對應的檔案
  • *.frm - 表結構的定義檔案
  • *. MYD -資料檔案
  • *.MYI 索引檔案

設定資料庫字符集編碼:

```sql CHARTSET=UTF8

12 ```

不設定的話,會是mysql預設的字符集編碼-(不支援中文)

可以在my.ini中配置預設的編碼

sql character-set-server=utf8

1.5修改刪除表

修改:

```sql -- 修改表名 ALTER TABLE 舊錶面 AS 新表名 ALTER TABLE student RENAME AS student1 -- 增加表的欄位 ALTER TABLE 表名 ADD 欄位名 列屬性 ALTER TABLE student1 ADD age INT(11) -- 修改表的欄位(重新命名,修改約束) ALTER TABLE student1 MODIFY age VARCHAR(11) -- 修改約束 ALTER TABLE student1 CHANGE age age1 INT(1) -- 欄位重新命名

-- 刪除表的欄位 ALTER TABLE student1 DROP age1 ```

刪除:

sql -- 刪除表 DROP TABLE IF EXISTS student1

所有的建立和刪除操作儘量加上判斷,以免報錯

注意點:

  • `` 欄位名,使用這個包裹
  • 註釋 – /**/
  • sql 關鍵字大小寫不敏感,建議寫小寫
  • 所有的符號全部用英文

路漫漫其修遠兮,吾必將上下求索~

如果你認為i博主寫的不錯!寫作不易,請點贊、關注、評論給博主一個鼓勵吧~hahah