Database - create database + create table and primary key

1. Create a database

1. Create a default database

insert image description here

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

insert image description here
After creating, click Execute, and there will be an additional database in the list on the left.
insert image description here
Query the address of the default database:

Right-click the database and enter properties
insert image description here
. You can view the default database in the file options:

insert image description here

2. Create a database for the specified parameter location

	create database S072003DBS
	ON -- 创建数据文件
	(
		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. Add NDF data file

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

At this point, you can see the created NDF file as shown below:
insert image description here
In addition, you can also manually add an NDF file

Right-click the database, click Properties, and click Add:
insert image description here

insert image description here
insert image description here
So far, the MDF file and the two NDF files we created together constitute a complete logical database.

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

insert image description here
4. Remove NDF data files

Remove the S072003228DATANDF01 file:

	ALTER DATABASE S072003DBS
	REMOVE FILE S072003228DATANDF01

insert image description here

2. Create the table

As shown in the figure below, there are ten tables in Excel, and some statements can be used to create tables more conveniently
insert image description here

	--创建产品信息表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))

After executing the code, there are ten more tables in the database:
insert image description here

3. Create a primary key

1. Create a primary key

	--创建临时员工信息表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))

insert image description here
As shown in the figure, after the primary key is created, there is an additional lock
insert image description here

2. Perform primary and foreign key settings on the created table

As shown in the figure below, I want to PRODUCTINFOset the primary key for the PID of this table, but because the PID can allow NULL, if it is set directly, an error will be reported.
insert image description here
The following two pieces of code should be executed separately and cannot be run at one time:

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

At this point, the primary key has been set
insert image description here

Guess you like

Origin blog.csdn.net/wxfighting/article/details/123831441