SQL
公司主营业务:成都网站设计、做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联推出沂水免费做网站回馈大家。
Server下建立数据库、建表的方法:
1、首先打开SQL
Server
Management
Studio,会看到如下的界面:
点开数据库会出现
2、右键单击数据库,点击新建数据库,会出现以下界面:
3、在数据库名称栏中输入需要的名称,如xx然后点击确定即可。之后就可以在左边的列表中找到新建的数据库了如图:
这样,一个名字为xx的数据库就建好了。
4、然后可以将新建好的数据库展开。然后右键单击里面的表找到新建数据库,会出现以下界面:
5、然后可以在列中输入需要的名称(用英文形式),如输入的年龄,性别,地址,电话,身份证,民族(name
address
phone
ID
nation一般为nvardhar类型,age
一般为int类型)如图:
6、然后点保存,它会提示输入表的名称(一般为英文复数形式),然后点确定,就可以在左边找到我们新建的表了,比如新建的表的名称为个人基本信息PersonalInformations.
这样一张表就建好了。
7、表建好之后就可以进行添加内容了。右键单击表,选择里面的编辑前二十行,出现一下界面:
在里面输入需要的值就可以。
你搞错了一个概念,null
和
空不是同一个概念
下面的语句数据库会报错
insert
into
tbtest
values(null,1,1)
这个才会报错
无法将
NULL
值插入列
'id',表
'tempdb.dbo.tbtest';该列不允许空值。INSERT
失败。
语句已终止。
但是
insert
into
tbtest
values('',1,1)
你第一遍插入式数据库会把''转换成int型的0处理
第二次再用
insert
into
tbtest
values('',1,1)
就会报主键冲突错误应为数据中已经有了一条主键为0的记录
违反了
PRIMARY
KEY
约束
'pk_1'。不能在对象
'tbtest'
中插入重复键。
语句已终止。
所以你不希望写入控制的控制可以放在前台处理,强制用户必须输入有效的ID就行了
你是想问数据库建表的步骤吗?步骤如下:
第一步:打开sqlservermanagement,展开要建表的数据库,右键单击表,选择新建下面的表。
第二步:设计表的字段,给字段设置默认值,按Ctrl+S进行保存,给表起一个名字即可创建成功。
在ACCESS中,表(TABLE)是数据库中用来存储数据的对象,是有结构的数据的集合,是整个数据库系统的基础。表定义为列的集合。与电子表格相似,数据在表中式按行和列的格式组织排列的。表中的每一列都设计为存储某种类型的信息(例如日期、名称、美元金额或数字)。表上有几种控制(约束、规则、默认值和自定义用户数据类型)用于确保数据的有效性。
create table xxx(id number,time date)
parttion by range(time)
(partion part1 values less than (to_date('2012-01-31','yyyy-mm-dd')) tablespace tb1,
partion part 2 vales less than(to_date('2012-01-31','yyyy-mm-dd')) tablespace tb2);
创建数据库和表的操作有两种方法:
一、可视化操作
1.创建数据库
选中数据库右击,在出现的对话框中选择新建数据库,然后新出现的对话框中填写数据库的名称
2.创建数据表
选中数据库下的表右击,在出现的对话框最上方有新建表选项,新出现的对话框中有列名、数据类型、允许Null值三列,这里可以添加表的的列,添加好列后保存Ctrl+S或者点击上方的保存,填写表名称确定就创建好了。
二、使用SQL语句创建
1.创建数据库
create database stuDB --stuDB是数据库的名称
on primary -- 默认就属于primary文件组,可省略
(
/*--数据文件的具体描述--*/
name='stuDB_data', -- 主数据文件的逻辑名称
filename='D:\stuDB_data.mdf', -- 主数据文件的物理路径和名称
size=5mb, --主数据文件的初始大小
maxsize=100mb, -- 主数据文件增长的最大值
filegrowth=15%--主数据文件的增长率
)
log on
(
/*--日志文件的具体描述,各参数含义同上--*/
name='stuDB_log',
filename='D:\stuDB_log.ldf',
size=2mb,
filegrowth=1mb
)
-----2.创建数据表
use StuDB --使用某个数据库(在某个数据库下建表)
go
if exists(select * from sysobjects where name='stuMarks')--查询数据库是否已存在此表
drop table stuMarks--如果存在该表则删除,不存在不执行此句
create table stuMarks --stuMarks是表的名称
(
ExamNo int identity(1,1) primary key,--列名 数据类型 约束
stuNo char(6) not null,--列名 数据类型 是否允许插入Null值
writtenExam int not null,
LabExam int not null
)
go
-- 其中,列属性"identity(起始值,递增量)" 表示"ExamNo"列为自动编号, 也称为标识列alter table 表名
add constraint 约束名 约束类型 具体的约束说明
alter table 表名
drop constraint 约束名
表名前使用一个#号,临时表是局部的,使用两个#号,临时表是全局的,在断开连接后sql会自动删除临时表
create table #a
(
id int,
name varchar(50)
)
insert into #a(id,name) values(1,'123')
select * from #a
drop table #a
临时表除了名称前多了#号外,其他操作与普通表完全一样。
tb_Student是已建立好的表,我们通过临时表temp把tb_Student表中的内容复制到tb_lizi表中,可以使用如下的代码实现:
use mcf
SELECT * INTO #temp FROM tb_Student
SELECT * INTO tb_lizi FROM #temp
执行后断开sql连接并重新连接(也可以退出sq再l重新启动sql),发现tb_lizi表中的内容tb_Student表中的内容完全一致,实现了复制,同时我们没有用代码删除temp表,但mcf数据库中却没有temp表了,这是因为断开连接时sql自动删除了temp表