首先SQL不是数据库,数据库的应用离不开SQL。 SQL是结构化查询语言(Structured Query Language)的缩写。网上有很多这样的教程。 数据库系统(DataBase System)是以数据库应用为基础的计算机系统。由数据库、硬件(计算机硬件设备)、软件(数据库管理系统 、操作系统)、用户(应用程序设计员、终端用户、数据库管理员 )组成。 你所说的数据库应该指的就是数据库产品,大型的有ORACLA,SYBASE,DB2,INFORMIX,SQL SERVER等等。而SQL就是这些关系型数据库使用的标准语言。 所以你要设计数据库,必须选择一个适用你的数据库产品,甚至小型的桌面数据库如ACCESS之类的也可以。 对于数据库的详细使用,前提是必须要安装相应的产品,然后需要掌握基本的SQL知识之后,才能实现你的要求,这是必要的过程!例:使用SQL建表语句如下: create table curricula( curricula_id int not null, --课程号 curricula_name char(20) not null, --课程名
2. SQL数据库如何设计表的格式
基础表 矿井产量分类 回采煤量
掘进煤量
其他煤量
煤种分类 贫煤
贫瘦煤
…
指标名称 11 入洗量
12 精煤
121 精煤级别
8级
9级
…
122 精煤种类
肥精
焦精
…
13 中煤
14 煤泥
月计划 年月
矿井产量分类
煤种分类
计划量
实际发生 日期
矿井产量分类
煤种分类
指标
产量
预算内,预算外还要具体了解一下吧
3. sql语句设计,在线等,急!
在线等,急!
4. T-SQL程序设计(用户自定义函数)
很简单,但是以后最好能认真点, 首先你问问提至少要带个请字吧,大学老师留的课题你直接抄过来就完事了?
给你说最后一个
create function f_tableinfo
(
@tableName nvarchar(200)
)
returns @result table (
ColName nvarchar(200),
ColType nvarchar(200),
ColLength int,
ColIsNull bit
)
as
begin
insert into @result(ColName,ColType,ColLength,ColIsNull)
select
c.[name] as ColumnName,
t.[name] as ColumnType,
c.max_length as MaxLength,
c.is_nullable as [IsNull]
from sys.columns c
inner join sys.types t on c.system_type_id=t.system_type_id
where c.[object_id]=object_id(@tableName) and t.[name]<>'sysname'
order by c.column_id
return
end
5. SQL 表结构设计
#三个表 代课教师表 科目表 成绩表
#成绩表的字段是这样的
#学号 姓名 语文 数学 英语
成绩表的字段应该是
学号 科目ID 成绩
学号 和 科目ID 两个字段作联合主键
避免一个学号有2个语文成绩的情况出现
#代课教师表
#班级 科目名称 代课教师
代课教师表的字段应该是
班级ID 科目ID 代课教师ID
班级ID 和 科目ID 两个字段作联合主键
避免一个班级有2个老师上语文课
#科目表
#科目ID 科目名称
科目表没有问题
科目ID主键
增加
学生表
学号 学生姓名 班级ID(班级表.班级ID的外键)
学号主键
班级表
班级ID 班级名
班级ID主键
教师表
代课教师ID 代课教师姓名
代课教师ID主键
#成绩表中的语文、数学、英语就是科目名称
#想生成
# 代课教师 总分 均分 及格率 优秀率
#语文
#数学
#英语
#成绩表中的语文、数学、英语就是科目名称
#总也设计不好查询,经大伙提示,说成绩表的结构不对。
应该是想生成
科目名称 代课教师姓名 总分 均分 及格率 优秀率
吧
这个sql 还是有点小复杂的,
麻烦的地方是,需要结合成绩表,学生表,代课教师表三个
表,来确定一个学生的各科成绩到底是属于哪个老师的
具体的你自己练习一下吧
6. sql程序设计
建议楼主不要用触发器,那样会耗费很大资源,数据会出错。如果那两个表并发插入数据量很大的话,会出问题。建议还是用软件来写。
7. sql语句创建表
创建新表的程序功能为:
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
具体为:
创建之前判断该数据库是否存在
if exists (select * from sysdatabases where name='databaseName')
drop database databaseName
go
Create DATABASE databasename
on primary-- 默认就属于primary文件组,可省略
(
/*--数据文件的具体描述--*/
name=‘databasename_data’,-- 主数据文件的逻辑名称
filename=‘'所存位置:databasename_data.mdf’, -- 主数据文件的物理名称
size=数值mb, --主数据文件的初始大小
maxsize=数值mb, -- 主数据文件增长的最大值
filegrowth=数值%--主数据文件的增长率
)
log on
(
/*--日志文件的具体描述,各参数含义同上--*/
name='databasename_log', -- 日志文件的逻辑名称
filename='所存目录:databasename_log.ldf', -- 日志文件的物理名称
size=数值mb, --日志文件的初始大小
filegrowth=数值%--日志文件的增长值
)
结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;
sql 语句就是对数据库进行操作的一种语言。
(7)SQL程序设计表扩展阅读
1、常见语句
更新:update table1 set field1=value1 where 范围
查找:select * from table1 where field1 like ’%value1%’ (所有包含‘value1’这个模式的字符串)
排序:select * from table1 order by field1,field2 [desc]
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1[separator]
2、高级查询
A:UNION运算符
UNION 运算符通过组合其他两个结果表(例如TABLE1 和TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随UNION 一起使用时(即UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自TABLE1 就是来自TABLE2。
B: EXCEPT运算符
EXCEPT 运算符通过包括所有在TABLE1 中但不在TABLE2 中的行并消除所有重复行而派生出一个结果表。当ALL 随EXCEPT 一起使用时(EXCEPT ALL),不消除重复行。
C:INTERSECT运算符
INTERSECT 运算符通过只包括TABLE1 和TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当ALL 随INTERSECT 一起使用时(INTERSECT ALL),不消除重复行。
注:使用运算词的几个查询结果行必须是一致的。
8. sql 三种表是什么 百度百科
sql一般指结构化查询语
结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
9. 如何设计SQL数据库表格才能完美的存放这个报表的内容,求大神解答~
你这个表格需要程序支撑,比如每个月数据的录入以及平均日进量的计算等等
如果什么都不考虑,就是人工采集数据,直接录入,然后通过一个程序展示报表
那么表结构大概这样
队
组
工程名称
工程量(这个其实可以几列合计,不需要建列)
平均日进(这个应该能通过工程量/生产天数,也不需要保存,看你需要)
月进(也许是月平均值,没仔细看你数据关系,总之可以通过计算的就不需要在表中体现)
生产天数(估计是起止时间差,用datediff函数可以得到)
开始时间
截止时间
巷道性质
备注
4月(这部分我估计你是每季度一张表,每个记录保存三个月就够了,所以列名可以分别写月1、月2、月3,到时候生成表头的时候再调整)
5月
6月
至于列的性质,建议你数字的用int,字符的用varchar(50),时间也用varchar(20),改动方便
合计列和小计列要在生成报表的时候处理