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命令创建表
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
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)
)
// 如果表存在键删掉
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已启用 去掉自动感知即可
注意: