1.创建数据库
格式:create database 数据库名
on primary(
…)
log on(
…)
create database testdb01
on primary(
name=testdb01,
filename='E:\testdb\testdb01.mdf',
size=5,
maxsize=100,
filegrowth=5 --最后一个属性不需要加逗号
)
log on(
name=testdb01_log,
filename='E:\testdb\testdb01_log.ldf',
size=5,
maxsize=100,
filegrowth=5
)
--注意事项:这里需要自己先创建testdb文件夹,因为数据库不会自己给你创建的。
2.删除数据库
格式:drop database 数据库名
3.修改数据库的名字
格式:alter database 旧数据库名
modify name=新数据库名
alter database testdb02
modify name=testdb01
4.修改数据库文件的属性
格式:alter database 数据库名
modify file(
…)
alter database testdb01
modify file(
name=testdb01, --这里不是修改名字,而是要找到修改的文件名字
size=11,
maxsize=100,
filegrowth=10
)
5.查看数据库属性
格式:exec sp_helpdb 数据库名
exec sp_helpdb testdb01
6.创建表
格式:create table 表名(
列名 数据类型 约束类型 是否为空,
列明 数据类型 是否为空)
create table stu(
stuID int primary key not null,
name varchar(10) not null,
age int null
)
注意事项:最后一行不能加逗号
7.删除表
格式:drop table 表名
drop table stu
8.–修改列类型
格式:alter table 表名
alter column 列名称 数据类型
alter table stu_infor
alter column name varchar(20)
9.修改列是否为空
格式:alter table 表名
alter column 字段名称 数据类型 是否为空(not null或者null)
alter table stu_infor
alter column age float not null
10.添加字段
格式:alter table 表名
add 字段名称 数据类型 是否为空(not null或者null)
alter table stu_infor
add grade varchar(10) not null
11.添加主键约束
格式:alter table 表名
add constraint 约束名 primary key (添加主键的字段名)
alter table stu_infor
add constraint KI primary key (stuID) --给字段stuID添加约束,约束类型是主键,约束名字是KI
12.添加外键约束
格式:alter table 表名
add constraint 外键名 foreign key(添加外键的字段名) references 依赖的表名(字段名)
--添加外键约束
alter table stu
add constraint fk foreign key (age) references stu_infor(ID)
在表stu的字段age中添加外键fk依赖于表stu_infor的字段上
13.修改字段名
格式:exec sp_rename ‘表名.字段名’, ‘新的名字’,‘column’
exec sp_rename 'stu_infor.stuID','ID','column'
--将stu_infor表中的stu_ID字段名修改成新的字段名ID
14.between 查询在某一个范围内的记录
select *from stu_infor
where age between '20' and '23'
--注意事项:between后面不管是什么数据类型,都要用单引号
select *from stu_infor
where name between '阿大'and '赵敏'
--查询表中不在65到75之间的记录
select *from stu_infor
where grade not between '65' and '75'
--查询当前时间
select getdate()
15.delete记录
--删除表中第3行的记录
delete stu_infor
where ID=3
16.where精确限制
--where精确限制
update stu_infor
set name='阿大'
where ID=1
17.模糊查询like
select *from stu_infor --查询表中名字开头是啊的记录
where name like '阿%'
select *from stu_infor --查询表中名字结尾是四的记录
where name like '%四'
18.dinstinct
--查询表中不能重复的字段
select distinct grade from stu_infor
19.top查询表中前面几行数据
格式:select top 数据 字段 from 表名
--查询表中前几行的记录
select top 2 * from stu_infor
20.update修改表中的数据
格式:update 表名
set 字段=输入值
where 字段=值
--修改表中的字段数据
update stu_infor
set name='赵敏'
where ID=4
21.insert往表中插入记录
格式:insert into 表名(字段)
values(值)
--往表中插入一条记录
insert into stu_infor(ID,name,age,grade)
values(01,'张三',20,60)
--往表中插入多条记录
insert into stu_infor(ID,name,age,grade)
values(02,'李四',21,65),
(03,'王麻子',22,70),
(04,'张无忌',23,75)
--注意事项:这里插入多条记录时,插入的数据要与字段一一对应。
22.删除表中外键约束
格式:alter table 表名
drop constraint 约束名
--删除表中外键约束fk
alter table stu drop constraint fk
23.查询表中部分字段
格式:select 字段,字段,字段 from 表名
--查询表中的部分字段
select ID,name from stu_infor
24.子查询in的用法,它是一个字段范围,在这个范围内查询
格式:select *from 表名 where 字段 in (值集)
--子查询in的用法,它是一个字段的范围,在这个范围内查询
select *from stu_infor
where ID in (1,2,3)
--查询整张表中ID是1,2,3的记录
--查询整张表忠姓名是阿大,李四和赵敏的记录
select * from stu_infor
where name in ('阿大','李四','赵敏')
--查询整张表中ID不是1,2,3,4,5的记录
select * from stu_infor
where ID not in (1,2,3,4,5)
25.as给表/列起名字
格式:select *from 表名 as 名字
格式:select 字段 as 别名
字段 as 别名
字段 as 别名
from 表名
----给表起别名
select * from stu_infor as A
--给列起别名
select ID as 序号,
name as 姓名 ,
grade as 成绩
from stu_infor
--注意事项:如果要把一个查询结果作为另外一个查询的元,必须要起这个查询起别名
--如:
select *from (select *from stu_infor where age between 21 and 25) as A
26.exists子查询
27.索引index
索引目的:提高查询效率
索引分2类:
聚集索引:实际的物理存储顺序和逻辑顺序一致,一个表只能有一个聚集索引
非聚集索引:实际的物理存储顺序和逻辑顺序不一致,一个表可以有很多个非聚集索引
唯一索引、视图索引、全文索引、xml
如:张三排在某张表的第一位,如果按照年龄排序,张三也是在第一位,这就是聚集索引
增加索引后会增加额外的存储的空间,同时降低增、删、改、查的效率。
创建聚集索引
格式:create clustered index 索引名 on 表名(字段)
---给表中ID这个字段创建聚集索引
create clustered index ixhaha on stu_infor(ID)
删除索引
格式:drop index 表名.字段
--删除索引
drop index stu_infor.ixhaha
创建非聚集索引
格式:create nonclustered index 索引名 on 表名(字段)
--创建非聚集索引
create nonclustered index xixi on stu_infor(name)