sql建表及约束

上一篇 / 下一篇  2014-08-04 18:07:31 / 个人分类:数据库之SQL

1.建表

CREATE TABLE Persons
(
Id_P int,
LastName varchar(255),
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

 

 

2.增加unique约束的两种方法

a.UNIQUE (Id_P)

b.Id_P int NOT NULL UNIQUE,

设置多个unique约束:

CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName)

 

3.取消unique约束

alter table PERSONS

add constraint uQ_Lastname unique (Lastname)

取消所有的unique约束:

ALTER TABLE Persons

DROP CONSTRAINT uc_PersonID

 

4.修改

update persons set Lastname='wang' where Id='123456'

update persons set lastname='zhang',City='xiangxi' where Id='123987'

 

5.删除

delete persons where Id='123456'

 

6.插入

insert into persons values('123456','wang','fang','shanghai','yuhua')

 

7.top的用法:选择前两条记录

select top 2*from persons

select top 50 percent * from persons    选择前50%的记录

 

8.like的用法

select *from persons where City not like '%g' 

 

9.left joinright joinfull join的用法

select persons.Lastname,persons.firstname,student.name

from persons

Left join student

on persons.Id=student.Id

order by persons.Lastname

 

select persons.Lastname,persons.firstname,student.name

from persons

right join student

on persons.Id=student.Id

order by student.name

 

select persons.lastname,persons.firstname,student.name

from persons

full join student

on persons.Id=student.Id

order by persons.Lastname

 

10unionunion all的用法

UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

union会把所有的内容显示出来,除了重复值,而union all会把所有的信息显示出来包括重复信息

 

11select   into的用法

备份数据表的某些域

select persons.Lastname,persons.firstname

into persons_bak

from persons

where city='beijing'

 

12.降序和升序的用法

SELECT Company, OrderNumber FROM OrdersORDER BY Company DESC, OrderNumber ASC

 

13.check的用法

SQL CHECK 约束

CHECK约束用于限制列中的值的范围。

如果对单个列定义CHECK约束,那么该列只允许特定的值。

如果对一个表定义CHECK约束,那么此约束会在特定的列中对值进行限制。

CREATE TABLE Persons
(
Id_P int NOT NULL
CHECK (Id_P>0),
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

对多个列的值的限制

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT chk_Person CHECK (Id_P>0 AND City='Sandnes')
)

 

14.default约束

SQL DEFAULT 约束

DEFAULT约束用于向列中插入默认值。

如果没有规定其他的值,那么会将默认值添加到所有的新记录。

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255) DEFAULT 'Sandnes'
)

增加约束

ALTER TABLE Persons
ALTER COLUMN City SET DEFAULT 'SANDNES'

撤销约束

ALTER TABLE Persons
ALTER COLUMN City DROP DEFAULT



在做数据库系统开发时,特别是需要对数据库操作进行性能测试及优化时,我们就需要在数据库测试表中插入大量数据以便测试。对于这些数据的插入,这里通过实例展示如何通过存储过程进行实现。

数据库表(userInfo)结构如下:
CREATETABLE[dbo].[userInfo](
[userID][int]IDENTITY(1,1)NOTNULL,
[roleType][int]NULL,
[groupID][int]NULL,
[userCode][varchar](50) COLLATE Chinese_PRC_CI_ASNULL,
[userName][varchar](50) COLLATE Chinese_PRC_CI_ASNULL,
[text1][varchar](50) COLLATE Chinese_PRC_CI_ASNULL,
[text2][varchar](50) COLLATE Chinese_PRC_CI_ASNULL,
[text3][varchar](50) COLLATE Chinese_PRC_CI_ASNULL
)
ON[PRIMARY]
GO
存储过程如下(这里是批量插入99000条数据,roleType,groupID两个字段为随机生成的0-5之间的数):
CREATEPROCEDUREadd_UserInfo
AS
DECLARE@userCodeVARCHAR(30)
DECLARE@userNameVARCHAR(30)

DECLARE@userCode_baseVARCHAR(30)
DECLARE@countINTEGER
DECLARE@indexINTEGER
DECLARE@rand1INTEGER
DECLARE@rand2INTEGER
SET@userCode_base='qs_'
SET@userName='userName'
SET@count=100000
SET@index=10000

WHILE@index<@count
BEGIN
SET@userCode=@userCode_base+CONVERT(VARCHAR,@index)
SET@rand1=convert(int,rand()*5)
SET@rand2=convert(int,rand()*5)
INSERTINTOuserInfo (userCode,roleType,groupID,userName,text1,text2,text3)
VALUES(@userCode,@rand1,@rand2,@userName,'aokei kaol jof','','aokei kaol jof')

SET@index=@index+1
END
GO
 sql语句里面的COLLATE主要用于对字符进行排序,经常出现在表的创建语句中
  列:CREATE TABLE tt
  [ID] [bigint] IDENTITY(1,1) NOT NULL,
  [FTUID] [varchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL,
  表示输入记录是,FTUID按照Chinese_PRC_CI_AS 格式进行排序


TAG:

 

评分:0

我来说两句

日历

« 2024-04-28  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 43496
  • 日志数: 15
  • 建立时间: 2014-08-04
  • 更新时间: 2015-10-21

RSS订阅

Open Toolbar