一、SQL语句学习
1.基础语句
创建数据库database_name:
CREATE DATABASE database_name;
获取所有数据库名:
SELECT Name FROM Master..SysDatabases ORDER BY Name;
删除数据库:
DROP DATABASE database_name;
展示database数据库所有表:
use database;
go
select * from sys.tables;
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引
exec sp_help STUDENT_SQL; --查看表结构
exec sp_rename 'STUDENT_SQL','STUDENT_ZL';--修改表名
exec sp_helpindex Reports --查看表的索引
2.约束与数据类型
## SQL 约束 :
约束是在表上的数据列上强制执行的规则。它们用于限制可以进入表中的数据类型。这确保了数据库中数据的准确性和可靠性。
约束可以是列级别,也可以是表级别。列级约束仅应用于一列,而表级约束则应用于整个表。
NOT NULL 约束:保证列中数据不能有 NULL 值
DEFAULT 约束:提供该列数据未指定时所采用的默认值
UNIQUE 约束:保证列中的所有数据各不相同
PRIMARY KEY 主键约束:唯一标识数据表中的行/记录
FOREIGN KEY 外键约束:唯一标识其他表中的一条行/记录
CHECK 约束:此约束保证列中的所有值满足某一条件
INDEX索引:用于在数据库中快速创建或检索数据
自动递增( auto-increment )主键字段:IDENTITY(1,1) (起始值,增加值)
## SQL SEVER 数据类型
BIT - 使用BIT数据类型在数据库中存储位数据,即:0,1或NULL。
INT - 整数类型,包括:BIGINT,INT,SMALLINT和TINYINT。
DECIMAL - 存储精确数值。
CHAR - 存储固定长度的非Unicode字符串。
NCHAR - 存储固定长度的Unicode字符串
VARCHAR -存储可变长度的非Unicode字符串数据。
NVARCHAR - 存储可变长度的Unicode字符串数据
DATETIME2 -
DATE -
TIME -
二、表结构操作
**1.create 语句**
创建表,创建表时可以在数据类型后添加约束,约束可为多个
--例如:创建学生毕业信息表
CREATE TABLE STUDENT_SQL
(Id int not null CHECK (Id>0),
Name nvarchar(50) not null,
Sex nvarchar(50) CHECK (Sex='男'or Sex='女'),
Home nvarchar(255),
School nvarchar(255) DEFAULT '重庆科技学院',
Graduation_Time datetime ,
CONSTRAINT pk_PersonID PRIMARY KEY (Id,Name)
);
--例如:创建学生信息表
CREATE TABLE STUDENT
(Id int not null CHECK (Id>0),
Name nvarchar(50) not null,
phone_number varchar(50)
);
字段索引
MSSQL默认主键是聚集索引。一个表只能有一个聚集索引(Clustered Index)。
exec sp_helpindex STUDENT_SQL; --查看表的索引
create index NameIndex on STUDENT_SQL(Name); --新增普通索引(非聚集索引)
create unique index Name_UQ on STUDENT_SQL(Name); --新增唯一索引(非聚集索引)
drop index STUDENT_SQL.NameIndex; --删除索引
drop index STUDENT_SQL.Name_UQ;
create nonclustered index NameFileIndex on STUDENT_SQL(Name,Id);--创建非聚集索引(组合索引)
drop index STUDENT_SQL.NameFileIndex;
**2.alter 语句**
更改表
--修改表结构
ALTER TABLE STUDENT_SQL ADD NewColumn nchar(5) null; --新增字段
ALTER TABLE STUDENT_SQL ALTER column NewColumn nvarchar(10); --修改字段属性
exec sp_rename 'STUDENT_SQL.NewColumn','OldColumn';--修改字段名
ALTER TABLE STUDENT_SQL DROP column OldColumn; --删除列
--修改约束
ALTER TABLE STUDENT_SQL ADD constraint Name_UQ unique(Name); --新增唯一约束(此非索引)
ALTER TABLE STUDENT_SQL DROP constraint Name_UQ; --删除此约束
ALTER TABLE STUDENT_SQL DROP constraint pk_PersonID; --删除此约束
ALTER TABLE STUDENT_SQL ADD CONSTRAINT pk_PersonID PRIMARY KEY (Id,Name);
**标识列** - 使用IDENTITY属性为表创建标识列
**3.DROP 语句**
删除表,不能删除有外键约束的表。
DROP table STUDENT_SQL