外部キーを関連する変更操作カスケード変更テーブルの行

外部キーを変更します

シーン:外部キーとしての本テーブルとテーブルを公開し、テーブルのidフィールドへの外部キーフィールドPID帳テーブルが公開

外部キー関係を確認してください

show create table 表名;

外部キー関係を削除します

alter table book drop foreign key book_ibfk_1(外键名称)

削除フィールド

alter table publish drop id(字段名称)

フィールドを追加します。

alter table publish add id(字段名称) int(数据类型) primary key auto_increment(约束条件)

フォームを作成した後、外部キー関係を追加した後

alter table book add foreign key(pid) references publish(id)

外部キーを作成する場合、外部キーの名前を指定します。

あなたは、テーブルを作成するとき

create table t1(id int, pid int, constraint fk_t1_publish foreign key(pid) references publish (id))
# constraint 指定自定义外键名

フォームを作成した後、外部キーの名前を追加した後の関係を指定

alter table book add constraint fk_t1_publish foreign key(pid) references publish(id)

カスケード

カスケードは、いくつかのモードがあります

strictモード(デフォルト):外部キー制約必須効果、関連付けられているフィールドは任意に削除して、変更することはできません。

カスケードモード:外部キー制約必須の効果は、削除または関連する分野によって変更、そのデータも削除または修正され、そのフィールドに関連付けられています

constraint fk_t1_publish foreign key(pid) references publish(id) on delete cascade on updata cascade

セットヌルモード:関連するフィールドを削除するときに、彼のフィールドに関連するデータがnullに設定されます

操作履歴テーブルの行を変更します

追加

insert into 表名 values(字段1, 字段2...)
insert into 表名(id, name) values(字段1, 字段2),(xx1, xx2)

修正

update 表名 set 字段1=值1, 字段2=值2 where id = 1
# 可以用来同时更改多个值, 用逗号分割
# where指定更改符合条件的顺序
# 不指定where条件, 会修改这个字段所有的数据

update t2 set name = 'xxoo' where id=1

レコードの削除

delete from t3
# 删除所有的数据, 但是不会重置自增字段的数据号
delete from t3 where id = 1
# 删除指定的数据, 删除id字段数据为1的哪一行记录
truncate 表名
# 清空表, 自增字段会重置

クエリ***

# 四则运算
select salary*12 from employee

# 自定义显示格式 concat用法
select concat("姓名:", name "年薪:", salary*12)as Annual_salary from employee

どこ条件

比較演算子

# > < >= <= <> !=
select name from employee where post="sale"

の間に

between 10 and 15  id值在10到15之间 #大于等于和小于等于的区间
    mysql> select * from employee where id between 10 and 15

select * from employee where id in(1,3,6) 
等价于id=1 or id=3 or id=6

「エゴン%」のように

# 可以是 % 或 _ 
# % 表示任意多字符
select * from employee where name like "wu%"
# _ 表示一个字符
select * from employee where name like "al_"
select * from employee where name like "al__"
select * from employee where name like "al___"
# 一个下划线代表一个字符, 当字符数超过或不够时, 结果为空

論理演算子

# 在多个条件下可以直接使用逻辑运算符 and or not
select * from employee id > 10 and name like "al%"
select * from employee not id > 10 
# and 和 , or 与, not, 取反

パケット

select post, max(salary) from employee group by post
# 分组时可以跟多个条件, name这个多个条件同时重复才算一组, group by 后面多条件用逗号分隔
select post, max(salary) from employee group by post,id

ONLY_FULL_GROUP_BYモード

set global sql_mode="ONLY_FULL_GROUP_BY "
# 如果设置了这个模式, 那么select后面只能写group by 后面的分组依据字段和聚合函数统计结果

パケット再濾過

select post, max(salary) from employee group by post having max(salary)>20000
# having 过滤后面的条件可以使用聚合函数, where不行

重複排除

select distinct post from employee
# 注意问题:
#   select的字段必须写在distinct的后面, 并且如果写了多个字段:
select distinct post,id from employee
# 这句指令, 意思就是post和id两个组合在一起同时重复的才是重复数据

シーケンス

select * from employee order by age
select * from employee order by age asc
# 上面这两种都是按照age字段升序排列

select * from employee order by age desc
# 按照age降序排列

select * from employee order by age asc, salary asc
# 按照age进行升序, age一样的数据, 按照salary降序排列

限定

select * from  employee limit 0,5;
# 0是索引 5是取的记录的条数, 从0索引的记录起取5个记录

おすすめ

転載: www.cnblogs.com/beichen123/p/11936941.html