sql教程一

一、建立表格

Sql使用create table语句创建数据库表:

  create table 表名称(

                   列名称1  数据类型,

                   列名称2  数据类型,

                   列名称3  数据类型,

                   …

);

常见的数据类型有:

1、integer(size),int(size),smallint(size),tinyint(size):仅容纳整数。在括号内规定数字的最大位数;

2、decimal(size, d),numeric(size,d):容纳带有小数的数字。”size”规定数字的最大位数,”d”规定小数点右侧的最大位数;

3、char(size):容纳固定长度的字符串,括号内规定字符串长度;

4、varchar(size):容纳可变长度的字符串,在括号内规定字符串的最大长度;

5、date(yyyymmdd):容纳日期。

注意:这几个只是最常用的几种类型,其实sql支持的数据类型还有很多!

参考:http://www.w3school.com.cn/sql/sql_create_table.asp


二、alter table语句

在表格被建立在资料库中后,我们常常会发现,这个表格的结构需要有所改变。常见的改变如下:

  • 加一个栏位

  • 删去一个栏位

  • 改变栏位名称

  • 改变栏位的资料种类

以上列出的改变并不是所有可能的改变。ALTERTABLE 也可以被用来作其他的改变,例如改变主键定义。ALTERTABLE 的语法如下:

  ALTERTABLE "table_name"[改变方式]

[改变方式] 的详细写法会依我们想要达到的目标而有所不同。再以上列出的改变中,[改变方式] 如下:

  • 加一个栏位: ADD "栏位 1" "栏位 1 资料种类"

  • 删去一个栏位: DROP "栏位 1"

  • 改变栏位名称: CHANGE "原本栏位名" "新栏位名" "新栏位名资料种类"

  • 改变栏位的资料种类: MODIFY "栏位 1" "新资料种类"

为了说明alter table的用法,我们先新建一个customer数据库表

Create table customer(

         First_name  char(50),

         Last_name  char(50),

         Addresschar(50),

         Citychar(50),

         Countrychar(50),

         Birthday date

);

首先,我们要加入一个叫做 "gender" 的栏位。这可以用以下的指令达成:

     ALTER table customeradd Gender char(1)                  注意:我们可以使用desc customer查看表格信息

接下来,我们要把 "Address" 栏位改名为 "Addr"。这可以用以下的指令达成:

    ALTER table customerchange Address Addr char(50)

再来,我们要将 "Addr" 栏位的资料种类改为 char(30)。这可以用以下的指令达成:

    ALTER table customermodify Addr char(30)

最后,我们要删除 "Gender" 栏位。这可以用以下的指令达成:

    ALTER table customerdrop Gender



三、insert into语句

我们有两种作法可以将资料输入表格中内。一种是一次输入一笔,另一种是一次输入好几笔。我们先来看一次输入一笔的方式。

我们先介绍语法,一次输入一笔资料的语法如下:

INSERTINTO "表格名" ("栏位1", "栏位2", ...) VALUES ("值1", "值2", ...)

第二种 INSERT INTO 能够让我们一次输入多笔的资料。跟上面刚的例子不同的是,现在我们要用 SELECT 指令来指明要输入表格的资料,也就说资料是从另一个表格来的。一次输入多笔的资料的语法是:

INSERT INTO "表格1" ("栏位1", "栏位2", ...) SELECT "栏位3", "栏位4", ... FROM "表格2"


四、主键、外键

    主键 (Primary Key) 中的每一笔资料都是表格中的唯一值。换言之,它是用来独一无二地确认一个表格中的每一行资料。主键可以是原本资料内的一个栏位,或是一个人造栏位 (与原本资料没有关系的栏位)。主键可以包含一或多个栏位。当主键包含多个栏位时,称为组合键 (Composite Key)。主键可以在建置新表格时设定 (运用 CREATETABLE 语句),或是以改变现有的表格架构方式设定 (运用ALTERTABLE)。

例如在mysql中使用的语法为:

CREATE TABLECustomer(

    SID integer,

    Last_Namevarchar(30),

    First_Namevarchar(30),

    PRIMARY KEY (SID)

);

改变现有表格架构来设定主键的方式为:

    ALTER TABLECustomer ADD PRIMARY KEY (SID);

 

外来键是一个(或数个)指向另外一个表格主键的栏位。外来键的目的是确定资料的参考完整性(referentialintegrity)。换言之,只有被准许的资料值才会被存入资料库内。

举例来说,假设我们有两个表格:一个 CUSTOMER 表格,里面记录了所有顾客的资料;另一个 ORDERS 表格,里面记录了所有顾客订购的资料。在这里的一个限制,就是所有的订购资料中的顾客,都一定是要跟在 CUSTOMER 表格中存在。在这里,我们就会在 ORDERS 表格中设定一个外来键,而这个外来键是指向 CUSTOMER表格中的主键。这样一来,我们就可以确定所有在 ORDERS 表格中的顾客都存在CUSTOMER 表格中。换句话说,ORDERS表格之中,不能有任何顾客是不存在于 CUSTOMER 表格中的资料。

Customer表的结构已经在上文中提到,现在我们写一下orders表:

CREATE TABLE ORDERS(

    Order_ID integer,

   Order_Date date,

   Customer_SIDinteger,

   Amount double,

   Primary Key(Order_ID),

    Foreign Key (Customer_SID) referencesCUSTOMER(SID)

);

当然,也可以用alter table命令修改外键:

   ALTER TABLE ORDERSADD FOREIGN KEY (customer_sid) REFERENCES CUSTOMER(sid);


五、droptable、truncate table

删除一个数据库表:DROP TABLE "表格名"

清除表格资料:TRUNCATE TABLE "表格名"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值