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;

相关文章
相关标签/搜索