sql server基础语法 创建数据库 创建表

    • 1.创建数据库
    • 2.表的创建
    • 3.在现有表中添加标识列
    • 4.创建外键
    • 5.添加外键
    • 6.约束
    • 7.创建局部临时表
    • 8.创建全局临时表
    • 9.创建具有check约束字段的数据库表
    • 10.创建含有计算字段的数据库表
    • 11.创建含有自动编号字段的数据库表
    • 12.创建含有排序字段和默认值的数据表
    • 13.动态判断数据库表是否存在
    • 14.查看表的各种信息,可以查看指定数据库表的属性、表中字段属性、各种约束等信息
    • 15.用select语句查看数据库表的属性信息
  • 16.重命名数据库表
    • 17.增加数据库表的新字段
    • 18.修改数据库表的字段
    • 19.删除数据库表字段
    • 20.删除数据库表

1.创建数据库

语法:CREATE DATABASE <数据库名称>
CREATE DATABASE dbname -- 创建名为 dbname 的数据库

2.表的创建

 语法:
USE suntest
create table 仓库
(
仓库编号 int ,
仓库号 varchar(50) ,
城市 varchar(50) ,
面积 int
)
create table 仓库1
(
仓库编号 int not null ,
仓库号 varchar(50) not null,
城市 varchar(50) not null, --不能为空not null--
面积 int
)
create table 仓库2
(
仓库编号 int primary key , --主键的关键字primary key--
仓库号 varchar(50) unique, --唯一索引关键字unique--
城市 varchar(50) not null, --不能为空not null--
面积 int
)
create table 仓库3
(
仓库编号 int primary key , --主键的关键字primary key--
仓库号 varchar(50) unique, --唯一索引关键字unique--
城市 varchar(50) default '青岛', --不能为空not null--
面积 int check (面积>=300 and 面积<=1800)
)
create table 职工表
(
职工编号 int identity (1,1) primary key,
职工号 varchar(50) unique,
仓库号 varchar(50),
工资 int check(基本工资>=800 and 基本工资<=2100),
)
create table 订单表
(
订单编号 int identity(1,1) primary key,
订单号 varchar(50) unique,
职工号 varchar(50) references 职工表(职工号),--references两张表通过“职工号”关联--
订购日期 datetime,
销售金额 int
)
create table 阳光工资表
(
职工编号 int identity (1,1) primary key,
职工号 varchar(50) unique,
仓库号 varchar(50),
基本工资 int check(基本工资>=800 and 基本工资<=2100),
加班工资 int,
奖金 int,
扣率 int,
应发工资 as (基本工资+加班工资+奖金-扣率) --as为自动计算字段,不能输入值--
) 

3.在现有表中添加标识列

下面的例子向表T_test中添加一个名为ID,类型为int,种子为1,递增量为1的标识列
--创建表
CREATE TABLE T_test
(Name varchar(50)
)
--插入数据
INSERT T_test(Name) VALUES('张三')
--增加标识列
ALTER TABLE T_test
ADD ID int IDENTITY(1,1)注:这只适用于刚建完表的情况,如果此时主键已经使用过了,表中存在许多数据,不能使用该方法删除主键,会导致数据丢失。(可行的方法,建一张相同的表来存储数据,在修改,插入)。

4.创建外键

create table 表名(
列名1 参数,
列名2 参数,
foreign key(列名) references 目标表名(目标列名)
);

5.添加外键

比如stuInfo(学生信息表)表是主表。他的主键是stuID,
另外还有一个stuExam表(学生考试成绩表)。在这个表中也有个列是stuID,但是要引用主表中的stuID.
那么在创建约束的时候:
alter table stuExam
add constraint fk_stuID foreign key(stuID) references stuInfo(stuID)
go

6.约束

 primary key         主键not null,             不能为空not nullunique,             唯一索引关键字uniquecheck (面积>=300 and 面积<=1800)    check 约束约束
非空约束 --NN,ont null constraint
必须填写数据不能为空
--指定表 Student 添加名为NN_Student_sClassId非空约束(指定列名sClassId),括号输入表达式
alter table Student add constraint NN_Student_sClassId check(sClassId is not null)主键约束 --PK,primary key constraint
唯一且不为空
--指定表 Student 添加名为PK_Student_sId主键约束(指定列名sId)
alter table Student add constraint PK_Student_sId primary key(sId)唯一约束 --UQ,unique constraint
唯一,允许为空,但是同样的数据只能出现一次
--指定表 Student 添加名为UQ_Student_sName唯一约束(指定列名sName)
alter table Student add constraint UQ_Student_sName unique(sName)默认约束 --DF,default constraint
设置默认值
--指定表 Student 添加名为DF_Student_sName默认约束(指定列名sBirthday),获取当前日期
alter table Student add constraint DF_Student_sName default(getdate()) for sBirthday--指定表 Student 添加名为DF_Student_sName默认约束(指定列名sBirthday),指定日期
alter table Student add constraint DF_Student_sName default('1995-12-12') for sBirthday
--指定表 Student 添加名为DF_Student_sName默认约束(指定列名sSex),指定性别
alter table Student add constraint DF_Student_sSex default('男') for sSex     检查约束 --CK,check constraint
设置范围以及格式限制
--指定表 Student 添加名为 CK_Student_sSex检查约束(指定列名sSex),限制为'男'或者'女'
alter table Student add constraint CK_Student_sSex check(sSex='男' or sSex='女')
--指定表 Student 添加名为 CK_Student_sSex检查约束(指定列名sAge),限制为0-100之间的数字
alter table Student add constraint CK_Student_sAge check(sAge>=0 and sAge<=100)   外键约束  --FK,foreign key constraint
表关系
alter table Student add constraint Fk_Student_sClassId foreign key(sClassId) references Class(cId)
--指定表Student添加sClassId外键为Class的主键cId
on delete cascade on update  cascade --级联删除 --级联更新删除约束
alter table Student drop Constraint NN_Student_sClassId    --删除指定表中的约束

7.创建局部临时表

use db_sqlserver
go
create table #db_local_table
(id  int,name varchar(50),age int,area int
)
创建的临时表不能与其他会话共享,当会话结束时,行和表的定义都将被删除

8.创建全局临时表

use db_sqlserver
go
create table ##db_local_table
(id  int,name varchar(50),age int,area int
)
全局临时表对所有用户都是可见的,在每个访问该表的用户都断开服务器连接时,全局临时表才会被删除

9.创建具有check约束字段的数据库表

use db_sqlserver;
go
create table db_table7
(仓库编号 int primary key,职工号  varchar(50) unique,仓库号  varchar(50),工资   int,面积  int check(面积>=600 and 面积<=1800)
)

10.创建含有计算字段的数据库表

use db_sqlserver;
go
create table db_table8
(职工编号 int primary key,职工号 varchar(50) unique,仓库号 varchar(50),基本工资 int check(基本工资>=800 and 基本工资<=2100),加班工资 int,奖金 int,扣率 int,应发工资 as (基本工资 + 加班工资 + 奖金 - 扣率)
)

11.创建含有自动编号字段的数据库表

use db_sqlserver;
go
create table db_table9
(仓库编号 int identity(1,1) primary key,仓库号 varchar(50) unique,城市 varchar(50) default('青岛'),面积 int check(面积>=300 and 面积<=1800)
)

12.创建含有排序字段和默认值的数据表

create table db_table10
(仓库编号 int identity(1, 1) primary key,仓库号 varchar(50) collate french_CI_AI not null,城市 varchar(50) default '青岛',面积 int check(面积>=300 and 面积<=1800)
)

13.动态判断数据库表是否存在

use db_sqlserver;
go
if(Exists(select * from sys.sysobjects where id=OBJECT_ID('db_table9')))print '数据库表名已经存在'else print '该数据库表名不存在,可以利用该名创建表'

14.查看表的各种信息,可以查看指定数据库表的属性、表中字段属性、各种约束等信息

use db_sqlserver;
go
execute sp_help db_table9;

15.用select语句查看数据库表的属性信息

use db_sqlserver;
go
select * from sysobjects where type='U'

16.重命名数据库表

use db_sqlserver;
go
execute sp_rename "db_table9", "db_renametable"

17.增加数据库表的新字段

use db_sqlserver;
go
alter table db_table1 add 电子邮件 varchar(50)
alter table db_table1 add 联系方式 varchar(50) default '0532-88886396'select name 字段名, xusertype 类型编号, length 长度 from syscolumns where id = object_id('db_table1')

18.修改数据库表的字段

use db_sqlserver;
go
alter table db_table1 alter column 电子邮件 varchar(200)select name 字段名, xusertype 类型编号, length 长度 from syscolumns where id = object_id('db_table1')

19.删除数据库表字段

use db_sqlserver;
go
alter table db_table1 drop column 电子邮件 select name 字段名, xusertype 类型编号, length 长度 from syscolumns where id = object_id('db_table1')

20.删除数据库表

use db_sqlserver;
go
drop table db_table1
drop table db_table1, db_table2

sql server基础语法 创建数据库 创建表相关推荐

  1. SQL Server基础学习——用代码创建数据库和表

    1.连接成功后出现下述页面,那么我们学习第一步先建个数据库和表 2.建立之前要了解基础SQL语言 SQL语言是集DDL.DML.DCL 于一体的数据库语言. 1)DDL语句引导词:Create(建立) ...

  2. sql server 判断是否存在数据库,表,列,视图

    1 判断数据库是否存在 if exists (select * from sys.databases where name = '数据库名')    drop database [数据库名] 2 判断 ...

  3. SQL Server 2008 R2 新建数据库、表的简易流程

    目的:安装了SQL Server后新建一个新的数据库,添加一个表,为后续的功能开发做测试准备: 新建数据库简易流程 新建数据库 新建表 填充数据 新建数据库 连接对象资源管理器后,选中数据库,右键新建 ...

  4. SQL Server学习1(建数据库,建表,建约束)

    --建数据库NetBarDB IF exists(select * from sys.sysdatabases where [NAME]='NetBarDB')     drop database N ...

  5. SQL Server 2008中获取数据库所有表及其字段名称、类型、长度的SQL

    对于有些数据库我们没有权限或者因为其它原因无法查看其数据库的表结构,那么我们将要自己想办法去做了,如果能够应用程序访问的话,我们就可以使用如下所示的 sql脚本来获取数据库中的所有表结构了,代码如下: ...

  6. 【SQL】SQL Server基础语法

    目录 一.环境配置 二.数据库的创建与删除 1. 创建 2. 使用 3. 删除 三.数据定义 1. 模式的定义与删除 2. 基本表的定义.修改与删除

  7. SQL Server 2008 - 第2章 创建、管理 数据库

    第2章  创建数据库 数据库是用来存储数据的空间,它作为存储结构的最高层次是其他一切数据库操作的基础.用户可以通过创建数据库来存储不同类别或者形式的数据. 因此,在本章用户将详细地学习针对数据库的基本 ...

  8. 【转】创建数据库和表的SQL语句

    [转]创建数据库和表的SQL语句 创建数据库的SQL语句: 1 create database stuDB 2 on primary -- 默认就属于primary文件组,可省略3 (4 /*--数据 ...

  9. ClickHouse 创建数据库/建表/视图/字典 SQL

    1.1. ClickHouse SQL之数据定义语言 DDL  本节介绍 ClickHouse 中进行数据库.表结构的定义和管理. 1.1.1. 概述 在SQL中,数据定义语言( DDL ) 用来创建 ...

最新文章

  1. 组合计数 ---- 2020 icpc 上海 The Journey of Geor Autumn(思维划分问题计数+预处理优化)
  2. Framebuffer原理、使用、测试系列文章
  3. QT实现minheap(简单图形界面掌握)
  4. 主从mysql能过滤指定dml吗_MyCat教程二:mysql主从复制实现 - HG-93
  5. CPU主频频率越高,手机运行速度就越快吗?
  6. JDK源码解析之 Java.lang.Boolean
  7. 生产者消费者之阻塞队列版本
  8. RHEL 8 - RHEL自带AppStream应用模块管理
  9. c++入门之类继承初步
  10. 华为为何还没鸿蒙,华为鸿蒙2.0正式发布,但无第三方公开支持,华为的路该怎么走?...
  11. Word如何自动多级编号
  12. 用plsql导出oracle,使用PLSQL进行Oracle数据导入导出[转]
  13. 计算机id和密码忘了怎么办,苹果平板电脑忘了ID号和密码怎么办?
  14. [经验技巧] 小米线刷详细图文教程(具体步骤)
  15. html弄出油画效果,使用HTML5 Canvas实现仿PS图像油画滤镜特效
  16. oracle中毒,oracle数据库中毒恢复 oracle数据库解密恢复 服务器中勒索病毒解密恢复.Hermes666...
  17. 东北林业大学计算机教师,我校教师马超感动众网友
  18. centos8 解决编译安装 nginx时遇到的报错
  19. 使用hanewin实现 win系统主机,vm虚拟机中linux系统和开发板三方共享文件夹
  20. 好看的网站自适应html广告代码,适用于所有网站

热门文章

  1. buuctf 乌镇峰会种图 1
  2. 使用nni时的错误:“Restful server start failed”
  3. fedora14安装中标普华office成功
  4. 如何解决Xshell中文乱码问题
  5. 语句与语法笔记:学会python中_doc_和pydoc——python学习手册笔记之3
  6. js正则匹配分割(other)
  7. ajax没返回响应数据,jQuery的Ajax时无响应数据的解决方法
  8. jQuery的Ajax在IE11下无响应
  9. java培训班学习该怎么做才能快速入门呢
  10. 联想笔记本台式机专用系统 GHOSTXPSP3 v2013.06 海量驱动DVD版