sql sever 使用命令创建表

SQL server 2017默认建立了四个系统数据库:

(1)master数据库:是SQL server中最重要的数据库,记录SQL server实列的所有系统级信息,包括实列范围的元数据 (2)tempdb数据库:用于保存临时对象或中间结果集 (3)model数据库:用作SQLserver 实列上创建的所有数据库的摸版 (4)msdb数据库:用于SQLserver代理计划警报和作业

SQL中注释语句
单行注释
SQL语句中的单行注释使用 –
create database database_x --创建数据库database_x
多行注释
SQL语句中的多行注释采用 / / create database database_x /* 创建一个数据库 名字叫做database_x
*/

五种数据约束

– 主键 primary key

– 外键 foreign key

– 取值唯一 unique

– 取值范围 check

– 默认值 dafault

创建数据库

create database Test_DB

创建表

– 使用Create table命令创建表

创建Student表

1.check约束有两种形式一种是列级约束,一种是表级约束

2.constraint 可以给约束自己定义名称,但一般系统会自己定义好。一般在修改表中才会使用

create table Student
(
    Sno char(7) not null primary key,
    Sname varchar(8) unique,--不写可以取空值
    Ssex char(2) default '男' check(Ssex in ('男','女')),--列级约束
    Sage int,
    Sdept char(2)
)
create table Student
(
    Sno char(7) not null primary key,
    Sname varchar(8) unique,--不写可以取空值
    Sage int,
    Sdept char(2),
    Ssex char(2) default '男' ,
    constraint ck_Ssex check(Ssex in ('男','女')),--列级约束
)
alter table Student drop constraint ck_Ssex

删除表

drop table SC 
go

创建课程表Course

create table Course
(

    Cno char(7) primary key,
    Cname varchar(30), -- nvarchar(30)30个汉字 60个英文字母
    Ccredit int ,       -- numeric(2,1),几点几
    // 外键的创建 有两种形式,表级约束和列级约束
    //Cpno取值参照了Course表Cno的值
    -- 表级约束
    Cpno char(7),       
    foreign key(Cpno) references Course(Cno), 
    -- 列级约束
    Cpno char(7) references Course(Cno) 
)

创建SC成绩表

// 如果表存在键删掉
if Object_id('SC') is not null
    drop table Sc
go
create table SC
(
    // 外键约束 表级约束
    Cno char(7),
    Sno char(7),
    foreign key(Cno) references Course(Cno),
    foreign key(Sno) references Student(Sno),

    // 外键约束 列级约束
    Cno char(7) references Course(Cno),
    Sno char(7) references Student(Sno),

    //无法将多个主键约束添加到表SC
    //Sno not null primary key,
    //Cno not null primary key,

    //一个表只有一个主键,但是可以有多个候选码
    //应是两个属性的组合
    //consrtaint Pk_SC  使用constraint可给主键可以自己取名称

    --表级约束
    consrtaint Pk_SC primary key(Sno,Cno),  

    Grade int check (Grade between 0 and 100)

)

修改表

1.修改表:当需要删掉约束时,才会使用约束的名称(Student表)

2.删除表中属性,或者增加表中属性时使用 drop 命令

alter table SC drop constraint PK_SC
alter table Student add Stel char(11) // 向Student表中添加一个为Stel属性
alter table Student drop Column Stel // 删除Student表stel属性

标识符列 值递增或递减

create table Test
(
    ID int identity(1, 1) primary key, //种子为1,增量为1
    col2 datetime default GetDate(), //默认值
    col3 uniqueidentifier ROWGUID default newid() //ROWGUID 全球唯一标识符列

    //不记得代码--通过生成脚本:脚本-- 创建脚本--新建到查询窗口
)

通过代码 向表里插入数据

1.DML 数据操作语言 增删改查

intsert into Student values('2017001','王五','女',20,'cs')
// 1行受影响 说明已经插入进去了

2.查询会出现语法是正确的,但是字母下还是有下划线是因为-- intellisense已启用 去掉自动感知即可


总结

  1. create table
  2. DBMS功能 :ddl(create table,alter table,drop table)
  3. 书p97 6-2

注意:

  1. 当表中有数据的时候,删除该对象时,不可删除
  2. 删除有先后顺序,先删除子表,在产出父表
  3. Ctrl+R 显示结果窗口
  4. 使用sql sever 记得一定要保存保存保存,否则写的脚本都会消失,皮皮血的教训,一定不要忘记!!!

你可能感兴趣的:(sql sever 使用命令创建表)