數據庫和表操作
一.庫操作
1.創建庫
create database 庫名[charset utf8]; 創建庫[字符集為utf8] 默認為utf8
2.查看庫
show databases; 查看所有庫
show create database 庫名; 查看某個庫的創建信息
select database(); 查看當前操作的數據庫名
3.刪除庫
drop database 庫名; 刪除某個庫
4.修改庫
alter database 庫名 charset utf8; 修改庫的字符集為utf8
二.mysql的存儲引擎
1.innoDB引擎
特點:1.支持事務
2.行級鎖定
3.讀寫阻塞與事務隔離級別有關
4.高效緩存(索引和數據)
5.支持外鍵約束
2.MyISAM引擎
特點:1.不支持事務
2.表級鎖定
3.讀寫互相阻塞
4.只能緩存索引
5.不支持外鍵約束
三.SQL的數據類型
1.數值類型
2.日期類型
year YYYY
data YYYY-mm-dd
time HH:MM:SS
datatime YY-mm-dd HH:MM:SS
timestamp YYmmdd HHMMSS
3.字符串類型
char 定長字符串
varchar 不定長字符串
4.枚舉和集合類型
enum("a","b","c") 單選
eg :
create table shirts(name char(20) , size enum("xxl","xl");
insert into shirts(name,size) values ("dress shirt","xxl"),("T-shirt,"xl");
set("a","b","c") 多選
eg:
create table myset (col set("a","b","c","d"));
insert into myset (col) values("a,b"),("a","b","c")
四.完整性約束
1.空和默認值
not null 不能為空,如果不約束默認為能為空
default 默認值
2.唯一,可以加速查詢
unique 約束字段名必須唯一
unique(字段名1,字段名2) 聯合唯一
3.主鍵
primary key 主鍵,不能為空且唯一,一張表必須有且只有一個主鍵
primary key(字段名1,字段名2) 聯合主鍵
4.自動增長(用於主鍵)
auto_increment 約束字段為自動增長
5.外鍵
foreign key 外鍵,標明表和表之間的關系
foreign key (字段名) references 表名(字段名) [on update cascade on delete cascade]
五.表操作
1.創建表
create table 表名(字段名1,類型[(寬度) 約束條件],
字段名2,類型[(寬度) 約束條件]);
2.查看表結構
describe 表名; 查看表結構
show create table 表名\G; 查看表詳細結構
3.修改表 alter table
1.修改表名
alter table 表名 rename 新表名
2.增加字段
alter table 表名 add 字段名 類型[(寬度) 約束條件 位置];
3.刪除字段
alter table 表名 drop 字段名;
4.修改字段
alter table 表名 modify 字段名 類型 [約束條件];
alter table 表名 change 舊字段名 新字段名 舊數據類型 [約束條件]; 可以想改就改
5.增加外鍵
alter table 表名 add foreign key (字段名) references 表名(字段名);
6.增加主鍵[自動增長]
alter table 表名 modify 字段名 類型 primary key [auto_increment];
數據庫和表操作