MySQL 基礎學習全解(一)

2021-09-26 18:13:26 字數 3275 閱讀 5930

1、介紹

資料庫模型

·層次模型

·網狀模型

·關係模型

主流關聯式資料庫

·商用資料庫,例如:oracle,sql server,db2等;

·開源資料庫,例如:mysql,postgresql等;

·桌面資料庫,以微軟access為代表,適合桌面應用程式使用;

·嵌入式資料庫,以sqlite為代表,適合手機應用和桌面程式。

基本的sql命令

使用規則

每條sql命令以分號結尾,不區分字母大小寫。

庫的管理

① 庫的基本操作

檢視已有庫: show databases

建立新庫: create database + 庫名 + 指定字符集(charset=utf8);

檢視建立庫: show create database 庫名;

檢視當前所在庫: select database();

切換庫: use 庫名;

檢視庫中已有的表: show tables;

刪除庫: drop database 庫名;

表的管理

① 表的基本操作

建立表: create table 表名(欄位名 資料型別;欄位名 資料型別 …);

檢視建立表的語句:show create table 表名;

檢視表結構: desc 表名;

刪除表名: drop table 表名;

② 表記錄管理

在表中插入記錄:

語法: insert into 表名 values (值1),(值2),(值3)…

指定字段插入:insert into 表名 (欄位名列表) values (值1),(值2),(值3)…

查詢表記錄:

select * from 表名; (表中所有資料都顯示出來)

select 欄位名1,欄位名2,欄位名3 from 表名;(查詢指定欄位名)

表字段操作:

新增字段:alter table 表名 add 欄位名 資料型別;(預設加在最後一列,如果加了first 就是加在第一列,affter+給定欄位則是加在給定字段之後)

刪除乙個字段:

alter table 表名 drop 欄位名;

修改字段資料型別:

alter table 表名 modify 欄位名 新資料型別;

#修改的資料型別會受到表中原始資料的限制;

修改欄位名:

alter table 表名 change 欄位名 new(欄位名);

資料型別

mysql資料庫支援:整形,浮點型,字元型,時間型別,列舉型別,集合型別

整形:

型別:

tinyint:1位元組 -128~127

smallint:2位元組

mediumint:3位元組

int:4位元組 -2147483648~2147483647

bigint:8位元組

約束:unsigned:無符號

zerofill:0填充

不同型別所佔位元組數不一樣,決定所佔空間及存放資料的大小限制

浮點型

型別:

float:4位元組, 3.4e -38~3.4e+38

double:8位元組,1.7e-308~1.7e+308

decimal: m,d 大值基礎上+2

寬度:限制儲存寬度

(m,d)=>m為位數,d為小數字

float(255,30):精度最低,最常用

double(255,30):精度高,佔位多

decimal(65,30):字串存,全精度

字元型

型別:

char:定長

varchar:不定長

寬度:限制儲存寬度

char(4):以4個字元儲存以char屬性儲存的資料

varchar(4):資料長度決定字元長度,為可變長度儲存資料

兩者特點:

char: 浪費儲存空間,但是效能高;

varchar:節省儲存空間,但是效能低。

時間型別:

型別:

year:yyyy(1901/2155)

date:yyyy-mm-dd(1000-01-01/9999-12-31)

time:hh:mm:ss

datetime:yyyy-mm-dd hh-mm-ss(1970-01-01 00:00:00/2308-01-19 (具體幾點不知道))

列舉與集合

型別:

enum:單選

set:多選

約束條件

primary key:主鍵,唯一標識,表都會擁有,不設定為預設找第乙個 不空,唯一字段;為標識則建立隱藏字段

foreing key:外來鍵

unique key:唯一性資料, 該條欄位的值需要保證唯一,不能重複

auto_increment:自增,只能加給key欄位輔助修飾

not null:不為空

default:預設值

unsigned:無符號

zerofill:0填充注:

1.鍵可以提高資料的訪問效率,提高io

2.聯合唯一

create table web (

ip char(16),

port int,

unique(ip,port)

);3.聯合主鍵

create table web (

ip char(16),

port int,

primary key(ip,port)

);

mysql索引全解 MySQL索引詳解

概述 索引的本質就是幫助mysql高效獲資料排序的資料結構 mysql索引引擎主要包括innodb和myisam。根據索引節點是否包括資料,又區分為聚簇索引和非聚簇索引。本文將詳細講解mysql索引底層實現及相關注意事項。索引資料結構 索引是排序好的資料結構,目的是幫助加快資料檢索過程。有很多資料結...

mysql索引全解 mysql索引詳解

一 索引方法 mysql目前主要有以下幾種索引型別 fulltext,hash,btree,rtree。1.fulltext 即為全文索引,目前只有myisam引擎支援。其可以在create table alter table create index 使用,不過目前只有 char varchar ...

Linux基礎學習(全)

使用的linux發行版本為redhat 1.linux redhat 基礎學習 命令列使用入門 2.linux redhat 基礎學習 檔案定址與管理 3.linux radhat 基礎學習 vim編輯器及檔案的輸入輸出 4.linux radhat 基礎學習 使用者管理 5.linux radha...