中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

java做軟件的網(wǎng)站企業(yè)網(wǎng)站建設(shè)案例

java做軟件的網(wǎng)站,企業(yè)網(wǎng)站建設(shè)案例,傳統(tǒng)文化傳播公司網(wǎng)站建設(shè),河北網(wǎng)站建設(shè)文章目錄 【 1. MySQL 創(chuàng)建數(shù)據(jù)表 】【 2. MySQL 查看表 】2.1 查看表的屬性DESCRIBE/DESC 以表格的形式展示表屬性SHOW CREATE TABLE 以SQL語(yǔ)句的形式展示表屬性 2.2 查看表的內(nèi)容 【 3. MySQL 修改數(shù)據(jù)表結(jié)構(gòu) 】3.1 修改表名3.2 修改表字符集3.3 添加字段在末尾添加字段在開(kāi)頭…

文章目錄

  • 【 1. MySQL 創(chuàng)建數(shù)據(jù)表 】
  • 【 2. MySQL 查看表 】
    • 2.1 查看表的屬性
      • DESCRIBE/DESC 以表格的形式展示表屬性
      • SHOW CREATE TABLE 以SQL語(yǔ)句的形式展示表屬性
    • 2.2 查看表的內(nèi)容
  • 【 3. MySQL 修改數(shù)據(jù)表結(jié)構(gòu) 】
    • 3.1 修改表名
    • 3.2 修改表字符集
    • 3.3 添加字段
      • 在末尾添加字段
      • 在開(kāi)頭添加字段
      • 在中間添加字段
    • 3.3 修改/刪除字段
      • 修改字段名稱
      • 修改字段數(shù)據(jù)類型
      • 刪除字段
    • 3.4 刪除數(shù)據(jù)表
    • 3.5 刪除被其它表關(guān)聯(lián)的主表
  • 【 4. 插入數(shù)據(jù) INSERT 】
    • 4.1 基本語(yǔ)法
      • INSERT…VALUES
      • INSERT…SET
    • 4.2 向表中的全部字段添加值
      • 指定所有字段名
      • 完全不指定字段名
    • 4.3 向表中指定字段添加值
    • 4.4 復(fù)制表數(shù)據(jù) INSERT INTO…FROM
  • 【 5. 修改數(shù)據(jù) UPDATE 】
    • 5.1 修改表中數(shù)據(jù)
    • 5.2 根據(jù)條件修改表中的數(shù)據(jù)
  • 【 6. 刪除數(shù)據(jù) DELETE 】
    • 6.1 刪除表中的全部數(shù)據(jù)
    • 6.2 根據(jù)條件刪除表中的數(shù)據(jù)
  • 【 7. 清空表記錄 TRUNCATE 】

  • 數(shù)據(jù)表是數(shù)據(jù)庫(kù)的重要組成部分,每一個(gè)數(shù)據(jù)庫(kù)都是由若干個(gè)數(shù)據(jù)表組成的 。

比如,在電腦中創(chuàng)建一個(gè)空文件夾,如果要把“Hello 普羅米修斯”存放到文件夾中,必須把它寫(xiě)在 Word 文檔、記事本或其它能存放文本的文檔中。這里的空文件夾就相當(dāng)于數(shù)據(jù)庫(kù),存放文本的文檔就相當(dāng)于數(shù)據(jù)表。

【 1. MySQL 創(chuàng)建數(shù)據(jù)表 】

  • 創(chuàng)建數(shù)據(jù)表的過(guò)程是規(guī)定數(shù)據(jù)列的屬性的過(guò)程,同時(shí)也是實(shí)施數(shù)據(jù)完整性(包括實(shí)體完整性、引用完整性和域完整性)約束的過(guò)程。故創(chuàng)建數(shù)據(jù)表時(shí)必須指定數(shù)據(jù)表中每個(gè)列(字段)的名稱和數(shù)據(jù)類型,如果創(chuàng)建多個(gè)列,要用逗號(hào)隔開(kāi)。
    基本語(yǔ)法
    • CREATE TABLE:用于創(chuàng)建給定名稱的表,必須擁有表CREATE的權(quán)限。
    • <表名>:指定要?jiǎng)?chuàng)建表的名稱,必須符合標(biāo)識(shí)符命名規(guī)則。表名稱被指定為 db_name.tbl_name,以便在特定的數(shù)據(jù)庫(kù)中創(chuàng)建表。無(wú)論是否有當(dāng)前數(shù)據(jù)庫(kù),都可以通過(guò)這種方式創(chuàng)建。在當(dāng)前數(shù)據(jù)庫(kù)中創(chuàng)建表時(shí),可以省略 db-name。如果使用加引號(hào)的識(shí)別名,則應(yīng)對(duì)數(shù)據(jù)庫(kù)和表名稱分別加引號(hào)。
      例如,‘mydb’.‘mytbl’ 是合法的,但 ‘mydb.mytbl’ 不合法。
    • <表定義選項(xiàng)>:表創(chuàng)建定義,由列名(col_name)、列的定義(column_definition)以及可能的空值說(shuō)明、完整性約束或表索引組成。 [表定義選項(xiàng)]的格式為:<列名1> <類型1> [,…] <列名n> <類型n>
    • 默認(rèn)的情況是,表被創(chuàng)建到當(dāng)前的數(shù)據(jù)庫(kù)中。若表已存在、沒(méi)有當(dāng)前數(shù)據(jù)庫(kù)或者數(shù)據(jù)庫(kù)不存在,則會(huì)出現(xiàn)錯(cuò)誤。
CREATE TABLE <表名> ([表定義選項(xiàng)])[表選項(xiàng)][分區(qū)選項(xiàng)];
  • 要?jiǎng)?chuàng)建的 表的名稱不區(qū)分大小寫(xiě),不能使用SQL語(yǔ)言中的關(guān)鍵字,如DROP、ALTER、INSERT等。
  • 數(shù)據(jù)表屬于數(shù)據(jù)庫(kù),在創(chuàng)建數(shù)據(jù)表之前,應(yīng)使用語(yǔ)句“USE<數(shù)據(jù)庫(kù)>”指定操作在哪個(gè)數(shù)據(jù)庫(kù)中進(jìn)行 ,如果沒(méi)有選擇數(shù)據(jù)庫(kù),就會(huì)拋出 No database selected 的錯(cuò)誤。
  • 實(shí)例
    創(chuàng)建員工表 tb_emp1,結(jié)構(gòu)如下表所示。
    在這里插入圖片描述
    選擇創(chuàng)建表的數(shù)據(jù)庫(kù) mytest,創(chuàng)建 tb_emp1 數(shù)據(jù)表,輸入的 SQL 語(yǔ)句和運(yùn)行結(jié)果如下所示。
    CREATE TABLE tb_emp1
    (
    id INT(11),
    name VARCHAR(25),
    deptId INT(11),
    salary FLOAT
    );
    語(yǔ)句執(zhí)行后,便創(chuàng)建了一個(gè)名稱為 tb_emp1 的數(shù)據(jù)表,使用 SHOW TABLES;語(yǔ)句查看數(shù)據(jù)表是否創(chuàng)建成功,如下所示。
    在這里插入圖片描述

【 2. MySQL 查看表 】

2.1 查看表的屬性

DESCRIBE/DESC 以表格的形式展示表屬性

  • 基本語(yǔ)法
DESCRIBE <表名>;#或 簡(jiǎn)寫(xiě)為DESC  <表名>
表中的字段含義
Null表示該列是否可以存儲(chǔ) NULL 值。
Key表示該列是否已編制索引。PRI 表示該列是表主鍵的一部分,UNI 表示該列是 UNIQUE 索引的一部分,MUL 表示在列中某個(gè)給定值允許出現(xiàn)多次。
Default表示該列是否有默認(rèn)值,如果有,值是多少。
Extra表示可以獲取的與給定列有關(guān)的附加信息,如 AUTO_INCREMENT 等。
  • 實(shí)例
    DESC tb_emp1;
    在這里插入圖片描述

SHOW CREATE TABLE 以SQL語(yǔ)句的形式展示表屬性

  • SHOW CREATE TABLE 命令會(huì)以 SQL 語(yǔ)句的形式來(lái)展示表信息。和 DESCRIBE 相比,SHOW CREATE TABLE 展示的內(nèi)容更加豐富,它可以 查看表的存儲(chǔ)引擎和字符編碼;另外,你還可以通過(guò) \g或者\(yùn)G參數(shù)來(lái)控制展示格式 。
  • 基本語(yǔ)法
    SHOW CREATE TABLE student;
SHOW CREATE TABLE <表名>;
  • 實(shí)例
    SHOW CREATE TABLE tb_emp1;
    SHOW CREATE TABLE tb_emp1\G
    SHOW CREATE TABLE tb_emp1\g
    在這里插入圖片描述

2.2 查看表的內(nèi)容

  • 詳情看 MySQL 數(shù)據(jù)表查詢 SELECT 。

【 3. MySQL 修改數(shù)據(jù)表結(jié)構(gòu) 】

  • 在 MySQL 中可以使用 ALTER TABLE 語(yǔ)句來(lái)改變?cè)斜淼慕Y(jié)構(gòu),例如增加或刪減列、更改原有列類型、重新命名列或表等。
  • 基本語(yǔ)法
    • 修改選項(xiàng)的格式:
      { ADD COLUMN <列名> <類型>
      | CHANGE COLUMN <舊列名> <新列名> <新列類型>
      | ALTER COLUMN <列名> { SET DEFAULT <默認(rèn)值> | DROP DEFAULT }
      | MODIFY COLUMN <列名> <類型>
      | DROP COLUMN <列名>
      | RENAME TO <新表名>
      | CHARACTER SET <字符集名>
      | COLLATE <校對(duì)規(guī)則名> }
ALTER TABLE <表名> [修改選項(xiàng)]

3.1 修改表名

  • 基本語(yǔ)法:
    • TO 為可選參數(shù),使用與否均不影響結(jié)果。
ALTER TABLE <舊表名> RENAME [TO] <新表名>
  • 實(shí)例
    將數(shù)據(jù)表 tb_temp1 改名為 tb_temp2。
    在這里插入圖片描述

3.2 修改表字符集

  • 基本語(yǔ)法
    • DEFAULT 為可選參數(shù),使用與否均不影響結(jié)果。
ALTER TABLE 表名 [DEFAULT] CHARACTER SET <字符集名> [DEFAULT] COLLATE <校對(duì)規(guī)則名>;
  • 實(shí)例
    將數(shù)據(jù)表 tb_temp2 的字符集修改為 gb2312,校對(duì)規(guī)則修改為 gb2312_chinese_ci。
    ALTER TABLE tb_temp2 CHARACTER SET gb2312 DEFAULT COLLATE gb2312_chinese_ci;
    在這里插入圖片描述

3.3 添加字段

  • 隨著 MySQL 業(yè)務(wù)的變化,可能需要在已有的表中添加新的字段,一個(gè)完整的字段包括字段名、數(shù)據(jù)類型和約束條件。

在末尾添加字段

  • 這種語(yǔ)法格式默認(rèn)在表的最后位置(最后一列的后面)添加新字段。
    基本語(yǔ)法:
    • <表名> 為數(shù)據(jù)表的名字;
    • <新字段名> 為所要添加的字段的名字;
    • <數(shù)據(jù)類型> 為所要添加的字段能存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)類型;
    • [約束條件] 是可選的,用來(lái)對(duì)添加的字段進(jìn)行約束。
ALTER TABLE <表名> ADD <新字段名><數(shù)據(jù)類型>[約束條件];
  • 實(shí)例
    新建 student 數(shù)據(jù)表,再在 student 數(shù)據(jù)表末尾添加一個(gè) INT 類型的字段 age。
    ALTER TABLE student ADD stuId INT(4);
    在這里插入圖片描述

在開(kāi)頭添加字段

  • 在開(kāi)頭位置(第一列的前面)添加新字段,需要將 FIRST 關(guān)鍵字 放在語(yǔ)句的末尾。
    基本語(yǔ)法:
ALTER TABLE <表名> ADD <新字段名> <數(shù)據(jù)類型> [約束條件] FIRST;
  • 實(shí)例
    在表的第一列添加 INT 類型的字段 stuId。
    ALTER TABLE student ADD stuId INT(4) FIRST;
    在這里插入圖片描述

在中間添加字段

  • 在中間位置(指定的字段之后)添加新字段,需要將 AFTER 關(guān)鍵字+已存在的字段名 放在語(yǔ)句的末尾?;菊Z(yǔ)法:
ALTER TABLE <表名> ADD <新字段名> <數(shù)據(jù)類型> [約束條件] AFTER <已經(jīng)存在的字段名>;
  • 實(shí)例
    在 student 表中添加名為 stuno,數(shù)據(jù)類型為 INT 的字段,stuno 字段位于 name 字段的后面。
    ALTER TABLE student ADD stuno INT(11) AFTER name;
    在這里插入圖片描述

3.3 修改/刪除字段

修改字段名稱

  • 基本語(yǔ)法:
    • 舊字段名:指修改前的字段名;
    • 新字段名:指修改后的字段名;
    • 新數(shù)據(jù)類型:指修改后的數(shù)據(jù)類型,如果不需要修改字段的數(shù)據(jù)類型,可以將新數(shù)據(jù)類型設(shè)置成與原來(lái)一樣,但數(shù)據(jù)類型不能為空。
ALTER TABLE <表名> CHANGE <舊字段名> <新字段名> <新數(shù)據(jù)類型>
  • CHANGE 也可以只修改數(shù)據(jù)類型,實(shí)現(xiàn)和 MODIFY 同樣的效果,方法是將 SQL 語(yǔ)句中的“新字段名”和“舊字段名”設(shè)置為相同的名稱,只改變“數(shù)據(jù)類型”。
  • 實(shí)例
    使用 ALTER TABLE 修改表 tb_temp2 的結(jié)構(gòu),將 id 字段名稱改為 id2,同時(shí)將數(shù)據(jù)類型變?yōu)?CHAR(30)。
    ALTER TABLE tb_temp2 CHANGE id id2 CHAR(30);
    在這里插入圖片描述

修改字段數(shù)據(jù)類型

  • 由于不同類型的數(shù)據(jù)在機(jī)器中的存儲(chǔ)方式及長(zhǎng)度并不相同,修改數(shù)據(jù)類型可能會(huì)影響數(shù)據(jù)表中已有的數(shù)據(jù)記錄,因此,當(dāng)數(shù)據(jù)表中已經(jīng)有數(shù)據(jù)時(shí),不要輕易修改數(shù)據(jù)類型
    基本語(yǔ)法:
    • 表名:指要修改數(shù)據(jù)類型的字段所在表的名稱;
    • 字段名:指需要修改的字段;
    • 數(shù)據(jù)類型:指修改后字段的新數(shù)據(jù)類型。
ALTER TABLE <表名> MODIFY <字段名> <數(shù)據(jù)類型>
  • 實(shí)例
    使用 ALTER TABLE 修改表 tb_temp2 的結(jié)構(gòu),將 name 字段的數(shù)據(jù)類型由 VARCHAR(25) 修改成 VARCHAR(30)。
    ALTER TABLE tb_temp2 MODIFY name VARCHAR(30);
    在這里插入圖片描述

刪除字段

  • 刪除字段是將數(shù)據(jù)表中的某個(gè)字段從表中移除。
    基本語(yǔ)法:
    • 字段名”指需要從表中刪除的字段的名稱。
ALTER TABLE <表名> DROP <字段名>;
  • 實(shí)例
    使用 ALTER TABLE 修改表 tb_temp2 的結(jié)構(gòu),刪除 deptID 字段。
    ALTER TABLE tb_temp2 DROP deptID;
    在這里插入圖片描述

3.4 刪除數(shù)據(jù)表

  • 對(duì)于不再需要的數(shù)據(jù)表,我們可以將其從數(shù)據(jù)庫(kù)中刪除。在刪除表的同時(shí),表的結(jié)構(gòu)和表中所有的數(shù)據(jù)都會(huì)被刪除,因此在刪除數(shù)據(jù)表之前最好先備份,以免造成無(wú)法挽回的損失。
    基本語(yǔ)法:
    • 表名1, 表名2, 表名3 …表示要被刪除的數(shù)據(jù)表的名稱。DROP TABLE 可以同時(shí)刪除多個(gè)表,只要將表名依次寫(xiě)在后面,相互之間用逗號(hào)隔開(kāi)即可。
    • IF EXISTS 用于在刪除數(shù)據(jù)表之前判斷該表是否存在。如果不加 IF EXISTS,當(dāng)數(shù)據(jù)表不存在時(shí) MySQL 將提示錯(cuò)誤,中斷 SQL 語(yǔ)句的執(zhí)行;加上 IF EXISTS 后,當(dāng)數(shù)據(jù)表不存在時(shí) SQL 語(yǔ)句可以順利執(zhí)行,但是會(huì)發(fā)出警告(warning)。
DROP TABLE [IF EXISTS] 表名1 [ ,表名2, 表名3 ...]
  • 用戶 必須擁有執(zhí)行 DROP TABLE 命令的權(quán)限,否則數(shù)據(jù)表不會(huì)被刪除,表被刪除時(shí),用戶在該表上的權(quán)限不會(huì)自動(dòng)刪除。
  • 實(shí)例
    刪除數(shù)據(jù)表 tb_temp2。
    DROP TABLE tb_temp2;
    在這里插入圖片描述

3.5 刪除被其它表關(guān)聯(lián)的主表

  • 數(shù)據(jù)表之間經(jīng)常存在外鍵關(guān)聯(lián)的情況,這時(shí)如果直接刪除父表,會(huì)破壞數(shù)據(jù)表的完整性,也會(huì)刪除失敗。故刪除父表有以下兩種方法:通常采用第2種
    ① 先刪除與它關(guān)聯(lián)的子表,再刪除父表;但是這樣會(huì)同時(shí)刪除兩個(gè)表中的數(shù)據(jù)。
    ② 將關(guān)聯(lián)表的外鍵約束取消,再刪除父表;適用于需要保留子表的數(shù)據(jù),只刪除父表的情況。

  • 實(shí)例

    1. 創(chuàng)建兩個(gè)關(guān)聯(lián)表
      表 tb_emp4
      CREATE TABLE tb_emp4
      (
      id INT(11) PRIMARY KEY,
      name VARCHAR(22),
      location VARCHAR (50)
      );
      表 tb_emp5
      CREATE TABLE tb_emp5
      (
      id INT(11) PRIMARY KEY,
      name VARCHAR(25),
      deptId INT(11),
      salary FLOAT,
      CONSTRAINT fk_emp4_emp5 FOREIGN KEY (deptId) REFERENCES tb_emp4(id)
      );

    2. 使用 SHOW CREATE TABLE tb_emp5\G; 命令查看表 tb_ emp5 的外鍵約束。
      可以看出,tb_emp5 表為子表,具有名稱為 fk_emp4_emp5 的外鍵約束;tb_emp4 為父表,其主鍵 id 被子表 tb_ emp5 所關(guān)聯(lián)。

    3. 直接刪除被數(shù)據(jù)表 tb_emp5 關(guān)聯(lián)的數(shù)據(jù)表 tb_emp4。
      可以看出,當(dāng)主表在存在外鍵約束時(shí),不能被直接刪除。

    4. ALTER TABLE tb_emp5 DROP FOREIGN KEY fk_emp4_emp5;解除子表 tb_emp5 的外鍵約束,語(yǔ)句成功執(zhí)行后,會(huì)取消表 tb_emp4 和表 tb_emp5 之間的關(guān)聯(lián)關(guān)系。

    5. 解除關(guān)聯(lián)關(guān)系后,DROP TABLE tb_emp4;語(yǔ)句直接刪除父表 tb_emp4

在這里插入圖片描述

【 4. 插入數(shù)據(jù) INSERT 】

4.1 基本語(yǔ)法

  • 在 MySQL 中,相對(duì)于多條 INSERT 語(yǔ)句進(jìn)行多個(gè)插入,用單條 INSERT 語(yǔ)句處理多個(gè)插入更快。當(dāng)使用單條 INSERT 語(yǔ)句插入多行數(shù)據(jù)的時(shí)候,只需要將每行數(shù)據(jù)用圓括號(hào)括起來(lái)即可。

INSERT…VALUES

  • 可以向表中插入一行數(shù)據(jù),也可以插入多行數(shù)據(jù)。
  • 基本語(yǔ)法
    • <表名>:指定被操作的表名。
    • <列名>:指定需要插入數(shù)據(jù)的列名。若向表中的所有列插入數(shù)據(jù),則全部的列名均可以省略,直接采用 INSERT<表名>VALUES(…) 即可。
    • VALUES 或 VALUE 子句:該子句包含要插入的數(shù)據(jù)清單。數(shù)據(jù)清單中數(shù)據(jù)的順序要和列的順序相對(duì)應(yīng) 。
INSERT INTO <表名> [ <列名1> [ ,<列名n>] ]
VALUES (1) [, (值n) ];

INSERT…SET

  • 指定插入行中每列的值,也可以指定部分列的值; 也可以向表中插入其他表的數(shù)據(jù)。
  • 基本語(yǔ)法
    • 用于 直接給表中的某些列指定對(duì)應(yīng)的列值,即要插入的數(shù)據(jù)的列名在 SET 子句中指定,等號(hào)后面為指定的數(shù)據(jù),而對(duì)于未指定的列,列值會(huì)指定為該列的默認(rèn)值。
INSERT INTO <表名>
SET <列名1> = <1>,<列名2> = <2>,

4.2 向表中的全部字段添加值

  • 向表中所有字段插入值的方法有兩種:一種是指定所有字段名;另一種是完全不指定字段名。
  • 實(shí)例
    創(chuàng)建一個(gè)課程信息表 tb_courses,包含課程編號(hào) course_id、課程名稱 course_name、課程學(xué)分 course_grade 和課程備注 course_info。
    CREATE TABLE tb_courses
    (
    course_id INT NOT NULL AUTO_INCREMENT,
    course_name CHAR(40) NOT NULL,
    course_grade FLOAT NOT NULL,
    course_info CHAR(100) NULL,
    PRIMARY KEY(course_id)
    );
    在這里插入圖片描述

指定所有字段名

  • 插入數(shù)據(jù)時(shí),不需要按照表定義的順序插入,只要保證值的順序與列字段的順序相同就可以 。
  • 實(shí)例1
    在 tb_courses 表中插入一條新記錄,course_id 值為 1,course_name 值為“Network”,course_grade 值為 3,info 值為“Computer Network”。
    在插入數(shù)據(jù)時(shí),指定了 tb_courses 表的所有字段,因此將為每一個(gè)字段插入新的值。
    INSERT INTO tb_courses
    (course_id,course_name,course_grade,course_info)
    VALUES(1,'Network',3,'Computer Network');
    在這里插入圖片描述
  • 實(shí)例2
    在 tb_courses 表中插入一條新記錄,course_id 值為 2,course_name 值為“Database”,course_grade 值為 3,info值為“MySQL”。
    INSERT INTO tb_courses
    (course_name,course_info,course_id,course_grade)
    VALUES('Database','MySQL',2,3);
    在這里插入圖片描述

完全不指定字段名

  • 使用 INSERT 插入數(shù)據(jù)時(shí),允許列名稱列表 column_list 為空,此時(shí)值列表中需要為表的每一個(gè)字段指定值,并且值的順序必須和數(shù)據(jù)表中字段定義時(shí)的順序相同。如果表的結(jié)構(gòu)被修改,對(duì)列進(jìn)行增加、刪除或者位置改變操作,這些操作將使得用這種方式插入數(shù)據(jù)時(shí)的順序也同時(shí)改變。如果指定列名稱,就不會(huì)受到表結(jié)構(gòu)改變的影響。
  • 實(shí)例
    在 tb_courses 表中插入一條新記錄,course_id 值為 3,course_name 值為“Java”,course_grade 值為 4,info 值為“Jave EE”。
    INSERT INTO tb_courses
    VALUES(3,'Java',4,'Java EE');
    在這里插入圖片描述

4.3 向表中指定字段添加值

  • 為表的指定字段插入數(shù)據(jù),是在 INSERT 語(yǔ)句中 只向部分字段中插入值,而其他字段的值為表定義時(shí)的默認(rèn)值。
  • 實(shí)例
    在 tb_courses 表中插入一條新記錄,course_name 值為“System”,course_grade 值為 3,course_info 值為“Operating System”。
    如查詢結(jié)果顯示,這里的 course_id 字段自動(dòng)添加了一個(gè)整數(shù)值 4。這時(shí)的 course_id 字段為表的主鍵,不能為空,系統(tǒng)自動(dòng)為該字段插入自增的序列值。
    INSERT INTO tb_courses
    (course_name,course_grade,course_info)
    VALUES('System',3,'Operation System');
    在這里插入圖片描述

4.4 復(fù)制表數(shù)據(jù) INSERT INTO…FROM

  • MySQL 可以快速地從一個(gè)或多個(gè)表中取出數(shù)據(jù),并將這些數(shù)據(jù)作為行數(shù)據(jù)插入另一個(gè)表中。
    基本語(yǔ)法
    • SELECT 子句返回的是一個(gè)查詢到的結(jié)果集;
    • INSERT 語(yǔ)句將這個(gè)結(jié)果集插入指定表中,結(jié)果集中的每行數(shù)據(jù)的字段數(shù)、字段的數(shù)據(jù)類型都必須與被操作的表完全一致。
INSERT INTO…SELECT…FROM
  • 實(shí)例
    1. 在數(shù)據(jù)庫(kù) test_db 中創(chuàng)建一個(gè)與 tb_courses 表結(jié)構(gòu)相同的數(shù)據(jù)表 tb_courses_new。
      CREATE TABLE tb_courses_new
      (
      course_id INT NOT NULL AUTO_INCREMENT,
      course_name CHAR(40) NOT NULL,
      course_grade FLOAT NOT NULL,
      course_info CHAR(100) NULL,
      PRIMARY KEY(course_id)
      );
    2. 從 tb_courses 表中查詢所有的記錄,并將其插入 tb_courses_new 表中。
      INSERT INTO tb_courses_new
      (course_id,course_name,course_grade,course_info)
      SELECT course_id,course_name,course_grade,course_info
      FROM tb_courses;
      在這里插入圖片描述

【 5. 修改數(shù)據(jù) UPDATE 】

  • 在 MySQL 中,可以使用 UPDATE 語(yǔ)句 來(lái)修改、更新一個(gè)或多個(gè)表的數(shù)據(jù)。
    基本語(yǔ)法
    • <表名>:用于指定要更新的表名稱。
    • SET 子句:用于指定表中要修改的列名及其列值。其中,每個(gè)指定的列值可以是表達(dá)式,也可以是該列對(duì)應(yīng)的默認(rèn)值。如果指定的是默認(rèn)值,可用關(guān)鍵字 DEFAULT 表示列值。
    • WHERE 子句:可選項(xiàng)。用于限定表中要修改的行。若不指定,則修改表中所有的行。
    • ORDER BY 子句:可選項(xiàng)。用于限定表中的行被修改的次序。
    • LIMIT 子句:可選項(xiàng)。用于限定被修改的行數(shù)。
    • 修改一行數(shù)據(jù)的多個(gè)列值時(shí),SET 子句的每個(gè)值用逗號(hào)分開(kāi)即可。
UPDATE <表名> SET 字段 1=1 [,字段 2=2] [WHERE 子句 ]
[ORDER BY 子句] [LIMIT 子句]

5.1 修改表中數(shù)據(jù)

  • 實(shí)例
    在 tb_courses_new 表中,更新所有行的 course_grade 字段值為 4。
    UPDATE tb_courses_new SET course_grade=4;
    在這里插入圖片描述

5.2 根據(jù)條件修改表中的數(shù)據(jù)

  • 實(shí)例
    在 tb_courses 表中,更新 course_id 值為 2 的記錄,將 course_grade 字段值改為 3.5,將 course_name 字段值改為“DB”。
    保證 UPDATE 以 WHERE 子句結(jié)束,通過(guò) WHERE 子句指定被更新的記錄所需要滿足的條件,如果忽略 WHERE 子句,MySQL 將更新表中所有的行。
    UPDATE tb_courses_new SET course_name='DB',course_grade=3.5 WHERE course_id=2;
    在這里插入圖片描述

【 6. 刪除數(shù)據(jù) DELETE 】

  • 在 MySQL 中,可以使用 DELETE 語(yǔ)句 來(lái)刪除表的一行或者多行數(shù)據(jù)。
    基本語(yǔ)法
    • <表名>:指定要?jiǎng)h除數(shù)據(jù)的表名。
    • ORDER BY 子句:可選項(xiàng)。表示刪除時(shí),表中各行將按照子句中指定的順序進(jìn)行刪除。
    • WHERE 子句:可選項(xiàng),表示為刪除操作限定刪除條件;若省略該 WHERE 子句,則代表刪除該表中的所有行。
    • LIMIT 子句:可選項(xiàng)。用于告知服務(wù)器在控制命令被返回到客戶端前被刪除行的最大值。
DELETE FROM <表名> [WHERE 子句] [ORDER BY 子句] [LIMIT 子句]

6.1 刪除表中的全部數(shù)據(jù)

  • 實(shí)例
    刪除 tb_courses_new 表中的全部數(shù)據(jù)。
    DELETE FROM tb_courses_new;
    在這里插入圖片描述

6.2 根據(jù)條件刪除表中的數(shù)據(jù)

  • 實(shí)例
    在 tb_courses_new 表中,刪除 course_id 為 4 的記錄。
    由運(yùn)行結(jié)果可以看出,course_id 為 4 的記錄已經(jīng)被刪除。
    DELETE FROM tb_courses WHERE course_id=4;
    在這里插入圖片描述

【 7. 清空表記錄 TRUNCATE 】

  • MySQL 提供了 DELETE 和 TRUNCATE 關(guān)鍵字來(lái)刪除表中的數(shù)據(jù),它們都可以用來(lái)清空表中的數(shù)據(jù)。
DELETETRUNCATE
DML 類型的語(yǔ)句。DDL 類型的語(yǔ)句。
逐行一條一條刪除記錄。直接刪除原來(lái)的表,再重新創(chuàng)建一個(gè)一模一樣的新表,而不是逐行刪除表中的數(shù)據(jù),執(zhí)行數(shù)據(jù)比 DELETE 快。因此需要?jiǎng)h除表中全部的數(shù)據(jù)行時(shí),盡量使用 TRUNCATE 語(yǔ)句, 可以縮短執(zhí)行時(shí)間。
刪除數(shù)據(jù)后,配合事件回滾 可以找回?cái)?shù)據(jù) 。不支持事務(wù)的回滾,數(shù)據(jù)刪除后無(wú)法找回。
刪除數(shù)據(jù)后,系統(tǒng)不會(huì)重新設(shè)置自增字段的計(jì)數(shù)器 。清空表記錄后,系統(tǒng)會(huì)重新設(shè)置自增字段的計(jì)數(shù)器。
使用范圍更廣,因?yàn)樗?可以通過(guò) WHERE 子句指定條件來(lái)刪除部分?jǐn)?shù)據(jù) 。不支持 WHERE 子句,只能刪除整體。
會(huì)返回刪除數(shù)據(jù)的行數(shù) 。只會(huì)返回 0,沒(méi)有任何意義。
  • TRUNCATE 關(guān)鍵字 用于 完全清空一個(gè)表。
    基本語(yǔ)法
    • 其中,TABLE 關(guān)鍵字可省略。
TRUNCATE [TABLE] 表名
  • 實(shí)例
    1. 新建表 tb_student_course,插入數(shù)據(jù)并查詢。
      CREATE TABLE tb_student_course (
      id int(4) NOT NULL AUTO_INCREMENT,
      name varchar(25) NOT NULL,
      PRIMARY KEY (id)
      );
    2. 插入數(shù)據(jù)
      INSERT INTO tb_student_course(name) VALUES ('Java'),('MySQL'),('Python');
    3. 查詢表tb_student_course
      SELECT * FROM tb_student_course;
      在這里插入圖片描述
    4. 清空 tb_student_course 表中的記錄
      TRUNCATE TABLE tb_student_course;
      在這里插入圖片描述
http://www.risenshineclean.com/news/4946.html

相關(guān)文章:

  • 石家莊做網(wǎng)站最好的公司有哪些搜狗收錄入口
  • 連州網(wǎng)站建設(shè)關(guān)鍵詞搜索量查詢工具
  • 只做百度移動(dòng)端網(wǎng)站可以嗎怎樣制作一個(gè)網(wǎng)站
  • 微網(wǎng)站怎么做的好處國(guó)內(nèi)營(yíng)銷推廣渠道
  • 茄子直播搜索引擎網(wǎng)站排名優(yōu)化方案
  • 哈爾濱創(chuàng)意網(wǎng)站建設(shè)黃岡網(wǎng)站推廣軟件視頻下載
  • 鹽亭做網(wǎng)站廣州最新新聞事件
  • 做公司網(wǎng)站 國(guó)外系統(tǒng)個(gè)人網(wǎng)頁(yè)生成器
  • 哪個(gè)網(wǎng)站可以做高像素動(dòng)圖優(yōu)化搜索點(diǎn)擊次數(shù)的方法
  • 合肥最好的網(wǎng)站建設(shè)營(yíng)銷管理
  • 青島網(wǎng)景互聯(lián)網(wǎng)站建設(shè)公司年度關(guān)鍵詞
  • 做承諾的網(wǎng)站上海百度推廣排名
  • 百度網(wǎng)站排名全掉軟件開(kāi)發(fā)定制
  • 寫(xiě)論文的好網(wǎng)站寧波網(wǎng)站建設(shè)網(wǎng)站排名優(yōu)化
  • 免費(fèi)的網(wǎng)站推廣在線推廣百度seo新站優(yōu)化
  • 網(wǎng)站怎樣做多語(yǔ)言切換做app的網(wǎng)站
  • 廣西柳州網(wǎng)站建設(shè)安陽(yáng)企業(yè)網(wǎng)站優(yōu)化外包
  • 微信微網(wǎng)站教程電商運(yùn)營(yíng)推廣是做什么的
  • 合肥網(wǎng)站制作聯(lián)系方式策劃方案怎么做
  • 零基礎(chǔ)學(xué)網(wǎng)站建設(shè)seo優(yōu)化快速排名技術(shù)
  • 石家莊電子商城網(wǎng)站建設(shè)鄭州網(wǎng)站關(guān)鍵詞排名
  • 重慶營(yíng)銷型網(wǎng)站建設(shè)多少錢如何制作簡(jiǎn)單的網(wǎng)頁(yè)鏈接
  • 張家港做網(wǎng)站優(yōu)化排名seo的優(yōu)化方案
  • 有沒(méi)有專業(yè)幫忙做ppt的網(wǎng)站近期發(fā)生的重大新聞
  • wordpress清理修訂seo百度首頁(yè)排名業(yè)務(wù)
  • 網(wǎng)站建設(shè)合集網(wǎng)絡(luò)營(yíng)銷的主要手段和策略
  • 網(wǎng)站建設(shè)課的感想百度惠生活怎么做推廣
  • 長(zhǎng)安鎮(zhèn)網(wǎng)站建設(shè)公司自媒體視頻剪輯培訓(xùn)班
  • 網(wǎng)站手機(jī)端和電腦端seo零基礎(chǔ)入門(mén)到精通200講
  • 數(shù)字營(yíng)銷公司淘寶關(guān)鍵詞怎么優(yōu)化