USE Unity
CREATE table u
(
AutoID int identity(1,1) NOT NULL,
username NVARCHAR(50) PRIMARY KEY,
passtext NVARCHAR(50) NOT NULL
)
---T-SQL——微软拓展之后的SQL
---DDL data definition language
---这是在你90%时间内会使用的SQL。
---这些命令用来在数据库中插入、删除、更新、查询数据。 数据定义语言
---(Data Definition Language,DDL):有些命令用来建表、定义关系以及控制数据库的其他结构方面的信息。
---C#中使用双引号""表示字符串,SQL中使用''表示字符串
---C#判断变量相等使用==,在SQL中使用=判断两个值是否相等
---C#区分大小写,SQL默认为不区分大小写,但是可以更改排序规则来区分。
---SQL中两个''转义一个单引号
---创建表练习
CREATE TABLE TestSchool
(
tSld INT IDENTITY(1,1) PRIMARY KEY,
tSName NVARCHAR(50) NOT NULL,
tSGender CHAR(2) CHECK(tSGender='男'or tSGender='女') NOT NULL,
tSAddress NVARCHAR(75),
tSPhone CHAR(13),
tSAge TINYINT,--TINYINT占用一个字节,从0到255的所有数字,存储年龄再合适不过了。
tSBirthday DATE,
tSCardid CHAR(18),
tsClassid INT(3)
)
CREATE TABLE TblStudent
(
tSId INT IDENTITY(1,1) PRIMARY KEY,
tSName NVARCHAR(50) NOT NULL,
tSGender NCHAR(2),
tSAddress NVARCHAR(500),
tSAge INT,
tSBirthday DATETIME,
tSCardId VARCHAR(18),
tSClassId INT
)
CREATE TABLE TblClass
(
tClassId int IDENTITY(1,1) PRIMARY KEY,
tClassName NVARCHAR(50)
)
CREATE TABLE TblTeacher
(
tIid int identity(1,1) PRIMARY KEY,
tTName NVARCHAR(50) NOT NULL,
tSGender CHAR(2) CHECK(tSGender='男'or tSGender='女') NOT NULL,
tTAge INT,
tTBirthday DATETIME
)
---2019-5-25向表中插入信息
-- Insert rows into table 'TableName'
INSERT INTO TblClass
( -- columns to insert data into
tClassName
)
VALUES
( -- first row: values for the columns in the list above
'.net黑马一期'
)
INSERT INTO TblStudent
(
tSName,tSGender,tSAddress,tSAge,tSBirthday,tSCardId,tSClassId
)
VALUES
(
'熊丽','女','北京海淀区',16,'1998-5-5','123456789987654321',1
)
SELECT * FROM TblClass
---在数据类型中加入n是为了防止有了除了之外的语言 产生乱码。
---打开和关闭查询结果窗口:Ctrl+R
---更新语句:update 表名 set 列=新值,列2=新值2,……where条件
---删除表中的全部数据,那么建议使用truncate,truncate语句不能和where 连用
---也就是无法根据条件使用,只能全部删除
---truncate删除数据后,自动编号恢复初始值
---删除操作需要记录日志,
--作业
CREATE DATABASE Test0324Db
USE Test0324Db
CREATE TABLE Product
(
ProductID INT IDENTITY(1,1) PRIMARY KEY,
ProductName NVARCHAR(50) NOT NULL,
UnitPrice MONEY
)
INSERT INTO Product
VALUES
(
'肥宅水',12
),
(
'瓜子',15
),
(
'花生',11
)
CREATE TABLE Employees
(
EmpId INT IDENTITY(1,1) primary key,
EmpName VARCHAR(50) not null unique check(len(EmpName)>2),
EmpGender CHAR(2) default('男'),
EmpAge INT check(EmpAge>0 and EmpAge<120),
EmpEmail VARCHAR(100) unique,
EmpAddress VARCHAR(500) not null,
EmpDepId int foreign key references Department(DepId)on delete cascade
)
CREATE TABLE Department
(
DepId INT IDENTITY(1,1) primary key,
DepName VARCHAR(50) not null unique,
)
DROP TABLE Employees
SELECT * FROM Employees
--手动增加约束
--手动删除一列(删除EmpAddress列)
ALTER TABLE Employees DROP COLUMN EmpAddress
--手动增加一列(增加一列EmpAddr varchar(1000))
ALTER TABLE Employees add EmpAddr NVARCHAR(1000)
--修改EmpEmail的数据类型(varchar(200))
ALTER TABLE Employees ALTER COLUMN EmpEmail
VARCHAR(200)
--为EmpId增加一个主键约束
ALTER TABLE Employees add CONSTRAINT PK_Employees_EmpId
PRIMARY KEY(EmpId)
--为EmpName增加一个非空约束
ALTER TABLE Employees ALTER column EmpName varchar(50) not null
--为EmpName增加一个唯一约束
ALTER TABLE Employees ADD constraint UQ_Employees_EmpName unique
(EmpName)
--为性别增加一个默认约束,默认为'男'
ALTER TABLE Employees ADD constraint DF_Employees_EmpGend default('男')
for EmpGender
--为性别增加一个检查约束,要求性别只能是男或女
ALTER TABLE Employees add constraint CK_Employees_EmpGender
check(EmpGender='男'or EmpGender='女')
--为年龄增加一个检查约束:年龄必须在0-120岁之间,含岁与岁。
ALTER TABLE Employees add constraint CK_Employees_EmpAge
check(EmpAge>0 and EmpAge<120)
--创建一个部门表,然后为Employees表增加一个DepId列。
--为Department 表设置主键。主键列是:DepId
ALTER TABLE Department add constraint PK_Department_DepId
primary key(DepId)
--为员工表增加一个DepId列。
ALTER TABLE Employees add EmpDepId int not null
--增加外键约束
ALTER TABLE Employees add constraint FK_Employees_Department
foreign key(EmpDepId) references Department(DepId)
--删除约束
ALTER TABLE Employees drop constraint FK_Employees_Department
--创建表的同时为表增加约束
--课后练习
Create table Teacher
(
tSex nchar(2) check(tSex='男' or tSex='女') default('男'),
tAge int check(tAge>=30 and tAge<=40) default(30)
)
Create Table Student
(
sld int primary key identity(1,1)
)
Create table Score
(
sld int foreign key references Student(sld) on delete cascade
)