sql server 学习笔记

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:

1.将数据库的字符集修改为:
alter database dbname collate Chinese_PRC_CI_AS

2、如果是表中的字段:
ALTER TABLE Userinfo ALTER COLUMN name VARCHAR(4) COLLATE Chinese_PRC_CI_AI

如果修改整个服务器的默认排序规则,用Rebuildm.exe重建master库  

1、create database school 创建数据库school

2、drop database school 删除数据库school

3、use school 连接到school数据库,使其成为当前数据库

4、create table class(classID int primary key identity not null)
创建一个名为class的表,其有一个int型数据classID字段,该字段设置了主键约束
并自动编号列且不能为空


7、select * into class2 from class
   将class表中的所有数据复制到class2表中

8、
 select * into class2 from class where 1=0 只复制表结构

9、insert into class2(className) values('Juhn')或
   insert into class2(className,tel) values('Bile','0731-2255664')
    在class2表中插入一条记录
Insert into RPMIItbSales ([ControlProcessed] ,[ControlTimeStamp])[]可有可无


10、 delete from Student where StudentID between  13 and 15
    删除Student表中StudentID在13至15之间的数据(包括13和15)

11、alter table class2 add tel varchar(15) default('没有电话')
    修改表class2,为它添加一个tel列并将其默认值设为'没有电话'

12、alter table class2 drop column tel 删除列

13、alter table student add constraint telDefault  default('没有电话') for tel
    修改tel列的默认值

14、create table class3(classID int ,constraint id_key primary key(classID))
    创建一个名为class3的表并为它设置了名为id_key的主键约束

16、alter table class2 add age int check (age between 0 and 120)
    为class2添一个age列,并为其设置检查约束,使其的取值在0到120之间

17、alter table class2 add age int ,constraint ageCheck check
    (age between 0 and 120)
    其设置检查约束方法二,为约束取名为ageCheck

18、alter table class2 add tel varchar(15) ,check
(tel like '[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
其设置检查约束方法三,此为模糊约束

19、create table class3(ID int primary key identity,classID int ,
    name varchar(15) ,constraint classID foreign key(classID) references
    class2(classID))
    设置外键约束

20、alter table class3 drop classID
删除class3的classID外键约束

21、create index class2Name on class2(className)
    在class2表的calssName字段上创建一个class2Name的索引

22、create unique index class2Name on class2(className)
    创建唯一索引

23、select classID,className from class2 where className='body'
    select classID,className from class2 where className like '%s'
    创建索引后查询的的速度将更快,但会降低insert、update、delete的执行速度

24、drop index class2.class2Name 删除表class2上的class2Name索引

25、update class2 set className='Lida',tel='13787277732' where classID=3
    将class2表中className和tel列、classID=3
    行的单元格的值改为'Lida'和'13787277732',注意忽略where语句将改变表中所有的行

26、create default sexDefault as '男'; 创建一个名为sexDefault的默认值
    sp_bindefault sexDefault,'student.sex';
    将创建的sexDefault默认值绑定到student表的sex字段上

27、insert into class2(name,names) select name,names from class1
    将class1中的数据全部复制到class2中

28、truncate table class 删除class表中所有的行

29、select Name 国家,Population 人口 from BBC where Name
    in('France','Cermany','Italy United')
    查询BBC表中'France','Cermany','Italy United'三个地区的所在的国家和人口数

30、select Name 国家 from BBC where Name like '%United%'
    查询BBC表中的Name字段中包含United字符的国家,通配符"_"表示匹配任意单个字符

30、select Name 国家, Population 人口 from BBC where Population>100000000 order by Population desc
    查询BBC表中的Population字段大于100000000的国家和人口,并按降序排序,默认为升序asc

31、select Name,round(Population/1000000,0) as '人口(百万)' from BBC where Region='South Asia'
    查询BBC表中的Region='South Asia'国家和百万人口数(round是四舍五入)

32、select distinct Region from BBC
    查询BBC表中的Region字段中的非重复数据,distinct排除重复数据
    如有多列则作用在列的组合上,而不再作用在单列上

33、
 select top 50 percent * from BBC 
    查询BBC表中的所有字段,但只返回总行数的50%,percent表百分数、可选

select top 3* from BBC 

34、select * from BBC where Area>100 and not GDP<10000000
    查询BBC表中的所有Area小于100并且GDP不小于10000000的数据,会返回所有的列,不只是Area列

33、select * from BBC where Area not between 20000 and 30000
    查询BBC表中的所有Area不在20000和30000之间的数据,会返回所有的列,不只是Area列

34、select distinct Name+str(Age) 学生 from Student
    查询Student表中Name和Age字段都不重复的数据
    str(Age)返回Age的字符串表达形式,"学生"是别名
   
35、select * from Student where Nealth is null
    查询Student表中Nealth字段为null的数据
   
36、exec sp_helpconstraint 'Teacher'
    查看'Teacher'表中的所有约束
   
37、select * from Student where StudentID=1
for xml raw
返回XML语句


39、create procedure insert_Procedure
@Name varchar(10),
@Sex varchar(2),
@Age int,
@Tel varchar(20),
@Address varchar(50)
as
insert into student(Name,Sex,Age,Tel,Address) values(@Name,@Sex,@Age,@Tel,@Address)
创建一个插入数据的存储过程
40、select datediff(day,'20090403',getdate())
用指定时间减去当前时间,返回的是天数,还可以用month返回月数

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
相关文章
|
26天前
|
SQL 安全 算法
【SQL server】玩转SQL server数据库:第四章 数据库安全性
【SQL server】玩转SQL server数据库:第四章 数据库安全性
66 12
|
26天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
64 10
|
26天前
|
SQL 存储 算法
【SQL server】玩转SQL server数据库:第一章 绪论
【SQL server】玩转SQL server数据库:第一章 绪论
42 5
|
26天前
|
SQL 数据库 数据库管理
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(一)模式、表、索引与视图
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(一)模式、表、索引与视图
59 11
|
9天前
|
SQL 数据可视化 算法
SQL Server聚类数据挖掘信用卡客户可视化分析
SQL Server聚类数据挖掘信用卡客户可视化分析
|
26天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
100 6
|
1天前
|
SQL 安全 数据库
SQL Server 备份和还原
SQL Server 备份和还原
|
1天前
|
SQL 存储 安全
SQL Server 权限管理
SQL Server 权限管理
|
1天前
|
存储 SQL
SQL Server 存储过程 触发器 事务处理
SQL Server 存储过程 触发器 事务处理
|
1天前
|
SQL 自然语言处理 搜索推荐
SQL Server 索引和视图
SQL Server 索引和视图