当前位置:首页 » 编程语言 » sql命令创建一个员工工资表
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql命令创建一个员工工资表

发布时间: 2022-06-20 04:36:43

㈠ Test数据库中,用T-sql语句创建员工工资表,各列的要求如 下表所示

CREATE TABLE [dbo].[员工工资表](
[NO] [int] NOT NULL,
[Xm] [varchar](30) NOT NULL,
[Gz] [decimal](8, 2) NULL,
[YwJj] [decimal](8, 2) NULL,
[Sds] [decimal](8, 2) NULL,
[SfGz] AS (([Gz]+[YwJj])-[Sds]),
CONSTRAINT [PK_员工工资表] PRIMARY KEY CLUSTERED
(
[NO] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'编号、主键' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'员工工资表', @level2type=N'COLUMN',@level2name=N'NO'
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'姓名' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'员工工资表', @level2type=N'COLUMN',@level2name=N'Xm'
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'工资' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'员工工资表', @level2type=N'COLUMN',@level2name=N'Gz'
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'业务奖金' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'员工工资表', @level2type=N'COLUMN',@level2name=N'YwJj'
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'所得税' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'员工工资表', @level2type=N'COLUMN',@level2name=N'Sds'
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'实发=Gz+YwJj-Sds' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'员工工资表', @level2type=N'COLUMN',@level2name=N'SfGz'

㈡ Access数据库,怎样用sql语句生成工资表

我想说这数据库结构谁设计的?建议你把第一张表结构改成3列(职等,职务,工资)你的基础工资标准的主键(这里业务主键需要职等、职务共同决定工资)都没有,不能唯一确定一行。

㈢ SQL语句创建表

CREATE TABLE 语句用于创建数据库中的表。

具体用法为:

CREATE TABLE 表名称

(

列名称1 数据类型,

列名称2 数据类型,

列名称3 数据类型,

....

)

(3)sql命令创建一个员工工资表扩展阅读

创建表数据类型:

integer(size) int(size) smallint(size) tinyint(size):仅容纳整数。

decimal(size,d) numeric(size,d):容纳带有小数的数字。

char(size):容纳固定长度的字符串

varchar(size):容纳可变长度的字符串

date(yyyymmdd):容纳日期。

参考资料:网络-SQL CREATE TABLE

㈣ 创建一个存储过程,以员工号为参数,输出该员工的工资。(急)

CREATEORREPLACEPROCEDURE存储过程名(in_idINVARCHAR2,out_wageOUTVARCHAR2)

AS BEGIN SELECT wage(此为你数据库表中员工工资字段名) intoout_wageFROM员工工资表名 WHERE id(此为你数据库表中员工工号字段名)=in_id;

END 存数过程名;in_id为输入的员工工号;out_wage为查询后输出地工资。在此例中,它们为VARCHAR2,设置的为NUMBER类型,要相应做修改。

(4)sql命令创建一个员工工资表扩展阅读

这类语言主要提供以下功能,让用户可以设计出符合应用需求的程序:

1、变量说明

2、ANSI(美国国家标准化组织)兼容的SQL命令(如Select,Update….)

3、一般流程控制命令(if…else…、while….)

4、内部函数

种类

1.系统存储过程

以sp_开头,用来进行系统的各项设定.取得信息.相关管理工作。

2.本地存储过程

用户创建的存储过程是由用户创建并完成某一特定功能的存储过程,事实上一般所说的存储过程就是指本地存储过程。

3.临时存储过程

分为两种存储过程:

一是本地临时存储过程,以井字号(#)作为其名称的第一个字符,则该存储过程将成为一个存放在tempdb数据库中的本地临时存储过程,且只有创建它的用户才能执行它;

二是全局临时存储过程,以两个井字号(##)号开始,则该存储过程将成为一个存储在tempdb数据库中的全局临时存储过程,全局临时存储过程一旦创建,以后连接到服务器的任意用户都可以执行它,而且不需要特定的权限。

4.远程存储过程

在SQL Server2005中,远程存储过程(Remote Stored Proceres)是位于远程服务器上的存储过程,通常可以使用分布式查询和EXECUTE命令执行一个远程存储过程。

5扩展存储过程

扩展存储过程(Extended Stored Proceres)是用户可以使用外部程序语言编写的存储过程,而且扩展存储过程的名称通常以xp_开头。

参考资料来源:网络-存储过程



㈤ 利用SQL语句的定义功能,建立一个职工表文件,其中为职工号建立主索引,工资的默认值为1200,语句格式为:

CREATE TABLE 职工(仓库号 Char(5) ,职工号 Char(5) primary key,工资 Int default(1200) )

㈥ 创建员工表EMP和工资表SAL,通过关联修改实现将“男”员工工资提高10%,写出相应SQL语句。

CREATETABLEEMP
(
EmployeeNameNVARCHAR(32),
SexNVARCHAR(1)
)


CREATETABLESAL
(
EmployeeNameNVARCHAR(32),
SalaryINT
)
INSERTINTOEMP
SELECT'张三',
'男';

INSERTINTOEMP
SELECT'李四',
'女'

INSERTINTOSAL
SELECT'张三',
100

INSERTINTOSAL
SELECT'李四',
100

SELECT*
FROMsal

UPDATEsal
SETSalary=Salary*1.1
FROMEMPb
WHEREdbo.SAL.EmployeeName=b.EmployeeName
ANDb.Sex='男'

SELECT*
FROMsal

㈦ 试编写一个简单SQL脚本程序,创建工资表并完成计算实发工资的任务。

SELECT A.*,实发工资=应发工资-税款
FROM (SELECT 职工号,姓名,基本工资,附加工资,基本工资+附加工资 AS 应发工资,
CASE WHEN 基本工资+附加工资>5000 THEN 0.2 WHEN 基本工资+附加工资>2000
THEN 0.1 WHEN 基本工资+附加工资>800 THEN 0.05 ELSE 0 END*基本工资+附加工资 AS
税款 FROM R) A

㈧ sql员工工资表

各个字段名叫什么,还是要任意取啊???

㈨ 各位帮个忙,万分感谢

create table worker(
wokerid int,
workername char(8),
sex char(2),
borndata datetime,
partymember bit,
job datetime,
departid int);

create table depart(
departid int,
departname char(10));

create table salary(
workerid int,
data datetime,
pay decimal(6,1));

1.
create table salary(
workerid int,
data datetime,
pay decimal(6,1),
PRIMARY KEY (workerid,data),
FOREIGN KEY (workerid) REFERENCES worker(workerid));

2.
select workerid,localtime-borntime
from worker

3.
create view aaa as
select departid,count(workerid)
from worker
where partymember=0
group by departid

4.
select workerid,workername,departname,pay
from worker,depart,salary
where worker.workerid=salary.workerid
and worker.departid=depart.departid
and data='2007-02'
order by departname desc

5.
update salary
set pay=pay*1.05
where pay<(select avg(pay) from salary)

6.
create index i_woker on worker(departid asc,borndata desc)

7.

先到这里,刚做完数据库试验,还比较清晰,加分的话再作剩下的好了。

㈩ 用SQLsever编写:​设计一个新表(EMPLOYEES1),要求在公司工作20年以上员工的工资加薪

在您另一个提问贴中回答了,这里也再答一次吧。
用下面的语句实现吧:
update a
set Salary = a.Salary+b.Salary
from Employee_0001 as a,(select DepartmentId,avg(Salary) as Salary from Employee_0001 group by DepartmentId)b
where a.DepartmentId=b.DepartmentId and datediff(yy,a.Hiredate,getdate())>=20

原理是把Employee_0001表与计算平均工资的临时表用DepartmentId关联起来,再通过where的条件判断,只将工龄大于或等于20的执行更新操作。