數據庫mysql基礎(一)
目錄
一、MySql簡介
MySQL是一個關係型數據庫管理系統,由瑞典MySQL AB 公司開發,屬於Oracle旗下產品。MySQL 是最流行的關係型數據庫管理系統之一,在 WEB 應用方面,MySQL是最好的RDBMS(Relational Database Management System,關係數據庫管理系統) 應用軟件之一。
MySQL使用的SQL語言是訪問數據庫最常用的標準化語言。MySQL軟件分爲社區版和商業版,採用雙重授權策略,一般選擇MySQL作爲中小型網站開發的網站數據庫。
二、MySql的特點
1.MySQL性能優異,服務穩定,異常停機次數少。
2.MySQL源代碼開放,無版權限制,自治性和使用成本低。
3.MySQL歷史悠久,用戶活躍,如果有問題可以求助。
4.MySQL體積小,易於安裝和維護。
5.MySQL有很好的口碑效應,企業不需要考慮就可以用,Lamp和LMP是比較流行的架構。
MySQL支持多種操作系統,提供多種API接口,支持多種開發語言,特別是PHP。
三、MySQL術語
數據庫 | 數據庫是一些關聯表的集合 |
數據表 | 表是數據的矩陣,在一個數據庫中的表看起來像一個簡單的電子表格 |
列 | 一列(數據元素) 包含了相同類型的數據, 例如郵政編碼的數據 |
行 | 一行(=元組,或記錄)是一組相關的數據,例如一條用戶訂閱的數據 |
冗餘 | 存儲兩倍數據,冗餘降低了性能,但提高了數據的安全性 |
主鍵 | 主鍵是唯一的。一個數據表中只能包含一個主鍵。你可以使用主鍵來查詢數據 |
外鍵 | 外鍵用於關聯兩個表 |
複合鍵 | 複合鍵(組合鍵)將多個列作爲一個索引鍵,一般用於複合索引 |
索引 | 使用索引可快速訪問數據庫表中的特定信息。索引是對數據庫表中一列或多列的值進行排序的一種結構。類似於書籍的目錄 |
參照完整性 | 參照的完整性要求關係中不允許引用不存在的實體。與實體完整性是關係模型必須滿足的完整性約束條件,目的是保證數據的一致性 |
四、數據庫的使用以及創建
1.關係型數據庫系統支持三級模式結構,其模式、外模式、和內模式中的基本對象有模式、表、視圖和索引等。
操作對象 | 操作方式 | ||
創建 | 刪除 | 修改 | |
模式 | create schema | drop schema | 無 |
表 | create table | drop table | alter table |
視圖 | create view | drop view | 無 |
索引 | create index | drop index | alter index |
2.模式的創建和刪除
(1).創建模式
mysql> create schema ccc;
(2).刪除模式
mysql> drop schema people;
3.表的創建以及增刪查改
(1).創建表
mysql> create table people(
-> id char(20) primary key,
-> name char(4),
-> age smallint,
-> sex boolean);
primary key是主鍵。
數據類型 | 含義 |
---|---|
char(n),character(n) | 長度爲n的定長字符串 |
vchar(n),charactervarying(n) | 最大長度爲n的變長字符串 |
clob | 字符串大對象 |
blob | 二進制大對象 |
int,integer | 長整型(4字節) |
smallint | 短整型(2字節) |
bigint |
大整型(8字節) |
numeric(p,d) | 定點數,有p位數字(不包括符號、小數點)組成,小數點後有d位數字 |
decimal(pd),dec(p,d) | 同numeric |
real | 取決於機器精度的單精度浮點數 |
double precision | 取決於機器精度的雙精度浮點數 |
float(n) | 可選精度的浮點數,精度至少爲n位 |
boolean | 邏輯布爾值 |
date | 日期,包含年、月、日,格式爲YYYY-MM-DD |
time | 時間,包含時、分、秒,格式爲HH:MM:SS |
timestamp | 時間戳類型 |
interval | 時間間隔類型 |
(2)向表格插入數據
mysql> insert into people(id,name,age,sex) values ('001','張三',19,0);
如果插入出現錯誤Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'student_name' at row 1,有可能是編碼錯誤,可以嘗試,輸入以下代碼
mysql> set names gbk;
(3)查詢表格中的數據
①全部查詢
mysql> select * from people;
*號代表查詢表名爲people的表中的所有信息。
+-----+------+------+------+
| id | name | age | sex |
+-----+------+------+------+
| 001 | 張三 | 19 | 0 |
+-----+------+------+------+
②部分查詢
mysql> select id,name from people;
+-----+------+
| id | name |
+-----+------+
| 001 | 張三 |
+-----+------+
當然,也可以通過上述方法來查詢全部信息,前提是你要知道所有列名
mysql> select id,name,age,sex from people;
+-----+------+------+------+
| id | name | age | sex |
+-----+------+------+------+
| 001 | 張三 | 19 | 0 |
+-----+------+------+------+
(4)修改表中的數據
mysql> update people set age=20 where id='001';
修改之後,如下
+-----+------+------+------+
| id | name | age | sex |
+-----+------+------+------+
| 001 | 張三 | 20 | 0 |
+-----+------+------+------+
(5)刪除表格數據
①刪除部分數據
之前數據,如下
+-----+------+------+------+
| id | name | age | sex |
+-----+------+------+------+
| 001 | 張三 | 19 | 0 |
| 002 | 李四 | 20 | 0 |
mysql> delete from people where id='002';
刪除之後的數據,如下
+-----+------+------+------+
| id | name | age | sex |
+-----+------+------+------+
| 001 | 張三 | 19 | 0 |
+-----+------+------+------+
②刪除全部數據
mysql> delete from people;
刪除之後,查詢的表爲空表
mysql> select * from people;
Empty set (0.00 sec)
刪掉表之後,一定要跑路,跑慢了後果會很嚴重
這一篇博客主要寫的就是MySql操作的一些基礎知識,能滿足日常的操作,之後我會持續更新對MySQL的其他操作。
最後的最後,我再推薦一個可視化的數據庫管理工具Navicat Premium,Navicat Premium是以直覺化的圖形用戶界面而建的,讓你可以以安全並且簡單的方式創建、組織、訪問並共用信息。Navicat Premium是一個可多重連接的數據庫管理工具,它可讓你以單一程序同時連接。可以連接多種數據庫,操作簡單。