1.數據庫分類
1)關系型數據庫
特點:有約束,是基於硬盤存儲的
關系型數據庫有 mysql oracle sqlserver sqllite db2
2)非關系型數據庫
特點: 沒有約束,是基於內存存儲的
非關系型數據庫有:Memcache,redis,mongodb
2.mysql的架構
客戶端: socket客戶端連接服務器,發送指令(sql語句)
服務端:socket服務端,接收客戶端的指令,並將結果返回給客戶端
3.數據庫的操作
1.數據庫:
增:create dabase 數據庫名稱
刪:drop database 數據庫名稱
查 :show databases;
選擇用:use 數據名稱
show tables;查看數據表
2.數據表:
增: create table 表名(
列名 屬性
)engine-innnodb charset=utf8;
刪: drop table 表名;
修改字段: alter table 表名 change 原列名 新列名 not null default ' ';
新增字段: alter table 表名 add 新列名 char(32) not null default ' ';
新增外鍵:alter table 表名 add constraint 外鍵名稱 foreign key (id) references 表名;
刪除字段: alter table 表名 drop 列名
查: select 列名 from 表名
3.數據行:
增: insert into 表名 (列名) values(列名值); 列名值一定要跟列名一一對應
刪: delete from 表名 where id = 表id 將表中的數據刪除后id會續上一個id,delete是一行一行的刪
truncate 表名; 將表中所有的數據全部刪除,再次添加的時候,id會重新開始,truncate是一次性全部刪除,效率高
改: update 表名 set 列名= 列名值;
查: select 列名, 列名, 列名 from t3 : 將某一列的值查出
4.外鍵: constraint 外鍵名 foreign key(列名) references 表名 (關聯的id)
5.主鍵和其它參數:
primary key: 主鍵索引
auto_increment:自增
not null :不為空
default : 默認值
7.列表類型:
數值型:
tyinyint:有符號: -128到 127
無符號:0到255 unsigned
mediumint:有符號: --8388608到 8388607
無符號:0 到16777215 unsignd
int
bigint
float(M,D) 浮點型
decimal (M,D) 定點型 比float 更加的精准
M:小數點共多少位
D: 小數點后面幾位
區別:取值范圍不一樣
smallint: 有符號: -32768到 32767
無符號: 0到65535 unsigned
字符串類型 :
char : 定長 char(32) 這一列就是32個字節 優點:查詢速度快,缺點:浪費
varchar :變長,在指定的長度上繼續擴充字節,優點:不浪費空間, 缺點:查詢慢
text: 文本類型,用來存儲超長的文本,一次可以存儲幾萬文字
時間類型:
datetime:時間類型 推薦使用