1.外來鍵在建立表的時候,增加約束 (麻煩,比較複雜)
create
table
`grade`
(`gradeid`
int(10)
notnull
auto_increment
comment
'年級id'
,`gradename`
varchar(50
)not
null
comment
'年級名稱'
,primary
key(
`gradeid`))
engine
=innodb
default
charset
=utf8
-- 學生表的 gradeid 字段 要去引用年級表的 gradeid
-- 兩個表之間要有乙個關聯
create
table
ifnot
exists
`student`
(`id`
int(4)
notnull
auto_increment
comment
'學號'
,`name`
varchar(30
)not
null
default
'匿名'
comment
'姓名'
,`pwd`
varchar(20
)not
null
default
'123456'
comment
'密碼'
,`***`
varchar(2
)not
null
default
'女'comment
'性別'
,`birthday`
datetime
default
null
comment
'出生日期'
,`gradeid`
int(10)
notnull
comment
'學生的年級'
,`address`
varchar
(100
)default
null
comment
'家庭住址'
,`email`
varchar(50
)default
null
comment
'郵箱'
,primary
key(
`id`),
key`fk_gradeid`
(`gradeid`),
constraint
`fk_gradeid`
foreign
key(
`gradeid`
)references
`grade`
(`gradeid`))
engine
=innodb
default
charset
=utf8
建立表成功後,新增外來鍵約束
create
table
`grade`
(`gradeid`
int(10)
notnull
auto_increment
comment
'年級id'
,`gradename`
varchar(50
)not
null
comment
'年級名稱'
,primary
key(
`gradeid`))
engine
=innodb
default
charset
=utf8
create
table
ifnot
exists
`student`
(`id`
int(4)
notnull
auto_increment
comment
'學號'
,`name`
varchar(30
)not
null
default
'匿名'
comment
'姓名'
,`pwd`
varchar(20
)not
null
default
'123456'
comment
'密碼'
,`***`
varchar(2
)not
null
default
'女'comment
'性別'
,`birthday`
datetime
default
null
comment
'出生日期'
,`gradeid`
int(10)
notnull
comment
'學生的年級'
,`address`
varchar
(100
)default
null
comment
'家庭住址'
,`email`
varchar(50
)default
null
comment
'郵箱'
,primary
key(
`id`))
engine
=innodb
default
charset
=utf8
-- 建立表的時候沒有外來鍵關係
-- alter table 表 add constraint 約束名 foreign key(作為外來鍵的列) references 那個表(哪個字段)
alter
table
`student`
addconstraint
`fk_gradeid`
foreign
key(
`gradeid`
)references
`grade`
(`gradeid`
);
2.dml語言
dml 語言: 資料操作語言
資料庫的意義:**資料儲存,資料管理
insert:
語法:insert into 表名([欄位名1,欄位2,欄位3])values('值1'),('值2'),('值3',....)
注意事項:
欄位和字段之間使用 英文逗號 隔開
欄位是可以省略的,但是後面的值必須要要一一對應,不能少
可以同時插入多條資料,values 後面的值,需要使用,隔開即可values(),(),....
insert
into
`grade`
(`gradename`
)values
('大四'
)insert
into
`grade`
(`gradename`
)values
('大二'),
('大一'
)insert
into
`student`
(`name`
,`pwd`
,`***`
)values
('張三'
,'aaaaaa'
,'男'
)
update:
語法:update 表名 set colnum_name = value,[colnum_name = value,....] where [條件]
注意:
-- 不指定條件的情況下,會改動所有表!
update
`student`
set`name`
='長江7號'
-- 修改多個屬性,逗號隔開
update
`student`
set`name`
='狂神'
,`email`
where id =
1;
delete:
語法:delete from 表名 [where 條件]
-- 刪除資料 (避免這樣寫,會全部刪除)
delete
from
`student`
-- 刪除指定資料
delete
from
`student`
where id =
1;
truncate 命令
作用:完全清空乙個資料庫表,表的結構和索引約束不會變!
-- 清空 student 表
truncate
`student`
delete 的 truncate 區別: MySql資料庫之DML
mysql資料庫的增刪查改操作 1 插入表中的資料 第一種插入資料的方法 指定所有列 insert into stu number,name age,gender values itcast 0001 zhangsan 28 male 使用第二種方法插入第二組資料,沒有填入的資料的列名,以null填...
mysql資料庫之dml語句盤點
dml 資料操縱語言,操作表資料crud 插入資料 所有非空且沒有預設值的必填 最預設 insert into qinhan user username,password values zhw 2321 最全 insert into qinhan user user id,username,pass...
四 資料庫之DML
語法 insert into 表名 列名1 列名2.values 值1,值2.特點 要求值的型別和字段的型別要一致或相容 欄位的個數和順序不一定與原始表中的字段個數和順序一致,但必須保證值和字段一一對應假如表中有可以為null的字段 nullable 注意可以通過以下兩種方式插入null值 欄位和值...