MySQL學習筆記17-19

十7、插入數據數據庫

一、 數據插入安全

關鍵詞:INSERT工具

插入能夠用如下幾種方法使用:測試

  • 插入完整的行
  • 插入行的一部分
  • 插入多行;
  • 插入某些查詢的結果

二、 插入完整行索引

要求指定表名和被插入到新行中的值ip

例如:INSERT INTO customersci

      VALUES(NULL,it

‘Pep E. LaPew’,email

‘100 Main Street’,語法

‘Los Angeles’,

‘CA’,

‘90046’,

‘USA’,

NULL,

NULL);

       此例子插入一個新客戶到表customers中。對每一個列必須提供一個值,某列沒有值則要用NULL代替。這種語法很簡單但不安全由於它高度依賴表中列的定義順序,還依賴於其次序容易得到的信息。

       編寫INSERT語句的更安全的方法以下:

           INSERT INTO customers(cust_name,

                   cust_address,

                   cust_city,

                   cust_state,

                   cust_zip,

                   cust_country,

                   cust_contact,

                   cust_eamil)

                VALUES(‘Pep E. LaPew’,

‘100 Main Street’,

‘Los Angeles’,

‘CA’,

‘90046’,

‘USA’,

NULL,

NULL);

          VALUES必須以其指定的次序匹配指定的列名,不必定按各個列出如今實際表中的次序

三、 插入多個行

可使用多條INSERT語句,甚至一次提交它們,每條語句用一個分號結束

例如:INSERT INTO customers(cust_name,

cust_address,

cust_city,

cust_state,

cust_zip,

cust_country)

                        VALUES(‘Pep E. LaPew’,

‘100 Main Street’,

‘Los Angeles’,

‘CA’,

‘90046’,

‘USA’);

                    INSERT INTO customers(cust_name,

cust_address,

cust_city,

cust_state,

cust_zip,

cust_country)

                         VALUES(‘M. Martian’,

’42 Galaxy Way’,

‘New York’,

‘NY’,

‘11213’,

‘USA’);

或者,只要每條INSERT語句中的列名(和次序)相同,能夠以下組合各語句:

           INSERT INTO customers(cust_name,

cust_address,

cust_city,

cust_state,

cust_zip,

cust_country)

                 VLAUES(

‘Pep E. LaPew’,

‘100 Main Street’,

‘Los Angeles’,

‘CA’,

‘90046’,

‘USA’),

(

‘M. Martian’,

’42 Galaxy Way’,

‘New York’,

‘NY’,

‘11213’,

‘USA’);

四、 插入檢索出的數據

利用INSERT將一條SELECT語句的結果插入表中。這就是INSERT SELECT語句

例如:INSERT INTO customers(cust_id,

cust_contact,

cust_email,

cust_name,

cust_address,

cust_city,

cust_state,

cust_zip,

cust_country)

                   SELECT cust_id,

                       cust_contact,

                       cust_email,

                       cust_name,

                       cust_address,

                       cust_city,

                       cust_state,

                       cust_zip,

                       cust_country

                    FROM custnew;

INSERT SELECT 中SELECT語句可包含WHERE子句以過濾插入的數據。

十8、更新和刪除數據

一、 更新數據

關鍵字:UPDATE

有兩種方式使用UODATE:

  • 更新表中特定行;
  • 更新表中全部行。

基本的UODATE語句由三部分組成:

  • 要更新的表
  • 列名和他們的新值;
  • 肯定要更新行的過濾條件

 

例如:更新客戶10005的電子郵件地址

UPDATE customers

SET cust_email=’elmer@fudd.com’

WHERE cust_id = 10005;

 

UPDATE語句老是以要更新的表的名字開始。SET命令用來將新值賦給被更新的列。UPDATE語句以WHERE子句結束,它告訴MySQL更新哪一行。

 

更新多個列時只須要單個SET命令,每一個「列=值」對之間用逗號隔開(最後一列以後不用逗號)

例如:更新客戶10005的電子郵件和姓名

UPDATE customers

SET cust_email = ‘elmer@fuss.com’,

Cust_name = ‘The Fudds’

       WHERE cust_id = 10005;

二、 刪除數據

關鍵字:DELETE

用兩種方式使用DELETE:

  • 從表中刪除特定的行;
  • 從表中刪除全部行

 

例如:從customers表中刪除一行:

   DELETE FROM customers

   WHERE cust_id = 10006;

若是省略WHERE子句,它將刪除表中每一個客戶

三、 更新和刪除的指導原則

-除非確實打算更新和刪除每一行,不然絕對不要使用不帶WHERE子句的UPDATE和DELETE語句

-保證每一個表都有主鍵,儘量像WHERE子句那樣使用它

-在對UPDATE或DELETE語句使用WHERE子句前,應該先用SELECT進行測試,保證它過濾的是正確的記錄,以防編寫的WHERE子句不正確

-使用強制實施引用完整性的數據庫

十9、建立和操縱表

一、 建立表

通常有兩種建立表的方式:

  • 使用具備交互式建立和管理表的工具
  • 表也能夠直接用MySQL語句操縱

關鍵詞:CREATE TABLE

爲利用CREATE TABLE建立表,必須給出下列信息:

  • 新表的名字,在關鍵字CREATE TABLE以後給出。
  • 表列的名字和定義,用逗號隔開

 

例如:建立customers表:

 CREATE TABLE customers

(

cust_id        int  NOT NULL AUTO_INCREMENT,

cust_name     char(50)  NOT NULL,

cust_address   char(50)  NULL,

cust_city       char(50)  NULL,

cust_state      char(5)   NULL,

cust_zip        char(10)  NULL,

cust_country    char(50)  NULL,

cust_contact    char(50)  NULL,

cust_email      char(255) NULL,

PRIMARY_KEY (cust_id)

) ENGINE=InnoDB;

 

NULL值就是沒有值或缺值。容許NULL值的列也容許在插入行時不給出該列的值。不容許NULL值的列不接受該列沒有值的行。

 

主鍵必須是惟一的。若是使用多個列做爲主鍵,應以逗號分隔的列表給出各列名:

PRIMARY_KEY(order_num, order_item);

 

AUTO_INCREMENT的做用:AUTO_INCREMENT告訴MySQL,本列每當增長一行時自動增量。每次執行一個INSERT操做時,MySQL自動對該列增量,給該列賦予下一個可用的值。每一個表只容許一個AUTO_INCREMENT列,並且它必須被索引。

 

若是在插入行時沒有給出值,MySQL容許指定此時使用的默認值。默認值用CREATE TABLE語句的列定義中的DEFAULT關鍵字指定:

quantity int NOT NULL DEFAULT 1,

二、 更新表

關鍵字:ALTER TABLE

使用方法:

-在ALTER TABLE以後給出要更改的表名

-所作更改的列表。

例如:給表添加一個列

 ALTER TABLE vendors

ADD vend_phone CHAR(20);

 

刪除剛剛添加的列,能夠這樣作:

ALTER  TABLE vendors

DROP COLUMN vend_phone;

三、 刪除表

刪除表(刪除整個表而不是其內容)很是簡單,使用DROP TABLE語句便可

例如: DROP TABLE customers;

四、 重命名錶

關鍵字:RENAME TABLE

例如:RENAME TABLE backup_customers TO customers,

                    backup_vendors TO vendors,

                    backup_products TO products;

相關文章
相關標籤/搜索