赞
踩
目录
格式:create database 数据库名;
例如:
- --创建库
- create database Demo01;
格式:创建数据库(自定义初始值)
create database 数据库名
on primary
(
name='逻辑名称',
filename='文件存储路径',
)
log on
(
name='逻辑名称',
filename='文件存储路径',
)
例如:
- --创建数据库(自定义初始值)
- create database Demo02
- on primary
- (
- name='Demo02',
- filename='M:\SQLServer_File\Demo02_Data\Demo02.mdf',
- size=5MB
- )
- log on
- (
- name='Demo02_Log',
- filename='M:\SQLServer_File\Demo02_Data\Demo02_Log.ldf',
- size=2MB
- )
或者(数据库名Demo03和路径中的文件Demo03_Data.mdf可以不一致)
- --创建数据库(自定义初始值)
- create database Demo03
- on primary
- (
- name='Demo03',
- filename='M:\SQLServer_File\Demo03_Data\Demo03_Data.mdf',
- size=5MB
- )
- log on
- (
- name='Demo02_Log',
- filename='M:\SQLServer_File\Demo03_Data\Demo03_Log.ldf',
- size=2MB
- )
格式:drop database 数据库名
例如:
- --删库语句
- drop database Demo03
格式:
use 数据库名
GO
create table 表名
(
列名 数据类型(长度) 列级束缚
)
例如:
- use Demo01
- GO
- create table student
- (
- Sno char(5) NOT NULL UNIQUE, -- UNIQUE 唯一值
- Sname char(8) NOT NULL,
- Sage smallint default 20, --default 默认值
- Sex char(2) check(Sex='男' or Sex='女')
- )
格式:
USE 数据库名
GO
CREATE VIEW 视图名
as select 列名
from 表名
GO
例如:
- -- 创建视图
- USE Demo01
- GO
- CREATE VIEW Demo01_View_student
- as
- select * from student
- GO
格式一:列名 数据类型(长度) PRIMARY KEY
例如:
- -- 主键约束
- use Demo02
- GO
- create table student1
- (
- Sno char(5) primary key
- )
格式二:CONSTRAINT 约束名 PRIMARY KEY(列名)
例如:
- use Demo02
- GO
- create table student2
- (
- Sno char(5),
- Sname char(5),
- constraint c1 PRIMARY KEY(Sno)
- )
格式:CNOSTRAINT 约束名 FOREIGN KEY(列名) REFERENCES 被引用列的名称(列名)
例如:
- use Demo02
- GO
- create table student3
- (
- Sno char(5),
- constraint c2 primary key(Sno)
- )
- GO
- create table student4
- (
- Sno char(5),
- Cno char(5),
- constraint c3 primary key(Cno),
- constraint c4 foreign key(Sno) references student3(Sno)
-
- )
格式:列名 数据类型(长度) NOT NULL
例如:
- -- 非空约束
- use Demo02
- GO
- create table student5
- (
- Sno char(5) not null
- )
格式:列名 数据类型(长度) UNIQUE
例如:
- -- 唯一约束
- use Demo02
- go
- create table student6
- (
- Sno char(5) unique
- )
格式:INSERT INTO 表名(列名1,列名2,列名......) VALUES(数据1, 数据2, 数据......);
例如:
insert into student(Sno, Sname) values ('s0001', '张三');
格式:DELETE FROM 表名 WHERE 列名='值'
例如:
- delete from student where Sno='s0001'
- delete from student where Sno='s0001' and Sage not in (20,21)
格式:ALTER TABLE 表名 DROP CONSTARAINT 约束名
例如:
- use Demo02
- go
- alter table student drop constraint CK__student__Sex__108B795B
格式:UPDATE 表名 SET 列名1=新值1, 列名2=新值2 WHERE 过滤条件
例如:
update student set Sno='s001',Sname='李四',Sage=25,Sex='女' where Sname='张三'
格式:SELECT * FROM 表名
例如:
select * from student
格式:SELECT 列名 FROM 表名 WHERE 查询条件
例如:
select Sno,Sname from student where Sage=20
格式:SELECT 列名 as 重命名 FROM 表名 WHERE 查询条件
例如:
- select Sno as 学号 from student
- select Sno 学号 from student
格式:SELECT 列名*0.5 FROM 表名 WHERE 查询条件
例如:
- select Sno 学号,Sname 姓名,Sage*0.5 年龄 from student where Sage=20;
- select Sno 学号,Sname 姓名,Sage+100 年龄 from student where Sage=20;
- select Sno 学号,Sname 姓名,Sage/4 年龄 from student where Sage=20;
格式:ORDER BY 列名 ASC
例如:
select Sno,Sname,Sage,Sex from student order by Sage asc
格式:ORDER BY 列名 DESC
例如:
select Sno,Sname,Sage,Sex from student order by Sage desc
格式:ORDER BY 列名1 DESC, 列名2 ASC
首先按照列名1进行降序排序,然后在相同的列名1值的情况下,再按照列名2进行升序排序。
例如:
- select Sno,Sname,Sage,Sex from student order by Sage desc, Sno asc
- select Sno,Sname,Sage,Sex from student order by Sage desc, Sno desc
格式:ORDER BY 列数 DESC 或者 ORDER BY 列数 ASC
- select Sno,Sname,Sage,Sex from student order by 1 desc
- select Sno,Sname,Sage,Sex from student order by 3 asc
格式:SELECT DISTINCT 列名1, 列名2 FROM 表名 WHERE 查询条件
例如:
- -- 学生表年龄不重复
- select distinct Sage from student
- -- 学生表姓名和年龄不重复
- select distinct Sname,Sage from student
格式一:(当要插入的表不存在时)SELECT 列名 INTO 新表名 FROM 表名 WHERE 查询条件
例如:
select * into TU_student from student where Sex='男'
格式二:(当要插入的表本身便存在时)
INSERT into 表名1(列名1, 列名2)
select 列名1, 列名2 from 表名2 where 查询条件
例如:
- insert into TU_student(Sno,Sname,Sage,Sex)
- select * from student where Sex='女'
-
- -- 跨数据库插入
- insert into Demo02.dbo.student(Sno,Sname,Sage,Sex)
- select * from Demo01.dbo.student
格式:SELECT count(*) from 表名 WHERE 查询条件
例如:
- select count(*) from student
-
- -- 性别为男的行数
- select count(*) from student where Sex='男'
格式:SELECT max(列名), min(列名) FROM 表名 WHERE 查询条件
例如:
- select max(Sage) 最大值, min(Sage) 最小值 from student
-
-
- select TU_student.Sex,MAX(student.Sage) 最大年龄,MIN(student.Sage) 最小年龄
- from TU_student,student
- where TU_student.Sno=student.Sno
- group by TU_student.Sex
-
-
-
- select TU_student.Sname,MAX(student.Sage) 最大年龄,MIN(student.Sage) 最小年龄
- from TU_student,student
- where TU_student.Sno=student.Sno
- group by TU_student.Sname
格式:SELECT AVG(列名) FROM 表名 WHERE 查询条件
例如:
- select AVG(Sage) from student
-
-
- select Sex 性别,AVG(Sage) 平均年龄 from student group by Sex
格式:SELECT * FROM 表名1, 表名2 WHERE 表名1.列名 = 表名2.列名
例如:
- select TU_student.Sno,student.Sname,TU_student.Sage,student.Sex
- from TU_student,student
- where TU_student.Sno = student.Sno
格式:SELECT 列名 FROM 表名1 JOIN 表名2 ON 表名1.列名 = 表名2.列名
例如:
- select TU_student.Sno,student.Sname,TU_student.Sage,student.Sex
- from student join TU_student on student.Sno = TU_student.Sno
格式:SELECT 列名 FROM 表名 WHERE 列名 LIKE ’特定字符%‘
例如:
select * from student where Sno like '0%'
格式:SELECT 列名 FROM 表名 WHERE 列名 LIKE ’%特定字符‘
例如:
select * from student where Sname like '%三'
格式:SELECT 列名 FROM 表名 WHERE 列名 LIKE ’%特定字符%‘
例如:
select * from student where Sno like '%0%'
_
匹配单个字符格式:SELECT 列名 FROM 表名 WHERE 列名 LIKE ’特殊字符_‘
例如:
select * from student where Sno like '00_'
_
匹配多个单个字符格式:SELECT 列名 FROM 表名 WHERE 列名 LIKE ’特定字符__‘
例如:
select * from student where Sno like 's___'
格式:SELECT 列名 FROM 表名 GROUP BY 分组
例如:
- -- 男女分别多少人
- select Sex, count(*) 人数 from student group by Sex
格式:SELECT 列名1, 列名2, 列名... , CASE WHEN 判断条件 then 结果为真的返回值 else 结果为假的返回值 end from 表名
例如:
- -- 学号是否为001
- select Sno 学号,case when Sno='001' then 'true' else 'false' end 是否为001 from student
-
-
- -- 性别是否为男
- select Sno 学号,Sname 姓名,Sage 年龄, Sex 性别,
- case when Sex='男' then 'true' else 'false' end 性别是否为男 from student
格式:SELECT DATEDIFF(day,日期1,日期2) AS 列的别名(例如:日期差多少天) FROM 表名 where 逻辑条件
例如:
- SELECT DATEDIFF(day,'2024-03-01','2024-04-01') AS 日期差多少天
-
- SELECT DATEDIFF(day,day1,day2) AS 日期差多少天 from a_dateTable
格式:SELECT CAST(列名 as 数据类型) FROM 表名 where 逻辑条件
例如:
- -- 吧001学号转为int数据类型
- select CAST(Sno as int) from student where Sno='001'
- -- 吧年龄转为char数据类型
- select CAST(Sage as char) from student
格式:ALTER DATABASE 数据库名 SET OFFLINE WITH ROLLBACK IMMEDIATE
例如:
alter database Demo02 set offline with rollback immediate
格式:EXEC sp_detach_db @dbname=N'数据库名'
例如:
exec sp_detach_db @dbname=N'Demo02'
格式:
EXEC sp_attach_db @dbname=N'数据库名',
@filename1=N’.mdf文件的存储路径‘, @filename2=N'.ldf文件的存储路径'
例如:
- exec sp_attach_db @dbname=N'Demo02',
- @filename1=N'M:\SQLServer_File\Demo02_Data\Demo02.mdf',
- @filename2=N'M:\SQLServer_File\Demo02_Data\Demo02_Log.ldf'
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。