天天看點

【SQL】增删改查操作

重要的 SQL 指令

語句 描述 備注
SELECT 從資料庫中提取資料 選擇,通常用來查詢資料
UPDATE 更新資料庫中的資料 更新,通常用來修改資料
DELETE 從資料庫中删除資料 删除,通常用來删除資料
INSERT INTO 向資料庫中插入新資料 插入,通常用來增加資料
CREATE DATABASE 建立新資料庫
ALTER DATABASE 修改資料庫
CREATE TABLE 建立新表
ALTER TABLE 變更(改變)資料庫表
DROP TABLE 删除表
CREATE INDEX 建立索引(搜尋鍵)
DROP INDEX 删除索引

注意:SQL中字元串要用英文的單引号(\'\')引起來。

了解:這是為了讓其他語言調用資料庫寫SQL時,與字元串("")區分開,如果SQL中字元串也用("")的話到時候其他語言中的("")會導緻截斷,造成不必要的麻煩。

資料庫增删改查

我們可以在登陸 MySQL 服務後,使用 create 指令建立資料庫,文法如下:

CREATE DATABASE 資料庫名;           

drop 指令格式:

drop database <資料庫名>;           

ALTER DATABASE           

SHOW DATABASES;           

選擇資料庫

use database_name           

資料庫表增删改查

  • NOT NULL:不能為NULL
  • DEFAULT:在插入時未被指定的字段會被賦預設值。在JPA中一般與

    @DynamicInsert

    配合使用

SQL CREATE TABLE 文法

CREATE TABLE table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
);           

column_name 參數規定表中列的名稱。

data_type 參數規定列的資料類型(例如 varchar、integer、decimal、date 等等)。

size 參數規定表中列的最大長度。

以下為删除MySQL資料表的通用文法:

DROP TABLE table_name ;           

ALTER TABLE            

在網站重構中,通常會進行資料結構的修改,是以添加,删除,增加mysql表的字段是難免的,有時為了友善,還會增加修改表或字段的注釋,把同字段屬性調整到一塊兒。這些操作可以在phpmyadmin或者别的mysql管理工具中完成,但是我們有時為了更友善的管理,會選擇寫sql語句來實作。

1.增加一個字段

//增加一個字段,預設為空
alter table user add COLUMN new1 VARCHAR(20) DEFAULT NULL; 
alter table user add new1 VARCHAR(20) DEFAULT NULL; 
//增加一個字段,預設不能為空
alter table user add COLUMN new2 VARCHAR(20) NOT NULL;
alter table user add new2 VARCHAR(20) NOT NULL;
           
ALTER TABLE character_meta ADD facial_list VARCHAR(max) NOT NULL DEFAULT \'\' COMMENT \'facial list\' AFTER emotion_list           

2.批量增加字段

方法一

這裡可以使用事務

bagin;                                           //事務開始
alter table em_day_data add f_day_house7 int(11);
alter table em_day_data add f_day_house8 int(11);
alter table em_day_data add f_day_house9 int(11);
alter table em_day_data add f_day_house10 int(11);
commit;                                             //送出事務,事務結束           

事務(transaction)是由一系列操作序列構成的程式執行單元,這些操作要麼都做,要麼都不做,是一個不可分割的工作機關。

方法二

mysql 批量為表添加多個字段

alter table 表名 add (字段1 類型(長度),字段2 類型(長度),字段3 類型(長度));

alter table em_day_data add (f_day_house11 int(11),f_day_house12 int(11),f_day_house13 int(11));           

3.删除一個字段

//删除一個字段
alter table user DROP COLUMN new2;           

4.修改一個字段

//修改一個字段的類型
alter table user MODIFY COLUMN new1 VARCHAR(10);
//修改一個字段的名稱,此時一定要重新指定該字段的類型
alter table user CHANGE COLUMN new1 new4 int;           

5.批量修改字段名稱

alter table 表 change 修改前字段名  修改後字段名稱 int(11) not null,
change 修改前字段名  修改後字段名稱 int(11) not null,
change 修改前字段名  修改後字段名稱 int(11) not null,
change 修改前字段名  修改後字段名稱 int(11) not null,
change 修改前字段名  修改後字段名稱 int(11) not null           

例子:

alter table em_day_data change f_day_house11 f_day_hour11 int(11) not null,
change f_day_house12 f_day_hour12 int(11) not null,
change f_day_house13 f_day_hour13 int(11) not null,
change f_day_house14 f_day_hour14 int(11) not null,
change f_day_house15 f_day_hour15 int(11) not null,
change f_day_house16 f_day_hour16 int(11) not null,
change f_day_house17 f_day_hour17 int(11) not null           

6,添加注釋

// 可以為表添加注釋
ALTER TABLE `table_name` COMMENT\'注釋\'; 
// 為字段添加注釋,同樣适用于修改
ALTER TABLE `table_name` CHANGE COLUMN `column_name` `column_name` type(longth) UNSIGNED NULL DEFAULT NULL COMMENT \'注釋\'           

7,調整字段順序:

alter table 表名 change COLUMN字段名 新字段名 字段類型 預設值 after 字段名(跳到哪個字段之後)

例子:

alter table appstore_souapp_app_androidmarket change getPriceCurrency getPriceCurrency varchar(50) default null AFTER getPrice;           

SHOW TABLES;           

資料庫記錄增删改查語句

  • 增:插入到表table_name中,值是value1,value2,value3,...
    INSERT INTO table_name (column1,column2,column3,...)
    VALUES (value1,value2,value3,...);           
  • 删:從表table_name中删除,當滿足條件some_column=some_value
    DELETE FROM table_name
    WHERE some_column=some_value;           
  • 改:修改表table_name,設定column1=value1,column2=value2,...,當條件滿足some_column=some_value時。
    UPDATE table_name
    SET column1=value1,column2=value2,...
    WHERE some_column=some_value;           
  • 查:選擇列column_name,column_name,從表table_name中。
    注意:本查詢僅為部分功能,欲知詳情可見SELECT語句
    SELECT column_name,column_name
    FROM table_name;           

  • 文法:插入到表table_name中,值是value1,value2,value3,...
    注意:這裡面的值與上面的(column1,column2,column3,...)一一對應。
    INSERT INTO table_name (column1,column2,column3,...)
    VALUES (value1,value2,value3,...);           

下面用一個例子來試試這些語句:

【SQL】增删改查操作

上圖這個表呢,是我比較喜歡的幾個菜。

  • 表名:menu
  • 菜名:name
  • 好吃程度:degree
  • 數量:num

那麼我們來試試加一道我不喜歡的菜:苦瓜(因為後面要删掉一個,是以加個不喜歡的友善删掉)

INSERT INTO menu (name,degree,num)
VALUES (\'苦瓜\',\'0\',\'100\');           

程式運作結果:

【SQL】增删改查操作

  • 文法:從表table_name中删除,當滿足條件some_column=some_value
    DELETE FROM table_name
    WHERE some_column=some_value;           

那麼讓我們來繼續上面的例子,删除這個苦瓜:

DELETE FROM menu
WHERE name=\'苦瓜\';           

程式運作結果:

【SQL】增删改查操作

  • 文法:修改表table_name,設定column1=value1,column2=value2,...,當條件滿足some_column=some_value時。
    UPDATE table_name
    SET column1=value1,column2=value2,...
    WHERE some_column=some_value;           

由于幹煸洋芋絲太好吃了,被大家吃光了,是以把數量修改為0:

UPDATE menu
SET num=0
WHERE name=\'幹煸洋芋絲\';           

程式運作結果:

【SQL】增删改查操作

  • 文法:選擇列column_name,column_name,從表table_name中。
    SELECT column_name,column_name
    FROM table_name;           

新來的人如果想吃東西,隻能點那些還有食材能做的菜:

SELECT *
FROM menu
WHERE num!=0;           

程式運作結果:

【SQL】增删改查操作