mysql的軟體架構
1.開啟mysql伺服器:以windows服務的形式開啟,在cmd下net startmysql|net stop mysql,在cmd下使用mysqld –default-file= 「d:/amp/mysql/my.ini」
2.連線mysql伺服器
3.mysql的幫助命令,help,裡面的指令都可以使用 \字母 來完成
4.mysql的注釋符:行注釋:#或-- ,塊注釋是/* */
資料庫的操作
建立資料庫:create database 庫名[庫選項];
檢視資料庫:show databases; show createdatabase 庫名;
刪除資料庫:drop database [if exists] 庫名
修改資料庫:只能修改庫選項;alter database 庫名新的庫選項
資料表操作
選擇資料庫:顯式的選擇,在表名的前面加上庫名;隱式的選擇,use 庫名;
建立資料表:create table 表名(字段列表)[表選項];
檢視資料表:show tables; show createtable 表名; describe|desc 表名;
修改資料表:
1修改表名:altertable 表名 rename to 新錶名; rename table 舊表名 to 新錶名
2修改列定義:
增加一列:alter table 表名 add 新字段名字段型別;
刪除一列:alter table 表名 drop 欄位名;
修改字段型別:alter table 表名 modify 欄位名新的字段型別
修改字段排序:alter table 表名 modify 欄位名1 新的字段型別
first|after 欄位名2
重新命名字段:alter table 表名 change 舊欄位名新欄位名 新字段型別
3修改表選項:altertable 表名新的表選項(default charset gbk engine myisam)
資料操作
插入資料:insert into 表名(字段列表)values(值列表)
檢視資料:select *|字段列表 from 表名 [where查詢條件]
刪除資料:delete from 表名[where刪除條件]
修改資料:update 表名 set 欄位1=新值1,欄位2=新值2……[where修改條件]
數值型別
1.整數:tinyint,smallint, mediumint,int,bigint
2.小數:
a.浮點數float/double
b.定點數:decimal,也叫貨幣型
日期時間型
datetime和timestamp
date
time:時間間隔|一天中的時間
year:70以後的代表19xx,69及69以前的代表20xx
字串型別
char和varchar
1. 都需要指定字元的長度,char中的長度是字元的長度,而varchar的長度是位元組的長度
2. char中指定的長度就是實際占用的長度,而varchar指定的長度只是乙個範圍,所以varchar還要拿1-2個位元組儲存該字串到底有多少個位元組,並且varchar中能夠實際儲存的字元跟編碼有關(utf8編碼20000多,gbk編碼30000多)
3. varchar對儲存空間的占用更靈活,但是char的效率更高
4.如果字串的長度是固定已知的,就用char,如果字串的長度是可變的,就用varchar
b.text:文字型別,使用起來類似於varchar,只不過這裡不需要指定長度,其中longtext認為文字沒有限制
c.enum:列舉型別,類似於單選!實際儲存的是原選項的位置,位置用1,2,3,4來代替,理論上最多可以表示65535個選項
d.set:集合型別,類似於多選!實際儲存的是也原選擇的位置,位置用1,2,4,8來代替,然後把所有選項的位置相加,理論上最多可以表示64個多選項
e.binary、varbinary、blob:二進位制文字型別,就是位元組流的char、varchar和text,在實際的專案中,很少使用
二,列屬性
null|not null,預設值是null,也就是允許為空,如果是notnull而又沒有給該字段賦值的話,系統會首先查詢該欄位有沒有預設值
default:給乙個字段乙個預設值,如果沒有給該字段填充資料,就用該預設值來代替,通常就是配合not null一起使用
primary key:主鍵,唯一可區別其他記錄的字段,乙個表中只能有乙個主鍵,也可以很多個字段組合成乙個組合主鍵,而且不允許為空!
unique key:唯一鍵,與主鍵的區別是唯一鍵可以有很多個,而且允許為空
auto_increment:自動增長,使用這個屬性有兩個條件,第一該欄位必須為整型,第二該欄位必須存在索引,通常就是配合主鍵一起使用,也可以通過修改表選項設定自動增長的預設初始值
comment:列注釋
三,索引
索引的本質就是在「原始表」的基礎之上根據某個或某些字段進行排序後的「內建表」
索引的最大優勢可以極大的提高查詢速度
在提高查詢速度的同時也降低了增刪改的速度
四,實體與實體關係
一對一:主要用來做資料表的優化(垂直分割)
一對多:在多的那一方增加乙個字段,用於指向1的那一方
多對多:增加乙個中間表,就是將乙個多對多的關係拆分成兩個一對多的關係
五,外來鍵
只有innodb儲存引擎才可以使用
關鍵字:foreign key
級聯操作:主表更新onupdate[級聯操作],主表刪除:語法形式為:on delete[級聯操作]。cascade:同步操作,set null:設定為null,restrict:拒絕主表的更新或刪除
定義方式:foreignkey(本表欄位名) references 父表(主鍵) on delete[cascade|set null|restrict] on update [cascade|setnull|restrict]
六,正規化
1第一正規化:要求把各種資料設計成乙個乙個的字段,不能再分
2第二正規化:在滿足第一正規化的基礎之上,表中的一行都具有唯一的可以區分的特性;不能有部分依賴
3第三正規化:在滿足第二正規化的基礎之上,消除傳遞依賴
uma是什麼意思 UMA是什麼意思?
展開全部 uma 不明生物 是636f707962616964757a686964616f31333431376537動畫 進化戰記 betterman 中的一類人造怪物的統稱,是生命工學食料研究所 b.p.l.所長梅崎博士製造出來 協助他利用阿尼瑪斯之花 大量製造蛋白質 具有驚人攻擊性的怪物。阿拉...
是什麼意思?
meta是html中的元標籤,其中包含了對應html的相關資訊,客戶端瀏覽器或伺服器端的程式會根據這些資訊進行處理。http equiv類似於http的頭部協議,它回應給瀏覽器一些有用的資訊,以幫助正確和精確地顯示網頁內容。content 內容型別 重要!這個網頁的格式是文字的,網頁模式 chars...
In 是什麼意思
函式引數型別前 in 代表什麼 在visual c 中屬於sal批註,是為了編譯系統在分析 時發現缺陷用的 表示是乙個輸入引數。可以定義乙個 in 的巨集,這個巨集什麼都不做,就是形如這樣的。define in void fun int in x 等同於 void fun int x 但是他給出了引...