03.SQL Server(数据管理)

对于数据库使用来说,设计好数据表只是一个框架而已,只要添加完的数据表才可以成为是一个完整的数据表。

1.数据操作分类

  • 数据定义语言(DDL):create ,drop,alter
  • 数据操作语言(DML):delete,select,insert,update
  • 数据控制语言(DCL):grant,revoke,commit,rollback
  • 附加语言元素:set declare open fetch close execute if else等
  • 事务管理语言:begin tranction/commit rollback,ransaction

2.数据管理操作准备工作

/*1.创建数据库*/
create database db_stuManager;
/*2.使用当前创建数据库*/
use db_stuManager;
/*3.创建学员信息表*/
create table tb_student
(
    sno int primary key identity(1,1),--学号,主键,标识列
    sname varchar(50) not null,--姓名
    ssex char(2) check( ssex = '男' or ssex = '女'),--性别
    sage int not null,--年龄
    saddress varchar(50) default '湖南省长沙市',--地址
    stelphone varchar(30),--电话
    sbirthday datetime,--生日
    sclass varchar(20)--班级
)

3.使用insert语句添加数据

insert语句可以实现向表中添加新纪录的操作,该语句可以向表中插入一条新纪录或者插入一个结果集。

语法如下:

/*一次插入一条数据*/
insert into tb_表名( 字段1 , 字段2 , 字段3 , ... , 字段n ) values ( '值1' , '值2' , '值3' , ... , '值n');

/*一次插入多条数据*/
insert into tb_表名( 字段1 , 字段2 , 字段3 , ... , 字段n ) 
values 
( '值1' , '值2' , '值3' , ... , '值n'),
( '值1' , '值2' , '值3' , ... , '值n'),
( '值1' , '值2' , '值3' , ... , '值n'),
( '值1' , '值2' , '值3' , ... , '值n'),
( '值1' , '值2' , '值3' , ... , '值n'),
( '值1' , '值2' , '值3' , ... , '值n');

【例子】利用insert语句向数据表tb_student添加数据记录。

insert into tb_student ( sname , ssex , sage , saddress , stelphone , sbirthday , sclass ) values ( '张三' , '男' , 18 , '湖南省长沙市' , '15173850223' , '2003-09-09' , '281');

insert into tb_student ( sname , ssex , sage , saddress , stelphone , sbirthday , sclass ) values
( '张叁' , '男' , 18 , '湖南省长沙市' , '15173850223' , '2003-09-09' , '281'),
( '张四' , '女' , 18 , '湖南省株洲市' , '18737436747' , '2003-09-09' , '281'),
( '张五' , '男' , 18 , '湖南省衡阳市' , '15348758433' , '2003-09-09' , '281'),
( '李四' , '女' , 18 , '湖南省湘潭市' , '15547534673' , '2003-09-09' , '281'),
( '李武' , '男' , 18 , '湖南省娄底市' , '15023647323' , '2003-09-09' , '281');

注意事项

  1. 如果该表上主键被设置为标识列,则插入数据时,该字段必须省略,否则报错;因为标识列不可手动维护。
  2. 如果向表中添加所有的字段,可以省略要插入的数据的列名。insert into tb_student values ( '翠花' , '女' , 21 , '湖南省株洲市' , '13317845678' , '2000-07-09' , '281');
  3. 如果想表中添加所有的字段,value后面的值不能缺省。

3.使用delete语句删除数据

语法如下:

/* 删除所有数据 */
delete from tb_表名;

/* 条件删除数据 */
delete from tb_表名 where 某属性= '某值';

--注意:from关键词可省略
-- 1.删除学号为5的学员信息
delete from tb_student where sno = 5;

-- 2.删除年龄在18到25岁之间的学员信息
delete from tb_student where sage between 18 and 25;
--或
delete from tb_student where sage >= 18 and sage <= 25;

4.使用update语句修改数据

语法如下:

/* 修改表中所有行 */
update tb_表名 set 某属性 = '修改后的新值';

/* 按指定条件进行修改数据 */
update tb_表名 set 某属性 = '修改后的新值' where 某属性 = '某值';

update tb_表名 set 某属性 = '修改后的新值' , 某属性 = '修改后的新值' , 某属性 = '修改后的新值' , 某属性 = '修改后的新值' where 某属性 = '某值';

--1.修改学员表中的所有人的年龄+1岁
update tb_student set sage=sage+1;

--2.修改学号为1的班级  改成288
update tb_student set sclass = '222' where sid = 1;

--3.修改学号为4的所有信息,多个字段用逗号隔开
update tb_student set sname = '小毛毛',ssex = '男',sage = 38 , stelphone = '13145202345',sindeitnty = '432723199909098765' , saddress = '猫猫村'
,sclass= '289' where hid = 4;

5.使用select语句查询数据

查询所有语法格式

select 字段1,字段2,字段3,...,字段n from tb_表名;
/* 如需查询所有字段使用*替代所有字段 */
select * from tb_表名;

字段别名语法格式

select 字段 as '别名' from tb_表名;
select 字段 '别名' from tb_表名;
select '别名' = 字段 from tb_表名;

条件查询

/* 运算符:>(大于) <(小于) >=(大于或等于) <=(小于或等于) =(等于) (!=、<>)不等于 */
select * from tb_表名 where 某属性 = '某值';

/* between...and 在...之间 */
select * from tb_表名 where 某属性 between 某值 and 某值;

like查询(模糊查询)

--模糊查询一般于通配符结合使用
-- _   代表一个字符[任意的]
-- %   代表任意字符[1个以上]
select * from tb_表名 where 某属性 like '%关键词%';

order by 排序

--升序[asc],默认  降序[desc]
select * from tb_表名 order by 属性 asc;

top 关键词

select top 3 * from tb_表名;

distinct 去重复

select distinct(字段) from tb_表名;

6.经典案例

--1.查询指定的表的所有数据
select * from tb_Student;

--2.查询指定的字段:姓名和年龄
select sname,sage from tb_Student;

--3.为列名起别名[3种方式]
select sname as '姓名' from tb_Student;
select sname '姓名' from tb_Student;
select '姓名' = sname from tb_Student;

--4.查看姓名为张无忌的所有的信息
select * from tb_Student where sname = '张无忌';

--5.查询年龄大于25岁的信息
select * from tb_Student where sage >= 25;

--6.查询年龄在17-25岁之间
select * from tb_Student where sage >= 17 and sage <=25

--between...and   在...之间
select * from tb_Student where sage between 17 and 25;

--7.查询住在长沙的人的信息
--select * from tb_Student where saddress = '长沙'--错误语法
select * from tb_Student where saddress like '%长沙%';

--8.查询saddress字段以村结尾的有哪些人?
select * from tb_Student where saddress like '%村';

--9.查询第二个字是宝结尾的所有信息
select * from tb_Student where sname like '_宝';

--10.查询性别为女并且地址为长沙的人的信息
select * from tb_Student  where ssex = '女' and saddress like '%村';

--11.查询所有的人的信息,按年龄排序  升序[asc],默认  降序[desc]
select * from tb_Student order by sage asc;

--12.按身高降序
select * from tb_Student order by sheight desc;

--13.查询所有男生后再按身高排序
select * from tb_Student where ssex = '男' order by sheight asc;

--14.按年龄排序后继续按身高排序
select * from tb_Student order by sage asc,sheight desc;

--15.取年龄最大的三位人
select top 3 * from tb_Student order by sage desc;
--百分制  percent
select top 50 percent * from tb_Student order by sage desc;

--16.查看性别
select distinct ssex from tb_Student;

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淡独东执

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值