SQL语法总结——基础篇

综合阅览:数据库总复习前半部分

 

 

 

 

1.         创建数据库

create database mydb                                 --创建数据库

on primary                                                --主文件组

       ( name = 'mydb_pri',

         filename = 'c:/mydb_pri.mdf ',          --主数据文件MDF

         size = 10,

         maxsize = 50,

         filegrowth = 5

       )

log on

       ( name = 'mydb_log',

         filename = 'c:/mydb_log.ldf ',           --日志文件LDF

         size = 10,

         maxsize = 20,

         filegrowth = 2

       )

Go

 

2.         --查看数据库

sp_helpdb 'mydb'

 

3.         --创建表格

create table sp

(

       spbh       int identity(1001,1) primary key,                 --商品编号

       spmc      varchar(20),                                      --商品名称

       spsj  money,                                                     --商品售价

       scrq datetime                                                   --生产日期

)

Go

 

4.         --修改表

alter table sp

add spsl int                          --添加字段

 

alter table sp

alter column spsl bigint         --修改字段

 

alter table sp

drop column spsl                  --删除字段

go

 

5.         增删改查记录

--插入数据

insert sp

values('cocacola',1.8,3.0,1011,101,'2006-9-20')

 

--修改数据

update sp

set spjj = 1.0,spsj = 2.2

where spmc = 'cola'

 

--删除一行数据

delete sp

where spmc = 'cola'

 

--查看表(*表示所有字段)

select * from sp

 

6.         约束,完整性

主键约束  primary key                              

外键约束  foreign key references       表名(列名)

检查约束  check(字段 in('',''))

默认约束  default '',

非空约束  not  null

 

7.         单表查询

Select  字段列表  from 表名

top  n   n行记录

distinct   限制不重复的记录

Where

条件 not | and | or 条件

不能用聚合函数

可用between and

可用in(,,)

Like 通配符

%  0n个字符

[ ]  中括号里任意某个字符

Group by 字段1,字段2

 

Having  条件

可用聚合函数 sum,avg,max,min,count

Order by字段1,字段2

Asc  desc

 

8.         函数

--显示当前日期

select getdate()

 

--显示当前月份

select datepart(m,getdate())

 

--两个日期相差的天数

datediff(day,日期1,日期2)

 

--类型转换函数

Cast(字段或变量 as  新数据类型)

Convert(新数据类型, 字段或变量, 样式)

 

9.         多表连接查询

1>       交叉连接

Select 字段列表 from 1 cross  join 2

Select 字段列表 from 1,表2

2>       内连接

Select 字段列表 from 1 inner  join 2

on 条件

3>       外连接

Select 字段列表 from 1 left | right | full  outer  join 2

on 条件

 

10.     子查询(常见格式)

1>       Select 字段列表 from 1

Where 字段 [not] in

       (Select 字段 from 2)

2>       Select 字段列表 from 1

Where [not]exists

       (Select 字段 from 2

Where1.字段 = 2.字段)

3>       Select 字段列表 from 1

Where 字段 {= < >}  [any | all]

       (Select 字段 from 2)

综合实践:数据库总复习前半部分

实践1:创建和维护SQL Server数据库

(1)      使用下表提供的值,创建数据库ClassNorthwind

           

数据库名称

ClassNorthwind

数据库文件名

ClassNorthwind_Data

位置

C:/data

初始大小

25MB

文件组

Primary

文件增长

1MB

最大文件长度

100MB

事务日志文件名称

ClassNorthwind_Log

位置

C:/data

初始大小

15MB

文件增长

1MB

最大文件长度

30MB

 

(2)       使用sp_helpdb存储过程浏览有关数据库ClassNorthwind的信息

 

 

实践2:创建和修改SQL Server数据库的表

(1)      创建数据库ClassNorthwind中的雇员表Employees、雇员工资表wage和工资税表tax

雇员表Employees:

     

     

     

EmployeeID

Intidentity ,初值为1,增量为1

NOT NULL

Name

VarChar(10)

NOT NULL

Sex

Char(2)

NOT NULL

Birthdate

Datetime

NULL

Address

Varchar(50)

NULL

Phone

Char(13)

NULL

Remark

text

 

 

雇员工资表wage:

     

     

     

EmployeeID

Int

NOT NULL

Name

VarChar(10)

NOT NULL

Wage

money

NOT NULL

Putdate

Date

NOT NULL

 

工资税表tax:

     

     

     

EmployeeID

Int

NOT NULL

Name

VarChar(10)

NOT NULL

Tax

money

NOT NULL

Paydate

Date

NOT NULL

 

(2)       雇员表Employees中添加列Department varchar(20) NULL

(3)       修改雇员表Employees中的列Address varchar(60)

(4)       删除雇员表Employees中的列Remark

(5)       用存储过程sp_help查看三个表的信息

(6)       向雇员表Employees中插入十个雇员信息

(7)       向雇员工资表wage中插入十个雇员相应的工资发放情况信息

(8)       向工资税表tax中插入十个雇员相应的交税情况

 

实践3:查询SQL Server数据库表的信息

(1)      列出每个雇员的工资、税款情况一览表

(2)      列出工资超过1000元,而未交税的雇员

(3)      列出工资在1000元以下,不应该交税的雇员情况一览表

(4)      列出只领工资而未交税的雇员表

(5)      对以上四种情况各作一统计报告

(6)      删除三个表中的所有记录

 

实践4SQL Server数据库的高级查询

(1)      分别列出在雇员表Employees中而未领工资和未交税的男、女雇员情况

(2)       查询电话号码区号为(010)、工资大于3000的男雇员情况

(3)       查询交税最多的六名雇员情况

(4)       列出工资在前六名的,而交税并不在前六名的雇员情况

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值