連接數(shù)據(jù)庫
host :主機(jī) -h
username :用戶名 -u
password :密碼 -p
port:端口 -P
例:
//連接本地 -h 可以省略莱坎,如果連接3306端口可以省略
mysql -h127.0.0.1 -P3306 -uroot -proot;
創(chuàng)建表
create table [if not exists] 表名(
字段名 數(shù)據(jù)類型 [null | not null] [auto_increment] [primary key] [comment]
字段名 數(shù)據(jù)類型 [default]
)engine = 存儲引擎
例:
set names gbk;
create table if not exists stu(
id int auto_increment primary key comment `主鍵`,
name varchar(20) not null,
address varchar(100) default `地址不詳`
) engine = innodb;
- 查看創(chuàng)建表
show create table 表名;
- 查看表結(jié)構(gòu)
desc 表名;
- 刪除表
drop table [if exists] 表1 ,表2...;
- 修改表
alter table 表名;
1.添加字段
//[位置] 有兩個關(guān)鍵字 first 或者 after 表名
alter table 表名 add [column] 字段名 數(shù)據(jù)類型 [位置];
2.刪除字段
alter table 表名 drop [column] 字段名;
3.修改字段
//既改字段名 又改字段類型
alter table 表名 change 原字段名 新字段名 數(shù)據(jù)類型;
//僅改字段類型
alter table 表名 modify 字段名 數(shù)據(jù)類型;
- 插入數(shù)據(jù)
//1.數(shù)據(jù)庫中沒有字符串概念 不能出現(xiàn)雙引號
//2.字段順序可以任意調(diào)整 但是values中必須要和字段對應(yīng)
//3.可以插入部分字段 但是非空字段必須插入
//4.自動增長字段可以不插入
//5.如果插入所有字段吕粹,并且值和表的字段一一對應(yīng)丽惭,那么字段可以省略
//5.如果省略字段,那么自動增長值可以插入null
//6.如果想插入某個字段的默認(rèn)值拍谐,值可以使用defaule關(guān)鍵字
//7.一次性插入多條數(shù)據(jù)時烛缔,values后面跟多個()用逗號隔開
insert into 表名 [(字段名 , 字段名...)] values (值1轩拨,值2...),(值1践瓷,值2...);
- 更新數(shù)據(jù)
//1.修改多個字段時,set 字段=值亡蓉,字段=值
//2.如果不加where時晕翠,會更新所有數(shù)據(jù)
update 表名 set 字段 = 值 [where 條件];
- 刪除數(shù)據(jù)
delete from 表名 [where 條件]砍濒;
- 清空表
//1.delete from 表名;是一條條遍歷淋肾,一條條刪除,新插入的數(shù)據(jù)自動增長字段繼續(xù)累加
//2. truncate是刪除表爸邢,重新重建表樊卓,新插入的數(shù)據(jù)自動增長字段從1開始
truncate table 表名 ;
- 查詢數(shù)據(jù)
//星號代表所有列
select 列名 from 表名甲棍;
- 復(fù)制表
//從表名2復(fù)制數(shù)據(jù)到表1 不復(fù)制表信息(例如主鍵)
create table 表名1 select 列名 from 表名2;
//按照表2的表信息創(chuàng)建表1简识,不復(fù)制數(shù)據(jù)
create table 表名1 like 表名2;
- 數(shù)據(jù)類型
整型 | 字節(jié) |
---|---|
tinyint [unsigned] | 1 |
smallint [unsigned] | 2 |
mediumint [unsigned] | 3 |
int [unsigned] | 4 |
bigint [unsigned] | 8 |
create table stu (
id int(5),
age int(5) zerofill #如果age沒超過5位,填充前導(dǎo)0
);
浮點(diǎn)型 | 字節(jié) |
---|---|
float [unsigned] | 4 |
double [unsigned] | 8 |
浮點(diǎn)數(shù)在數(shù)據(jù)庫內(nèi)保存的近似值
浮點(diǎn)數(shù)聲明:float(M,D) ,double(M,D)
M:總位數(shù)
D:小數(shù)位數(shù)
定點(diǎn)型 | 字節(jié) |
---|---|
decimal [unsigned] | 不知道(拆分為兩個數(shù)存儲) |
定點(diǎn)數(shù)會將小數(shù)拆分為兩個數(shù)存儲
浮點(diǎn)數(shù)聲明:decimal(M,D)
M:總位數(shù)
D:小數(shù)位數(shù)
字符型 | 描述 |
---|---|
char(長度) | 定長 |
varchar(長度) | 變長 |
tinytext | 大段文本 |
text | 大段文本 |
mediumtext | 大段文本 |
longtext | 大段文本 |
char(長度)感猛,varchar(長度) 定長和變長都不能超過后面的長度
枚舉型 | 描述 |
---|---|
enum | 只能插入列舉的值 |
create table stu(
name varchar(20),
sex enum('男','女')
);
- 時間
時間類型型 | 描述 |
---|---|
datetime | 占用8字節(jié) 范圍: 1~9999 年 格式: 年-月-日 時:分:秒
|
date | 占用3字節(jié) |
time | 時間七扰, 占用3字節(jié) 格式: 天 時:分:秒 或時:分:秒 范圍: -838:59:59 ~ 838:59:59
|
timestamp | 時間戳,占用4字節(jié) 范圍: 1970-1-1 0:0:0 ~ 2038-1-19 11:14:07
|
year | 年份陪白,占用1字節(jié) |
- 列表屬性
關(guān)鍵字 | 描述 |
---|---|
null / not null | |
default | |
auto_increment | 1.從1開始增長颈走,自動增長都是無符號整數(shù) 2.auto_increment的必須是主鍵,但是主鍵不一定自動增長 |
primary key | 1.主鍵不允許重復(fù)咱士,不能為null 2.一個表還能有一個主鍵立由,主鍵可以由多個字段組成 |
unique [key] | 1.不能重復(fù)可以為空 2.一個表可以有多個唯一鍵 |
comment | 注釋 |
主鍵添加方式:
1.方法1
create table stu (
id int primary key,
name varchar(20)
);
方法2
create table stu (
id int ,
name varchar(20),
primary key(id)//這里可以添加多個字段形成組合主鍵盤
);
方法3
alter table stu add primary key(id);
主鍵的作用:
1.保證數(shù)據(jù)完整性
2.加快查詢速度
唯一鍵添加方式:
1.方法1
create table stu (
id int primary key,
name varchar(20) unique
);
方法2
alter table stu add unique (name);
唯一鍵和主鍵的區(qū)別:
1.主鍵不能為空,唯一鍵可以為空
2.主鍵只能有一個序厉,唯一鍵可以有多個
唯一鍵的刪除
alter table 表名 drop index 唯一鍵名锐膜;