樂編科技--mysql基礎(chǔ)

mysql基礎(chǔ)

1.什么是數(shù)據(jù)庫?
  • 存儲數(shù)據(jù)的倉庫
  • 本質(zhì)上是一個文件系統(tǒng)稻据,還是以文件的方式存在服務(wù)器的電腦上的风题。
  • 所有的關(guān)系型數(shù)據(jù)庫都可以使用通用的 SQL 語句進(jìn)行管理
    常見的數(shù)據(jù)庫:
  • MySQL:開源免費的數(shù)據(jù)庫赃蛛,小型的數(shù)據(jù)庫夭谤,已經(jīng)被 Oracle 收購了傍睹。MySQL6.x 版本也開始收費隔盛。后來 Sun公司收購了 MySQL,而 Sun 公司又被 Oracle 收購
  • Oracle:收費的大型數(shù)據(jù)庫拾稳,Oracle 公司的產(chǎn)品吮炕。
  • DB2 :IBM 公司的數(shù)據(jù)庫產(chǎn)品,收費的。常應(yīng)用在銀行系統(tǒng)中访得。
  • SQL Server:MicroSoft 公司收費的中型的數(shù)據(jù)庫龙亲。C#、.net 等語言常使用悍抑。
  • SQLite: 嵌入式的小型數(shù)據(jù)庫鳄炉,應(yīng)用在手機端,如:Android搜骡。
    為什么用mysql?
  1. 免費
    2.功能強大
2.SQLyog 圖形化工具——客戶端

使用 SQLyog 登錄數(shù)據(jù)庫

sqlyog使用.PNG
3.數(shù)據(jù)庫管理系統(tǒng)

數(shù)據(jù)庫管理系統(tǒng)(DataBase Management System拂盯,DBMS):指一種操作和管理數(shù)據(jù)庫的大型軟件,用于建立记靡、使用和維護數(shù)據(jù)庫磕仅,對數(shù)據(jù)庫進(jìn)行統(tǒng)一管理和控制珊豹,以保證數(shù)據(jù)庫的安全性和完整性。用戶通過數(shù)據(jù)庫管理系統(tǒng)訪問數(shù)據(jù)庫中表內(nèi)的數(shù)據(jù)

4.數(shù)據(jù)庫管理系統(tǒng)榕订、數(shù)據(jù)庫和表的關(guān)系

數(shù)據(jù)庫管理程序(DBMS)可以管理多個數(shù)據(jù)庫店茶,一般開發(fā)人員會針對每一個應(yīng)用創(chuàng)建一個數(shù)據(jù)庫。為保存應(yīng)用
中實體的數(shù)據(jù)劫恒,一般會在數(shù)據(jù)庫創(chuàng)建多個表贩幻,以保存程序中實體 User 的數(shù)據(jù)。
數(shù)據(jù)庫管理系統(tǒng)两嘴、數(shù)據(jù)庫和表的關(guān)系如圖所示:

數(shù)據(jù)庫1.PNG

結(jié)論:

  • 一個數(shù)據(jù)庫服務(wù)器包含多個庫
  • 一個數(shù)據(jù)庫包含多張表
  • 一張表包含多條記錄
5.SQL 的概念

什么是 SQL?
Structured Query Language 結(jié)構(gòu)化查詢語言
SQL 作用?

  • 是一種所有關(guān)系型數(shù)據(jù)庫的查詢規(guī)范丛楚,不同的數(shù)據(jù)庫都支持。
  • 通用的數(shù)據(jù)庫操作語言憔辫,可以用在不同的數(shù)據(jù)庫中趣些。
  • 不同的數(shù)據(jù)庫 SQL 語句有一些區(qū)別

SQL 語句分類

  • Data Definition Language (DDL 數(shù)據(jù)定義語言) 如:建庫,建表
  • Data Manipulation Language(DML 數(shù)據(jù)操縱語言)贰您,如:對表中的記錄操作增刪改
  • Data Query Language(DQL 數(shù)據(jù)查詢語言)坏平,如:對表中的查詢操作
  • Data Control Language(DCL 數(shù)據(jù)控制語言),如:對用戶權(quán)限的設(shè)置
    MySQL 的語法
  • 每條語句以分號結(jié)尾锦亦,如果在 SQLyog 中不是必須加的舶替。
  • SQL 中不區(qū)分大小寫,關(guān)鍵字中認(rèn)為大寫和小寫是一樣的
數(shù)據(jù)庫2.PNG
DDL 操作數(shù)據(jù)庫

1.創(chuàng)建數(shù)據(jù)庫:

創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE 數(shù)據(jù)庫名;

判斷數(shù)據(jù)庫是否已經(jīng)存在杠园,不存在則創(chuàng)建數(shù)據(jù)庫
CREATE DATABASE IF NOT EXISTS 數(shù)據(jù)庫名;

創(chuàng)建數(shù)據(jù)庫并指定字符集
CREATE DATABASE 數(shù)據(jù)庫名 CHARACTER SET 字符集;

-- 直接創(chuàng)建數(shù)據(jù)庫 db1
create database db1;
-- 判斷是否存在顾瞪,如果不存在則創(chuàng)建數(shù)據(jù)庫 db2
create database if not exists db2;
-- 創(chuàng)建數(shù)據(jù)庫并指定字符集為 gbk
create database db3 default character set gbk;

小提示:按 tab 鍵可以自動補全關(guān)鍵字
2.查看數(shù)據(jù)庫:

-- 查看所有的數(shù)據(jù)庫
show databases;
-- 查看某個數(shù)據(jù)庫的定義信息
show create database db3;
show create database db1;

3.修改數(shù)據(jù)庫

修改數(shù)據(jù)庫默認(rèn)的字符集
ALTER DATABASE 數(shù)據(jù)庫名 DEFAULT CHARACTER SET 字符集;
將 db3 數(shù)據(jù)庫的字符集改成 utf8
alter database db3 character set utf8;

4.刪除數(shù)據(jù)庫

刪除數(shù)據(jù)庫的語法
DROP DATABASE 數(shù)據(jù)庫名;

刪除 db2 數(shù)據(jù)庫
drop database db2;

小提示:每行 SQL 語句需要選中再執(zhí)行,可以按 F9

使用數(shù)據(jù)庫

查看正在使用的數(shù)據(jù)庫
SELECT DATABASE(); 使用的一個 mysql 中的全局函數(shù)

使用/切換數(shù)據(jù)庫
USE 數(shù)據(jù)庫名;

-- 查看正在使用的數(shù)據(jù)庫
select database();

-- 改變要使用的數(shù)據(jù)庫
use db4;
DDL 操作表結(jié)構(gòu)

小提示:前提先使用某個數(shù)據(jù)庫
創(chuàng)建表
格式:

CREATE TABLE 表名 (
字段名 1 字段類型 1,
字段名 2 字段類型 2
);

關(guān)鍵字說明:
CREATE 創(chuàng)建;TABLE 表
MySQL 數(shù)據(jù)類型
常使用的數(shù)據(jù)類型如下:

數(shù)據(jù)庫4.PNG

詳細(xì)的數(shù)據(jù)類型如下:

數(shù)據(jù)庫5.PNG

創(chuàng)建 student 表包含 id,name,birthday 字段:

create table student (
id int, -- 整數(shù)
name varchar(20), -- 字符串
birthday date -- 生日抛蚁,最后沒有逗號
);

查看表

查看某個數(shù)據(jù)庫中的所有表
SHOW TABLES;

查看表結(jié)構(gòu)
DESC 表名;

查看創(chuàng)建表的 SQL 語句
SHOW CREATE TABLE 表名;
查看 day21 數(shù)據(jù)庫中的所有表
use day21;
show tables;

查看 student 表的結(jié)構(gòu)
desc student;

查看 student 的創(chuàng)建表 SQL 語句
show create table student;

` 存在的目的是為了避免關(guān)鍵字的沖突

CREATE TABLE `student` (
 `id` int(11) DEFAULT NULL,
 `name` varchar(20) DEFAULT NULL,
 `birthday` date DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8

快速創(chuàng)建一個表結(jié)構(gòu)相同的表
CREATE TABLE 新表名 LIKE 舊表名;

創(chuàng)建 s1 表陈醒,s1 表結(jié)構(gòu)和 student 表結(jié)構(gòu)相同
create table s1 like student;
desc s1;

刪除表

直接刪除表
DROP TABLE 表名;

判斷表是否存在,如果存在則刪除表
DROP TABLE IF EXISTS 表名;

-- 直接刪除表 s1 表
drop table s1;
-- 判斷表是否存在并刪除 s1 表
drop table if exists `create`;
與直接刪除的區(qū)別:如果表不存在瞧甩,不刪除钉跷,存在則刪除

修改表結(jié)構(gòu)

添加表列 ADD
ALTER TABLE 表名 ADD 列名 類型;

為學(xué)生表添加一個新的字段 remark,類型為 varchar(20)
alter table student add remark varchar(20);

修改列類型 MODIFY
ALTER TABLE 表名 MODIFY 列名 新的類型;
alter table student modify remark varchar(100);

修改列名 CHANGE
ALTER TABLE 表名 CHANGE 舊列名 新列名 類型;

將 student 表中的 remark 字段名改成 intro,類型 varchar(30)
alter table student change remark intro varchar(30);

刪除列 DROP
ALTER TABLE 表名 DROP 列名;

刪除 student 表中的字段 intro
alter table student change remark intro varchar(30);

修改表名
RENAME TABLE 表名 TO 新表名;

將學(xué)生表 student 改名成 student2
rename table student to student2;

修改字符集 character set
ALTER TABLE 表名 character set 字符集;

將 student2 表的編碼修改成 gbk
alter table student2 character set gbk;
DML 操作表中的數(shù)據(jù)

用于對表中的記錄進(jìn)行增刪改操作

插入記錄:
INSERT [INTO] 表名 [字段名] VALUES (字段值)
INSERT INTO 表名:表示往哪張表中添加數(shù)據(jù)
(字段名 1, 字段名 2, …):要給哪些字段設(shè)置值
VALUES (值 1, 值 2, …):設(shè)置具體的值

插入全部字段
所有的字段名都寫出來
INSERT INTO 表名 (字段名 1, 字段名 2, 字段名 3…) VALUES (值 1, 值 2, 值 3);

不寫字段名
INSERT INTO 表名 VALUES (值 1, 值 2, 值 3…);

插入部分?jǐn)?shù)據(jù)
INSERT INTO 表名 (字段名 1, 字段名 2, ...) VALUES (值 1, 值 2, ...);

插入所有的列亲配,向?qū)W生表中
insert into student (id,name,age,sex) values (1, '孫悟空', 20, '男');
insert into student (id,name,age,sex) values (2, '孫悟天', 16, '男');

-- 插入所有列
insert into student values (3, '孫悟飯', 18, '男', '龜仙人洞中');

select * from student;

小提示:沒有添加數(shù)據(jù)的字段會使用 NULL
insert 的注意事項:

  • 插入的數(shù)據(jù)應(yīng)與字段的數(shù)據(jù)類型相同
  • 數(shù)據(jù)的大小應(yīng)在列的規(guī)定范圍內(nèi)尘应,例如:不能將一個長度為 80 的字符串加入到長度為 40 的列中惶凝。
  • 在 values 中列出的數(shù)據(jù)位置必須與被加入的列的排列位置相對應(yīng)吼虎。在 mysql 中可以使用 value,但不建議使
    用苍鲜,功能與 values 相同思灰。
  • 字符和日期型數(shù)據(jù)應(yīng)包含在單引號中。MySQL 中也可以使用雙引號做為分隔符混滔。
  • 不指定列或使用 null洒疚,表示插入空值歹颓。

更新表記錄

UPDATE 表名 SET 列名=值 [WHERE 條件表達(dá)式]
UPDATE: 需要更新的表名
SET: 修改的列值
WHERE: 符合條件的記錄才更新
你可以同時更新一個或多個字段。
你可以在 WHERE 子句中指定任何條件油湖。

不帶條件修改數(shù)據(jù)
UPDATE 表名 SET 字段名=值; -- 修改所有的行
帶條件修改數(shù)據(jù)
UPDATE 表名 SET 字段名=值 WHERE 字段名=值;

-- 不帶條件修改數(shù)據(jù)巍扛,將所有的性別改成女
update student set sex = '女';
-- 帶條件修改數(shù)據(jù),將 id 號為 2 的學(xué)生性別改成男
update student set sex='男' where id=2;
-- 一次修改多個列乏德,把 id 為 3 的學(xué)生撤奸,年齡改成 26 歲,address 改成北京
update student set age=26, address='北京' where id=3;

刪除表記錄

DELETE FROM 表名 [WHERE 條件表達(dá)式]
如果沒有指定 WHERE 子句喊括,MySQL 表中的所有記錄將被刪除胧瓜。
你可以在 WHERE 子句中指定任何條件

不帶條件刪除數(shù)據(jù)
DELETE FROM 表名;

帶條件刪除數(shù)據(jù)
DELETE FROM 表名 WHERE 字段名=值;

使用 truncate 刪除表中所有記錄
TRUNCATE TABLE 表名;

truncate 和 delete 的區(qū)別:
truncate 相當(dāng)于刪除表的結(jié)構(gòu),再創(chuàng)建一張表郑什。

-- 帶條件刪除數(shù)據(jù)府喳,刪除 id 為 1 的記錄
delete from student where id=1;
-- 不帶條件刪除數(shù)據(jù),刪除表中的所有數(shù)據(jù)
delete from student;
DQL 查詢表中的數(shù)據(jù)

查詢不會對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行修改.只是一種顯示數(shù)據(jù)的方式

SELECT 列名 FROM 表名 [WHERE 條件表達(dá)式]
1) SELECT 命令可以讀取一行或者多行記錄。
2) 你可以使用星號(*)來代替其他字段蘑拯,SELECT 語句會返回表的所有字段數(shù)據(jù)
3) 你可以使用 WHERE 語句來包含任何條件钝满。

簡單查詢
查詢表所有行和列的數(shù)據(jù) 使用*表示所有列
SELECT * FROM 表名;
查詢所有的學(xué)生:
select * from student;

查詢指定列
查詢指定列的數(shù)據(jù),多個列之間以逗號分隔

SELECT 字段名 1, 字段名 2, 字段名 3, ... FROM 表名;

查詢 student 表中的 name 和 age 列
select name,age from student

指定列的別名進(jìn)行查詢
使用關(guān)鍵字
使用別名的好處: 顯示的時候使用新的名字,并不修改表的結(jié)構(gòu)强胰。

對列指定別名:
SELECT 字段名 1 AS 別名, 字段名 2 AS 別名... FROM 表名;

對列和表同時指定別名:
SELECT 字段名 1 AS 別名, 字段名 2 AS 別名... FROM 表名 AS 表別名;

-- 使用別名
select name as 姓名,age as 年齡 from student;
-- 表使用別名
select st.name as 姓名,age as 年齡 from student as st

清除重復(fù)值
查詢指定列并且結(jié)果不出現(xiàn)重復(fù)數(shù)據(jù)
SELECT DISTINCT 字段名 FROM 表名;

-- 查詢學(xué)生來至于哪些地方
select address from student;
-- 去掉重復(fù)的記錄
select distinct address from student;

小提示:表使用別名的原因:用于多表查詢操作
條件查詢
為什么要條件查詢?
如果沒有查詢條件舱沧,則每次查詢所有的行。實際應(yīng)用中偶洋,一般要指定查詢的條件猴凹。對記錄進(jìn)行過濾

SELECT 字段名 FROM 表名 WHERE 條件;
流程:取出表中的每條數(shù)據(jù),滿足條件的記錄就返回火脉,不滿足條件的記錄不返回

準(zhǔn)備數(shù)據(jù):
創(chuàng)建一個學(xué)生表械姻,包含如下列:
CREATE TABLE student3 (
 id int, -- 編號
 name varchar(20), -- 姓名
 age int, -- 年齡
 sex varchar(5), -- 性別
 address varchar(100), -- 地址
 math int, -- 數(shù)學(xué)
 english int -- 英語
);
INSERT INTO student3(id,NAME,age,sex,address,math,english) VALUES (1,'馬云',55,'男','
杭州',66,78),(2,'馬化騰',45,'女','深圳',98,87),(3,'馬景濤',55,'男','香港',56,77),(4,'柳巖
',20,'女','湖南',76,65),(5,'柳青',20,'男','湖南',86,NULL),(6,'劉德華',57,'男','香港
',99,99),(7,'馬德',22,'女','香港',99,99),(8,'德瑪西亞',18,'男','南京',56,65);

運算符:

運算符.PNG
-- 查詢 math 分?jǐn)?shù)大于 80 分的學(xué)生
select * from student3 where math>80;
-- 查詢 english 分?jǐn)?shù)小于或等于 80 分的學(xué)生
select * from student3 where english <=80;
-- 查詢 age 等于 20 歲的學(xué)生
-- 查詢 math 分?jǐn)?shù)大于 80 分的學(xué)生
select * from student3 where math>80;
-- 查詢 english 分?jǐn)?shù)小于或等于 80 分的學(xué)生
select * from student3 where english <=80;
-- 查詢 age 等于 20 歲的學(xué)生
select * from student3 where age = 20;
-- 查詢 age 不等于 20 歲的學(xué)生,注:不等于有兩種寫法
select * from student3 where age <> 20;
select * from student3 where age != 20;

邏輯運算符

邏輯運算符.PNG
-- 查詢 age 大于 35 且性別為男的學(xué)生(兩個條件同時滿足)
select * from student3 where age>35 and sex='男';
-- 查詢 age 大于 35 或性別為男的學(xué)生(兩個條件其中一個滿足)
select * from student3 where age>35 or sex='男';
-- 查詢 id 是 1 或 3 或 5 的學(xué)生
select * from student3 where id=1 or id=3 or id=5;

in 關(guān)鍵字
SELECT 字段名 FROM 表名 WHERE 字段 in (數(shù)據(jù) 1, 數(shù)據(jù) 2...);
in 里面的每個數(shù)據(jù)都會作為一次條件恩脂,只要滿足條件的就會顯示

-- 查詢 id 是 1 或 3 或 5 的學(xué)生
select * from student3 where id in(1,3,5);
-- 查詢 id 不是 1 或 3 或 5 的學(xué)生
select * from student3 where id not in(1,3,5);

BETWEEN 值 1 AND 值 2
表示從值 1 到值 2 范圍帽氓,包頭又包尾
比如:age BETWEEN 80 AND 100 相當(dāng)于: age>=80 && age<=100

查詢 english 成績大于等于 75,且小于等于 90 的學(xué)生
select * from student3 where english between 75 and 90;

like 關(guān)鍵字
LIKE 表示模糊查詢
SELECT * FROM 表名 WHERE 字段名 LIKE '通配符字符串';
MySQL 通配符:% 匹配任意多個字符串;_ 匹配一個字符

-- 查詢姓馬的學(xué)生
select * from student3 where name like '馬%';
select * from student3 where name like '馬';
-- 查詢姓名中包含'德'字的學(xué)生
select * from student3 where name like '%德%';
-- 查詢姓馬俩块,且姓名有兩個字的學(xué)生
select * from student3 where name like '馬_';
  1. 排序查詢
  • 語法:order by 子句
    • order by 排序字段1 排序方式1 黎休, 排序字段2 排序方式2...
  • 排序方式:
    • ASC:升序,默認(rèn)的玉凯。
    • DESC:降序势腮。
  • 注意:如果有多個排序條件,則當(dāng)前邊的條件值一樣時漫仆,才會判斷第二條件捎拯。

聚合函數(shù):將一列數(shù)據(jù)作為一個整體,進(jìn)行縱向的計算盲厌。

  1. count:計算個數(shù)
  • 一般選擇非空的列:主鍵
  • count(*)
  1. max:計算最大值
  2. min:計算最小值
  3. sum:計算和
  4. avg:計算平均值
    注意:聚合函數(shù)的計算署照,排除null值祸泪。

分組查詢:
語法:group by 分組字段;

  1. 分組之后查詢的字段:分組字段建芙、聚合函數(shù)
  2. where 和 having 的區(qū)別没隘?
  • where 在分組之前進(jìn)行限定,如果不滿足條件禁荸,則不參與分組升略。having在分組之后進(jìn)行限定,如果不滿足結(jié)果屡限,則不會被查詢出來
  • where 后不可以跟聚合函數(shù)品嚣,having可以進(jìn)行聚合函數(shù)的判斷。
-- 按照性別分組钧大。分別查詢男翰撑、女同學(xué)的平均分

SELECT sex , AVG(math) FROM student GROUP BY sex;
            
-- 按照性別分組。分別查詢男啊央、女同學(xué)的平均分,人數(shù)
            
SELECT sex , AVG(math),COUNT(id) FROM student GROUP BY sex;
            
--  按照性別分組眶诈。分別查詢男、女同學(xué)的平均分,人數(shù) 要求:分?jǐn)?shù)低于70分的人瓜饥,不參與分組
SELECT sex , AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex;
            
--  按照性別分組逝撬。分別查詢男、女同學(xué)的平均分,人數(shù) 要求:分?jǐn)?shù)低于70分的人乓土,不參與分組,分組之后宪潮。人數(shù)要大于2個人
SELECT sex , AVG(math),COUNT(id) FROM student WHERE math > 70 GROUP BY sex HAVING COUNT(id) > 2;
            
SELECT sex , AVG(math),COUNT(id) 人數(shù) FROM student WHERE math > 70 GROUP BY sex HAVING 人數(shù) > 2;

約束

  • 概念: 對表中的數(shù)據(jù)進(jìn)行限定,保證數(shù)據(jù)的正確性趣苏、有效性和完整性狡相。
    • 分類:
      1. 主鍵約束:primary key
      2. 非空約束:not null
      3. 唯一約束:unique
      4. 外鍵約束:foreign key
    * 非空約束:not null,值不能為null
        1. 創(chuàng)建表時添加約束
            CREATE TABLE stu(
                id INT,
                NAME VARCHAR(20) NOT NULL -- name為非空
            );
        2. 創(chuàng)建表完后食磕,添加非空約束
            ALTER TABLE stu MODIFY NAME VARCHAR(20) NOT NULL;

        3. 刪除name的非空約束
            ALTER TABLE stu MODIFY NAME VARCHAR(20);
    
    
    * 唯一約束:unique尽棕,值不能重復(fù)
        1. 創(chuàng)建表時,添加唯一約束
            CREATE TABLE stu(
                id INT,
                phone_number VARCHAR(20) UNIQUE -- 添加了唯一約束
            
            );
            * 注意mysql中彬伦,唯一約束限定的列的值可以有多個null
        
        
        2. 刪除唯一約束
        
            ALTER TABLE stu DROP INDEX phone_number;
        
        3. 在創(chuàng)建表后滔悉,添加唯一約束
            ALTER TABLE stu MODIFY phone_number VARCHAR(20) UNIQUE;
    
    * 主鍵約束:primary key。
        1. 注意:
            1. 含義:非空且唯一
            2. 一張表只能有一個字段為主鍵
            3. 主鍵就是表中記錄的唯一標(biāo)識

        2. 在創(chuàng)建表時单绑,添加主鍵約束
            create table stu(
                id int primary key,-- 給id添加主鍵約束
                name varchar(20)
            );

        3. 刪除主鍵
            -- 錯誤 alter table stu modify id int ;
            ALTER TABLE stu DROP PRIMARY KEY;

        4. 創(chuàng)建完表后回官,添加主鍵
            ALTER TABLE stu MODIFY id INT PRIMARY KEY;

        5. 自動增長:
            1.  概念:如果某一列是數(shù)值類型的,使用 auto_increment 可以來完成值得自動增長

            2. 在創(chuàng)建表時询张,添加主鍵約束孙乖,并且完成主鍵自增長
            create table stu(
                id int primary key auto_increment,-- 給id添加主鍵約束
                name varchar(20)
            );

            3. 刪除自動增長
            ALTER TABLE stu MODIFY id INT;
            4. 添加自動增長
            ALTER TABLE stu MODIFY id INT AUTO_INCREMENT;

    * 外鍵約束:foreign key,讓表于表產(chǎn)生關(guān)系浙炼,從而保證數(shù)據(jù)的正確性份氧。
        1. 在創(chuàng)建表時唯袄,可以添加外鍵
            * 語法:
                create table 表名(
                    ....
                    外鍵列
                    constraint 外鍵名稱 foreign key (外鍵列名稱) references 主表名稱(主表列名稱)
                );

        2. 刪除外鍵
            ALTER TABLE 表名 DROP FOREIGN KEY 外鍵名稱;

        3. 創(chuàng)建表之后,添加外鍵
            ALTER TABLE 表名 ADD CONSTRAINT 外鍵名稱 FOREIGN KEY (外鍵字段名稱) REFERENCES 主表名稱(主表列名稱);
        
        4. 級聯(lián)操作
            1. 添加級聯(lián)操作
                語法:ALTER TABLE 表名 ADD CONSTRAINT 外鍵名稱 
                        FOREIGN KEY (外鍵字段名稱) REFERENCES 主表名稱(主表列名稱) ON UPDATE CASCADE ON DELETE CASCADE  ;
            2. 分類:
                1. 級聯(lián)更新:ON UPDATE CASCADE 
                2. 級聯(lián)刪除:ON DELETE CASCADE 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蜗帜,一起剝皮案震驚了整個濱河市恋拷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌厅缺,老刑警劉巖蔬顾,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異湘捎,居然都是意外死亡诀豁,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進(jìn)店門窥妇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來舷胜,“玉大人,你說我怎么就攤上這事活翩∨牍牵” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵材泄,是天一觀的道長沮焕。 經(jīng)常有香客問我,道長拉宗,這世上最難降的妖魔是什么峦树? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮旦事,結(jié)果婚禮上空入,老公的妹妹穿的比我還像新娘。我一直安慰自己族檬,他們只是感情好歪赢,可當(dāng)我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著单料,像睡著了一般埋凯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上扫尖,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天白对,我揣著相機與錄音,去河邊找鬼换怖。 笑死甩恼,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播条摸,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼悦污,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了钉蒲?” 一聲冷哼從身側(cè)響起切端,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎顷啼,沒想到半個月后踏枣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡钙蒙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年茵瀑,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片躬厌。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡瘾婿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出烤咧,到底是詐尸還是另有隱情偏陪,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布煮嫌,位于F島的核電站笛谦,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏昌阿。R本人自食惡果不足惜饥脑,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望懦冰。 院中可真熱鬧灶轰,春花似錦、人聲如沸刷钢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽内地。三九已至伴澄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間阱缓,已是汗流浹背非凌。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留荆针,地道東北人敞嗡。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓颁糟,卻偏偏與公主長得像,于是被迫代替她去往敵國和親喉悴。 傳聞我的和親對象是個殘疾皇子棱貌,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,037評論 2 355