SQLServer常用关键字数据类型和常用语法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL Server 2008
常用关键字、数据类型和常用语法
常用关键字:
SQL server 2008一共大约有180多个关键字。简要分为主要关键字、辅助关键字和函数类关键字。本文就常用的这三类关键字进行语法说明和用例。
说明:1、比较好的习惯是,数据库名以D_开头,表名用T_开头,字段名以F_开头,这样可以防止和关键字重名。
2、如果确实用到了系统关键字,就要在关键上加[]方括号,以与关键字进行区别。例如有一个用户表被命名为USER,则查询该表内容的时候:SELECT * FROM USER语句是错误的,应该是SELECT * FROM [USER]。因为USER是关键字。
数据类型:
SQL Server 2008一共有36种数据类型。具体如下:
常用语法:
一、数据库
【创建数据库】
CREATE DATABASE
【修改数据库】
ALTER DATABASE
【删除数据库】
DROP DATABASE
二、表结构
【创建数据表】
1、设定字段是允许空,非空、标识列,自增和主键约束。
CREATE TABLE T_CUSTOMER--表名
(CUSTOMERID INT IDENTITY(1,1),--客户ID,标识列,从开始,每次自增
COMPANYNAME NVARCHAR(50)NOT NULL,--,如果不显示指明NOT NULL,系统默认是允许空的USERNAME NVARCHAR(10)NOT NULL,--联系人姓名,非空
PHONENUMBER CHAR(11)NULL,--联系电话,允许为空
CONSTRAINT T_CUSTOMER_PrimaryKey PRIMARY KEY (CUSTOMERID))--设定USERID为主键,用括号括起来
/*每个单词之间是空格隔开,每个字段之间用单引号隔开,整个字段定义部分用括号括起来*/
/*T_RegUser_PrimaryKey是约束名*/
2、设定字段是UNIQUEIDENTIFIER数据类型,唯一性约束,CHECK约束和默认值约束。
(CUSTOMERID UNIQUEIDENTIFIER UNIQUE,--客户ID,UNIQUEIDENTIFIER类型,唯一性约束COMPANYNAME NVARCHAR(50)NOT NULL UNIQUE,--公司名称,非空,唯一性约束
USERNAME NVARCHAR(10)NOT NULL,
PHONENUMBER CHAR(11)NULL,
AGE TINYINT NULL CHECK(AGE>0),--联系人年龄,允许空,check约束必须大于MODIFIEDDATE DATE NULL CONSTRAINT T_CUSTOMER_DEFAULT DEFAULT GETDATE(),--默认值约束,并调用SQL函数GETDATE()
CONSTRAINT T_CUSTOMER_PrimaryKey PRIMARY KEY (CUSTOMERID))
3、设定字段外键
CREATE TABLE T_ORDER--订单表
(ORDERID INT IDENTITY(1,1),--订单ID,标识字段,自增
PRODUCT NVARCHAR(50)NOT NULL,--产品
PAYMENT MONEY NOT NULL,--货款
ORDER_CUSTOMERID UNIQUEIDENTIFIER NOT NULL,--客户ID,为外键,外键内容是T_CUSTOMER 表的CUSTOMERID列
CONSTRAINT T_ORDER_PrimaryKey PRIMARY KEY(ORDERID),--设置ORDERID为主键CONSTRAINT T_ORDER_T_CUSTOMER_ForeignKey FOREIGN KEY(ORDER_CUSTOMERID) REFERENCES T_CUSTOMER(CUSTOMERID))
/*设定外键基本语法*/
CONSTRAINT <约束名> FOREIGN KEY(<外键表列名>)REFERENCES <主键表>(<主键表列名>)
/*设置外键,T_ORDER_T_CUSTOMER_ForeignKey是外键约束名,FOREIGN KEY后边是本表内要被设置的外键列
REFERENCES后边是主键所在的表,括号内是主键表的链接列*/
/*表名后的所有内容,都要拿括号括起来*/
/*外键的数据类型要和主键一模一样,哪怕主键是UNIQUEIDENTIFIER也必须设置成一样*/
【修改表名】
/*修改表名,可能会破坏脚本和存储过程。*/
EXEC SP_RENAME'<原表名>','<新表名>'
示例:
EXEC SP_RENAME'T_CUSTOMER2','T_CUSTOMER22'
【修改表结构】
1、添加列和列的约束
/*添加列、添加唯一性约束*/
ALTER TABLE <表名>
ADD <列名1> BIT NOT NULL,--添加多个列不用括号,用逗号分开即可
<列名2> INT NOT NULL UNIQUE--声明的时候,和创建表的时候一样
示例:
ADD GENDER BIT NOT NULL,--添加多个列不用括号,用逗号分开即可
CUSTOMERADDRESS INT NOT NULL UNIQUE--声明的时候,和创建表的时候一样
2、删除列
/*删除列*/
ALTER TABLE<表名>
DROP COLUMN <列名1>,<列名2>--使用关键字COLUNM(列)
示例:
ALTER TABLE T_CUSTOMER
DROP COLUMN GENDER,CUSTOMERADDRESS--使用关键字COLUNM(列)
/*每个列名之间用逗号隔开,如果列上有任何约束,则需要先删除约束*/
3、添加主键约束,唯一性约束、check约束和默认值约束
/*添加主键约束,唯一性约束,check约束和默认值约束*/
ALTER TABLE <表名>
ADD CONSTRAINT <约束名> CHECK (CHECK约束内容),--CHECK约束,每个约束之间用逗号隔开CONSTRAINT <约束名> UNIQUE(<列名>),--唯一性约束
CONSTRAINT <约束名> DEFAULT <默认约束值或函数> FOR <列名> --默认值约束
示例:
ALTER TABLE T_CUSTOMER
ADD CONSTRAINT T_CUMSTOMER_AGE_CHECK CHECK (AGE>0),--CHECK约束
CONSTRAINT T_CUSTOMER_USERNAME_UNIQUE UNIQUE(USERNAME),--唯一性约束CONSTRAINT T_CUSTOMER_DEFAULT DEFAULT GETDATE()FOR MODIFIEDDATE--默认值约束
4、删除主键约束,唯一性约束、check约束和默认值约束
/*删除主键约束,删除唯一性约束、删除check约束,删除默认值约束*/
ALTER TABLE <表名>
DROP <约束名1>,<约束名2>,<约束名3>--后边直接跟约束名,用逗号隔开
示例:
ALTER TABLE T_CUSTOMER
DROP T_CUSTOMER_DEFAULT,--后边直接跟约束名,用逗号隔开
UQ__T_CUSTOM__EDBD0E1935BCFE0A,
CK__T_CUSTOMER__AGE__276EDEB3
如果创建的时候,没有显性的指定约束名,例如UNIQUE,CHECK等约束,可以通过SP_HELP T_CUSTOMER来查询所有的约束名。在查询结果的第7个结果集中,可以看到类似下图的结果,第一列是约束类型,第二列就是约束名,最后一列是列名。