文章目录

  • 一、创建数据库
    • 1、创建默认数据库
    • 2、创建指定参数位置数据库
    • 3、添加NDF数据文件
  • 二、创建表
  • 三、创建主键
    • 1、创建主键
    • 2、对已创建的表进行主、外键设置

一、创建数据库

1、创建默认数据库

# 创建一个默认的数据库test
create database test


创建完之后点击执行,则左边的列表当中会多出一个数据库。

查询默认数据库的地址:

右键数据库进入属性

在文件选项中可以查看默认数据库:

2、创建指定参数位置数据库

 create database S072003DBSON -- 创建数据文件(NAME='S072003DATA', --文件名FILENAME='D:\S072003DBS\S072003DATA.MDF',  --文件路径SIZE=10, --初始大小MAXSIZE=100, --最大容量FILEGROWTH=10 --自动增长容量)LOG ON -- 创建事务日志文件 (NAME='S072003LOG',FILENAME='D:\S072003DBS\S072003LOG.LDF',SIZE=10,MAXSIZE=100,FILEGROWTH=10)
-- 注意:最后一个变量后面不能加逗号,否则会报错

3、添加NDF数据文件

-- 修改带有NDF数据文件的数据库ALTER DATABASE S072003DBSADD FILE(NAME='S072003DATANDF01',FILENAME='D:\S072003DBS_NDF\S072003DATANDF01.NDF',SIZE=10,MAXSIZE=100,FILEGROWTH=10)

此时如下图就可以看到创建出的NDF文件:

此外,也可以通过手工的方式添加一个NDF文件

右键数据库之后点击属性,点击添加:



到此为止,MDF文件,和我们创建的两个NDF文件,共同构成了一个完整的逻辑数据库。

 -- 通过下面这个语句可以查看S072003DBS 这个数据库的相关信息
SP_HELPDB S072003DBS


4、移除NDF数据文件

将S072003228DATANDF01文件移除:

 ALTER DATABASE S072003DBSREMOVE FILE S072003228DATANDF01

二、创建表

如下图,在Excel当中有十张表,可以利用一些语句更加方便的创建表

 --创建产品信息表PRODUCTS
CREATE TABLE PRODUCTINFO
(PID INT,
PNAME NVARCHAR(50),
PROVIDERID INT,
PTID INT,
UNITS NVARCHAR(20),
PRICE DECIMAL(7,2),
STOCK INT,
ORDERQ INT,
REORDERQ INT)--创建订单信息表ORDERS
CREATE TABLE ORDERS
(ORDERID INT,
CUSTID CHAR(5),
EMPID INT,
ODATE DATETIME2,
SDATE DATETIME2,
ADATE DATETIME2,
SHIPPERID INT,
SHIPFEE DECIMAL(7,2),
POWNER NVARCHAR(20),
OWNERADD NVARCHAR(50),
OWNERCITY NVARCHAR(10),
OWNERREGION NVARCHAR(20),
OWNERZIP NVARCHAR(10),
OWNERCOUNTRY NVARCHAR(10))--创建订单明细表ORDERDETAIL
CREATE TABLE ORDERDETAIL
(ORDERID INT,
PID INT,
PRICE DECIMAL(7,2),
QUANTITY INT,
DISCOUNT DECIMAL(4,2),
CUSTID CHAR(5))--创建供应商信息表PROVIDERS
CREATE TABLE PROVIDERS
(PROVIDERID INT,
PROVIDERNAME NVARCHAR(50),
PROVIDERCOMNAME NVARCHAR(20),
PROVIDERCOMTITLE NVARCHAR(10),
PROVIDERADD NVARCHAR(50),
PROVIDERACITY NVARCHAR(20),
PROVIDERREGION NVARCHAR(20),
PROVIDERZIP NVARCHAR(10),
PROVIDERCOUNTRY NVARCHAR(10),
PROVIDERTEL NVARCHAR(20),
PROVIDERFAX NVARCHAR(20),
PROVIDERWEB NVARCHAR(50))--创建员工信息表EMPLOYEES
CREATE TABLE EMPLOYEES
(EMPID INT,
EMPFN NVARCHAR(20),
EMPLN NVARCHAR(20),
EMPTITLE NVARCHAR(20),
EMPRESPECT NVARCHAR(10),
EMPLEADER INT,
EMPHIER NVARCHAR(20),
EMPBIRTHDAY DATETIME,
EMPHIRE DATETIME,
EMPADD NVARCHAR(50),
EMPCITY NVARCHAR(20),
EMPREGION NVARCHAR(20),
EMPZIP NVARCHAR(10),
EMPCOUNTRY NVARCHAR(20),
EMPHOMTEL NVARCHAR(20),
EMPTELEXTEN NVARCHAR(10),
EMPPIC IMAGE,
EMPMEMO NVARCHAR(MAX))--创建订单类型表ORDERTYPE
CREATE TABLE ORDERTYPE
(ORDERTYPE NVARCHAR(50),
OTMIN INT,
OTMAX INT)--创建利率表RATEINFO
CREATE TABLE RATEINFO
(RCURRENCY NVARCHAR(10),
RATIO DECIMAL(5,2))--创建顾客信息表EMPLOYEES
CREATE TABLE CUSTOMERS
(CUSTID CHAR(5),
CUSTNAME NVARCHAR(50),
CUSTCOMNAME NVARCHAR(50),
CUSTCOMTITLE NVARCHAR(10),
CUSTADD NVARCHAR(50),
CUSTCITY NVARCHAR(10),
CUSTREGION NVARCHAR(10),
CUSTZIP NVARCHAR(10),
CUSTCOUNTRY NVARCHAR(20),
CUSTTEL NVARCHAR(20),
CUSTFAX NVARCHAR(20))--创建类型表PTYPES
CREATE TABLE PTYPES
(PTID INT,
PTNAME NVARCHAR(50),
PTMEMO NVARCHAR(50),
PTPIC IMAGE)--创建运货商信息表SHIPPERS
CREATE TABLE SHIPPERS
(SHIPID INT,
SHIPNAME NVARCHAR(50),
SHIPTEL NVARCHAR(20))

执行代码之后,数据库当中就多了十张表:

三、创建主键

1、创建主键

 --创建临时员工信息表EMPLOYEES(带有主键)
CREATE TABLE EMPLOYEESTEMP
(EMPID INT CONSTRAINT EMPID_PRI PRIMARY KEY,
EMPFN NVARCHAR(20),
EMPLN NVARCHAR(20),
EMPTITLE NVARCHAR(20),
EMPRESPECT NVARCHAR(10),
EMPLEADER INT,
EMPHIER NVARCHAR(20),
EMPBIRTHDAY DATETIME,
EMPHIRE DATETIME,
EMPADD NVARCHAR(50),
EMPCITY NVARCHAR(20),
EMPREGION NVARCHAR(20),
EMPZIP NVARCHAR(10),
EMPCOUNTRY NVARCHAR(20),
EMPHOMTEL NVARCHAR(20),
EMPTELEXTEN NVARCHAR(10),
EMPPIC IMAGE,
EMPMEMO NVARCHAR(MAX))


如图,创建了主键之后就多了一把锁

2、对已创建的表进行主、外键设置

如下图,想对PRODUCTINFO这张表的PID设置主键,但由于PID可以允许NULL,如果直接设置的话会报错

下面这两段代码要分开执行,不能一次运行:

# 先把PID设置为NOT NULLALTER TABLE PRODUCTINFOALTER COLUMN PID INT NOT NULL
-- 对已创建的表进行主键,外键的设置ALTER TABLE PRODUCTINFO
--  ALTER COLUMN PID INT NOT NULL ADD CONSTRAINT PK_PID PRIMARY KEY (PID)

此时就已经设置好主键了

数据库——创建数据库+创建表与主键相关推荐

  1. SQL SERVER 2008 创建,删除,添加表的主键

    创建有主键的表 create table 教师 (编号 char(10),姓名 char(10) not null,性别 char(2),年龄 int,职称 char(10),constraint a ...

  2. 数据库 MySQL 如何设置表的主键自增起始值

    文章目录 表已有数据,truncate 之后再设置 auto_increment,可行 表已有数据,delete from 之后再设置 auto_increment,可行 主键自增起始值重置 查询表名 ...

  3. MySQL:创建数据库,数据表,主键和外键

    目录 前言: 安装MySQL: 打开MySQL: 创建数据库: 查看已建数据库: 查看数据库引擎: 创建数据表: 主键约束: 单字段主键: 多字段联合主键: 外键约束: 前言: MySQL数据库安装了 ...

  4. MySql之DDL操作创建表(添加主键, 外键约束以及基本的数据类型)

    1.创建表基本语句 CREATE TABLE users( username VARCHAR(50) PRIMARY KEY, userpwd VARCHAR(50) NOT NULL, userag ...

  5. 数据库表的主键、唯一约束和索引

    目录 1.MySQL的主键. 2.MySQL的唯一约束. 3.MySQL的索引. 4.主键.唯一约束和唯一索引的区别. 1.MySQL 的 主键. "主键" 的完整称呼是 &quo ...

  6. SQL数据库管理系统的优化方案(表的主键、外键、索引设计)

    在基本表设计中,表的主键.外键.索引设计占有非常重要的地位,但系统设计人员往往只注重于满足用户要求,而没有从系统优化的高度来认识和重视它们.实际上,它们与系统的运行性能密切相关.现在从系统数据库优化角 ...

  7. 数据库中外键绑定的属性必须是被参照表的主键吗?

    我在上网课的时候听到老师说外键的取值为空值或者被参照表中的某个元组的主码值.而主码值就是能独立标识一个元组和其他元组不同的元素.可以是主键,也可以是其他的,也可以是多个.所以就想,那么一个表的外键绑定 ...

  8. a表两个字段都与b表一个字段关联_数据库表的主键实例分析

    主键(PRIMARY KEY):数据库表通常具有包含唯一标识表中每一行的值的一列或一组列.这样的一列或多列称为表的主键 (PK),用于强制表的实体完整性. 业务主键(自然主键):在数据库表中把具有业务 ...

  9. 数据库元数据数据字典查询_5_列出给定表的主键、外键约束

    列出给定表的主键.外键约束 需求描述 需求:查询出给定的表emp的外键约束信息. 解决方法:通过各个数据库里提供的与外键约束相关的数据字典进行查询. 注: 数据库数据集SQL脚本详见如下链接地址 员工 ...

最新文章

  1. C#-发送接收消息MQ
  2. 洛谷 P3157 [CQOI2011]动态逆序对 | CDQ分治
  3. Vue.js 服务端渲染
  4. markword用于标记锁的位数
  5. Linux目录、文件的创建与删除
  6. linux下使用VS CODE + CMAKE 调试C++程序
  7. 慕课php进阶篇,PHP进阶篇-函数
  8. Jenkins+Github+Nginx实现前端项目自动部署
  9. html5shiv.js css3,Modernizr, html5shiv, ie7.js, and CSS3 Pie. Which to use and when?
  10. 回归模型分类(自回归AR模型、向量自回归VAR模型等)
  11. 实体框架 Code First 迁移命令
  12. EasyUI 通过 Combobox 实现 AutoComplete 效果
  13. Ajax局部刷新例子
  14. 【建站教程】如何快速搭建自己独立的个人博客?
  15. 1人30天44587行代码,分享舍得网开发经验(修订版)
  16. 关于PBOC3.0发卡行认证的问题
  17. 两行命令开启QQ音乐服务,或者官方文档完整过程
  18. 北邮计算机通信网第一阶段作业,北邮计算机通信网阶段作业.doc
  19. c# 不同时区的时间的转换
  20. Python+Excel:批量重命名多个工作簿

热门文章

  1. 开发者解决当前和未来挑战?英特尔On技术创新峰会中国在线会议来了丨Intel Innovation
  2. 【转】Ninject的使用
  3. Dynamips基础教程系列---与本地网卡桥接
  4. 设计模式之代理模式-05
  5. android 开发必备软件
  6. matlab vc 2005,MATLABmex不能出现vc++ 2005 compilers的处理
  7. 感谢上帝又赐给我一个好妈妈
  8. Linux开发——实战(三)后门木马程序
  9. python中readlines_python中read() readline()以及readlines()区别
  10. mqtt服务器性能分析,MQTT服务器动态负载均衡的研究与应用