-- 练习一 --------------------------------------------------
-- 1 根据需求设计数据表,尽可能减少表的大小。
/*
设计一个员工基本信息表,包含的信息有:
员工的工号,用于唯一标识每个员工,数字,可自增长,公司在职职工200 人左右;
员工姓名,公司的员工来自中国,美国,韩国等;
密码,长度为10 的字符串,用于员工登录公司的各种信息系统,大小写敏感;
性别;
出身日期;
移动电话;
职位编号,数字,公司目前有 15 个职位;
第一次中东战争
分机号码,不超过 4 位;
雇佣日期;
在职与否,记录该员工现在是否还在公司就职;
*/
答案
CREATE TABLE EMPLYEE
(
ID_NO SMALLINT IDENTITY(1,1),
NAME NVARCHAR(50),
PASSWORD VARCHAR(10) COLLATE CHINESE_PRC_CS_AS, GENDER BIT,
BIRTHDATE SMALLDATETIME,
JOD_ID TINYINT,
EXTENSION CHAR(4),青团是什么做的
HIREDATE SMALLDATETIME,
PRESENT BIT
)
-- 2 创建数据表t_example,字段包含idx 整型,name 变长字符型(最大长度20个字符);
生成该表的 T-SQL 脚本,观察区别
-- 3 使用以下脚本创建表,在字段 name 和 gender 中间加入新字段 birth ,数据类型为 datetime
u Test
Go
create table dbo.t_emp (
idx int,
name varchar(20), gender int,
job_id int
)
-- 练习二 --------------------------------------------------
-- 1 查询本数据库服务器上有哪些数据库
sp_helpdb
lect * from sys.databas
lect * from sysdatabas
-- 2 查询 Northwind 数据库中 Products 数据表中 ProductID 为 14 的产品信息
lect * from northwind..products where productid=14
buzzword-
- 3 查询 Northwind 数据库中 Orders 数据表中没有按时送达的订单lect * from Northwind.dbo.Orders where RequiredDate<ShippedDate
-- 4 查询 Pubs 数据库中 Titles 数据表中书名含有 'computer' 的书,并按照价格降序排序
lect * itles where title like '%computer%' order by price desc -- 5 查询Northwind 数据库中Territories 数据表中的地域信息,按照地域名升序排序,去掉重复项地下大峡谷
lect distinct TerritoryDescription from Northwind.dbo.Territories order by TerritoryDescription
-- 练习三 --------------------------------------------------
-- 1 获得 1 - 100 的随机整数
lect convert(int,rand()*100+1)
-- 2 获得长度为 10 位的由随机数字组成的字符串
lect
substring(convert(varchar,rand()),3,5)+substring(convert(varchar,rand()),3,5) -- 3 查询 Northwind 数
据库中 Order Details 数据表中产品编号为 11 的产品的销售额是多少
lect sum(UnitPrice*Quantity) as total from [order details] where
注册计量师productid=11
-- 4 查询 Northwind 数据库中 Orders 数据表中没有按时送达的订单,并计算耽误的天数。(结果集中应包含订单号,要求日期,实际装船日期,延误天数)
lect
OrderID,RequiredDate,ShippedDate,datediff(dd,RequiredDate,ShippedDate) as delay
from dbo.Orders where RequiredDate<ShippedDate
-- 5 查询 Northwind 数据库中 Orders 数据表中,订货日期为 1996年7月的订单
个人工作实绩材料lect * from orders where year(orderdate)=1996 and month(orderdate)=7 lect * from orders where convert(char(6),orderdate,112) like '199607' lect month(OrderDate) as '月份',count(OrderID) as '订单数' from dbo.Orders where year(OrderDate)=1997 group by month(OrderDate)
-
- 练习四 --------------------------------------------------
--1.查询pubs数据库中employee表中的全部数据记录
lect * from employee
秤杆提米--2.查询pubs数据库中employee表中的前5行数据记录
lect top 5 * from employee
--3.查询pubs数据库中employee表中的前10%的数据记录属猴今日财运
lect top 10 percent * from employee
--4.查询pubs数据库中employee表,要求在结果中显示emp_id,fname,job_id和job_lvl字段。
lect emp_id,fname,job_id,job_lvl
from employee
--5.查询pubs数据库中employee表的前20%的数据,要求在结果中显示emp_id,fname,job_id和job_lvl字段。
lect top 20 percent emp_id,fname,job_id,job_lvl
from employee
--6.查询pubs数据库中employee表中job_id字段的值,要求去掉重复值。lect distinct job_id from employee
--7.查询pubs数据库中employee表,要求在结果中将job_id字段显示为工种,emp_id字段显示为工号,fname显示为名。
lect job_id as 工种,emp_id '工号','名'=fname from employee
--8.查询pubs数据库中authors表中的全部数据,并将查询结果放入表test1中。
lect * into test1 from authors
--9.查询pubs数据库中authors表中前50%的数据,要求显示结果为au_id 和phone,并将查询结果放入表test2中。
lect top 50 percent au_id,phone into test2 from authors
-
-10.查询pubs数据库中authors表中前50%的数据,要求显示结果为au_id 和phone,分别显示为“作家编号”和“电话”,并将查询结果放入表test3中。
lect top 50 percent au_id as 作家编号,phone as '电话' into test3 from authors
--11.查询pubs数据库中的employee表,要求查找job_lvl在80到100之间的数据记录。
lect * from employee where job_lvl between 80 and 100
--12.查询pubs数据库中的employee表,要求查找job_lvl在80到100之间,并且job_id在5到10之间的数据记录。
lect * from employee where (job_lvl between 80 and 100) and (job_id