数据库建库建表
1.直接右键数据库,选择新建数据库;
2.通过新建查询,输入命令建库建表。

使用CREATE DATABASE创建数据库school。
数据文件的逻辑名称自定义,需要注意的点是主数据文件的物理名称需填写存储文件的地址。

CREATE DATABASE school
on primary    --表示属于primary文件组
(name='school_data',   --主数据文件的逻辑名称filename='D:\school_data.dbf',  --主数据文件的物理名称size=5MB,  --主数据文件的初始大小maxsize=1000MB,   --主数据文件增长的最大值filegrowth=10%   --主数据文件的增长率
)
log on
(name='school_log',  -- 日志文件的逻辑名称filename='D:\school_log.ldf',-- 日志文件的物理名称size=2mb,--日志文件的初始大小maxsize=20mb, --日志文件增长的最大值filegrowth=1mb --日志文件的增长率
)

可能遇到的错误:
对文件“e:\school.mdf"的目录查找失败,出现操作系统错误(系统找不到指定的路径。)CREATE DATABASE失败。无法创建列出的某些文件名。
解决方法:检查本地计算机是否存在e盘。

使用create table创建数据表Student。

CREATE TABLE [〈库名〉]〈表名〉(〈列名〉〈数据类型〉[〈列级完整性约束条件〉]  [,列名]〈数据类型〉[〈列级完整性约束条件〉]]
[,…n]
[,〈表级完整性约束条件〉][,…n] );

要创建一张用户表存储用户数据,需要知道表的结构,如表的名称以及该表中每个列的名称和数据类型,指出每个列中是否允许空值属性等。
注意:数据库中的表包含系统表和用户表。系统表在创建数据库的时候自动生成的,存储数据库和表的相关信息,用户不应该直接更改系统表的内容。

DEFAULT:如果在插入过程中来显式提供值,则指定为列提供的值。
例子:默认值为男——default(‘男’);
PRIMARY KEY:通过唯一索引对给定的一列或多列强制实体完整性的约束。
例子:学号为主键——constraint pk_stu primary key;
UNIQUE:通过唯一索引为给定的一列或多列提供实体完整性的约束。
例子:姓名为唯一约束constraint uk_name unique;
CHECK:通过限制可输入到一列或多列中的可能值强制域完整性的约束。
例子:电话——constraint ck_phone check(phone like ‘8295[0-9][0-9][0-9][0-9]’) 。
student表定义如上图,代码片段如下:

use school    --在数据库school中创建一个表
CREATE TABLE student
(Stu_id Varchar(10)  constraint pk_stu primary key NOT NULL,Stu_name Varchar(10)  constraint uk_name unique NOT NULL,Stu_sex Varchar(2) default (‘男’) NOT NULL,Birthdate datetime NULL,Phone Varchar(8) constraint ck_phone check(phone like ‘8295[0-9][0-9][0-9][0-9]’) NULL,age as year(getdate())-year(birthday),Address Varchar(100) NULL,
)


学会了设置主键、约束,还很容易遇到组合主键和外键的问题
使用Constraint关键字定义约束方式,可以指定约束名称。

CREATE TABLE Course(Stu_id Varchar(10)constraint fk_stu_id foreign key references Students(Stu_id)  NOT NULL,Course_id Varchar(4)constraint fk_Course_id foreign key references Course(Course_id) NOT NULL,constraint pk_sc primary key(Stu_id,Course_id)
)

修改基本表的操作
通过更改、添加、除去列和约束或者通过启用或禁用约束和触发器来更改表。

ALTER TABLE table --table为表名
ALTER COLUMN column_name { data_type[NULL | NOT NULL]}| ADD    {[<column_definition>]| column_name AS computed_column_expression}[…n]
| [WITH CHECK | WITH NOCHECK]
ADD{<table_constraint>}[…n]| DROP{[CONSTRAINT]constraint_name| COLUMN column [,…n]| {CHECK | NOCHECK } CONSTRAINT{ALL | constraint_name [,…n]}}

1.ALTER COLUMN:指定要更改给定列。
(1)例子:将student表中的Stu_sex字段设为空(null)

 use schoolALTER TABLE studentALTER COLUMN Stu_sex varchar(2) null

2.ADD:指定要添加一个或多个列定义、计算列定义或者表约束。
(2)例子:在student表中添加一列class,类型为varchar(8),字段允许空。

 use schoolALTER TABLE studentADD class varchar(8) NULL

注意:向已存在的表中增加列时,应使新增加的列具有默认值或允许其为空值。添加列完成时,SQL Server将向表中已存在的行填充新增列的默认值或空值。如果既没有提供默认值也不允许为空值,那么新增列的操作将出错,因为SQL Sever不知道该怎么处理那些已经存在的行。

3.DROP {[CONSTRAINT]constraint_name|COLUMN column_name}:指定从表中删除constraint name或者column_name。
(3)例子:将student表中的class字段删除(class字段有约束ck_class1)。

 use schoolALTER TABLE studentDROP CONSTRAINT ck_class1,COLUMN class

4.给表增加约束

ALTER TABLE  表名ADD CONSTRAINT 检查约束名CHECK  (约束表达式)[,…N]

(4)例子:在school数据库中,为学生表的出生日期列创建一个检查约束,以保证输入的日期数据大于2000年1月1日而小于当天的日期。

ALTER TABLE schoolADD CONSTRAINT ck_bdCHECK(出生日期)‘01/01/2000’AND 出生日期(GETDATE())

5.给表创建外键
1.使用命令方式创建外键;
2.在创建新表时同时产生外键约束以及为已经存在的表创建外键约束。

 ALTER TABLE 表名ADD CONSTRAINT 约束名 [FOREIGN KEY ] {(列名[,…])}REFERENCES 参考表名[( 参考主键列[,…] ) ]

(5)例子:在Class表上,为班级编号Class_id字段创建一个外键约束,从而保证输入有效的班级编号。

ALTER TABLE ClassADD CONSTRAINT  fk_class  FOREIGN KEY (班级编号Class_id)  REFERENCES 班级(班级编号Class_id)

建立和删除索引
建立索引是加快表的查询速度的有效手段,索引可以建在该表的一列或多列上。
ASC:升序,DESC:降序,缺省值为ASC

CREATE [UNIQUE] INDEX<索引名>
ON <表名>(<列名1>[<次序>][,<列名2>[<次序>]]…);  --<表名>指定要建索引的基本表的名字,<次序>指定索引值的排列次序

(1)例子:在学生表上按学号升序建立唯一索引。

CREATE UNIQUE INDEX Stu_Stu_id ON student(Stu_id)

(2)例子:在班级表上按学号升序和课程号降序建唯一索引。

CREATE UNIQUE INDEX SC ON Class(Stu_id ASC,Course_id DESC)

删除school数据库及数据表
注意:删除数据库前考虑是否需要备份。

DROP DATABASE school --删除数据库,一般很少使用
DROP TABLE student

SQL Server建库建表命令相关推荐

  1. SQL Server查看库、表占用空间大小

    SQL Server查看库.表占用空间大小 - 郭大侠1 - 博客园 (cnblogs.com) https://www.cnblogs.com/gered/p/9009513.html SELECT ...

  2. 数据库1-SQL server建库建表操作

    菜鸟学习数据库(一) 这是一个目录 菜鸟学习数据库(一) (一)每贴一句 (二)开始 (1)进入MSSMS软件 1.进入软件 2.点击新建查询: 3.新建的查询界面 (2)开始sql语言建库建表 1. ...

  3. Mysql 数据库实战-建库-建表-查多表

    前文:MySql数据库基本概念 数据库 DataBase(数据库),存储数据的仓库. 第一方或第三方提供的图形化界面的客户端(DBeaver,Mariadb) 在Mysql中创建若干个数据库,每个数据 ...

  4. SqlService基础一篇搞定(建库建表、插入数据、修改和删除数据、基础查询、条件查询、模糊查询、聚合函数、分组查询、多表查询)

    SqlService基础知识总汇 前言 一.SQLSERVER建库建表 1.检查数据库名是否存在 2.创建数据库 3.建表 4.修改表结构 5.删除添加约束 二.SQLSERVER插入数据 1.向部门 ...

  5. hive:建库建表、表分区、内部表外部表、数据导入导出

    hive建库建表与数据导入 建库 hive中有一个默认的库: 库名: default 库目录:hdfs://hdp20-01:9000/user/hive/warehouse 新建库: create  ...

  6. SQL Server 与Oracle 建表语句的不同之处

    SQL Server和Oracle建表中的区别: 1.Sql server中的字符串类型建表关键字为varchar,而Oracle是varchar2  2.两种数据库实现主键自增的区别: >&g ...

  7. Android数据库建库建表的几种方法

    方法一:SQLite数据库的建立 SQLiteDatabase database;public UserDao(Context context){//1.1建库database=context.ope ...

  8. 通过flyway实现项目启动自动建库建表

    目录 前言 代码实现 添加依赖 sql文件命名方式也有讲究 代码配置 启动建库 前言 我之前研究过一个开源论坛项目,pybbs,他代码下载下来直接启动会自动建库建表,所以我拿过来研究一下(不难),这样 ...

  9. MySQl建库建表及增删改查

    通过可视化工具建库建表 创建数据库 CREATE DATABASE studb2 CHAR SET utf8; 切换数据库(使用use 将数据库切换到 studb2) USE studb2 ; 在st ...

最新文章

  1. 成功解决ValueError: could not convert string to float: ‘\\N‘
  2. linux内存真实使用情况,为什么TOP看不出真实的内存占用情况?
  3. HTTP之100-Continue
  4. #17# SCCM管理 - 软件中心 VS 应用程序目录网站点
  5. sulime text 常用快捷键总结
  6. 光纤收发器一定要成对使用吗?
  7. java bufferarray_Java中的ByteBuffer array()方法
  8. Spring MVC 测试 | 模拟提交表单
  9. java反编译工具_Java开发必会的反编译知识(附支持对Lambda进行反编译的工具)...
  10. 扁平图文列表小程序模板
  11. stdio.h与conio.h
  12. 乔治城计算机系如何,乔治城大学cs专业申请
  13. 服务器安装SSH服务:
  14. java specification_java规范(Java specification).doc
  15. 查看已连接的WiFi密码
  16. 题解 - HDU 6638 Snowy Smile (线段树)
  17. 知识 | 四种渲染到底是啥?终于有人讲明白了(下)
  18. 使用R语言筛选数据中的重复行
  19. C++ - CString 用法
  20. python3--opencc安装方式

热门文章

  1. OO包设计原则遵循度自动分析检查工具JDM简介(原创)
  2. java_获得用户显示器大小
  3. What are TNS, WNS, THS, NVP and WHS
  4. 通过 JFR 与日志深入探索 JVM - 调试 JVM 的工具 WhiteBox API
  5. 【JqGrid】JqGrid单元格合并及表头列合并,jqgrid单元格合并
  6. 坚持一件事比决定一件事难多了
  7. Mozi僵尸网络(P2P僵尸网络Mozi)
  8. Docker学习笔记1-初识Docker
  9. 记录下:订单模块初步完成
  10. 全国大学生“高教杯”成图大赛——如何绘制锥度斜度