sql的简单的增删改查

1启动服务:
    net start mssql$实例名   net start mssql$sunjob
    net stop  mssql$实例名

 2启动资源管理器
    sqlwb

数据的完整性

 域  实体  自定义 引用
实施数据的约束
        check
 数据类型
 是否为空
        主键
        唯一
 自动增长列
 默认值
数据类型:
 char
 varchar
时间和空间

级联(主外键关系)


建立学生信息表和成绩表 和借书表(stuNo 书名 书编号)

 

分类 备注和说明 数据类型 说明
二进制数据类型 存储非子符和文本的数据 Image 可用来存储图像
文本数据类型 字符数据包括任意字母、符号或数字字符的组合 Char 固定长度的非 Unicode 字符数据
Varchar 可变长度非 Unicode 数据
Nchar 固定长度的 Unicode 数据
Nvarchar 可变长度 Unicode 数据
Text 存储长文本信息
Ntext 存储可变长度的长文本
日期和时间 日期和时间在单引号内输入 Datetime  日期和时间
数字数据 该数据仅包含数字,包括正数、负数以及分数 int
smallint 整数
float
real 数字
货币数据类型 用于十进制货币值 Money 
Bit数据类型 表示是/否的数据 Bit 存储布尔数据类型

 

create database sunjob;
use sunjob;

create table stuInfo(
 stuNo  int not null identity(1,1) primary key,
 stuName  varchar(20) null,
 stuSex char(4) not null check(stuSex = '男' or stuSex = '女'),
 stuEmail varchar(20) not null check(stuEmail like '%@%.%'),
 stuAddress varchar(20) default '湖南株洲'
);
--delete是删除数据库的数据
delete  from stuInfo;
--drop是删除数据库的数据和结构
drop table stuInfo;
--这是查询数据库的数据
select * from stuInfo;
/*
 标识列不需要手动插入数据
 插入的数据要满足约束条件
 显式插入默认值 使用default
 允许为空的列值,可以省略,not null 是必须要写的
 当不指明字段时候, 后面的值要按顺序
*/
insert into stuInfo values('张三', '男', '469299503@qq.com', '湖南长沙');
insert into stuInfo values('李四', '女', '469299503@qq.com', default);
insert into stuInfo values( null, '男', '469299503@qq.com', default);

--插入多条 注意最后一个不要使用union ,
insert into stuInfo(stuName, stuSex, stuEmail)
select '曹欢', '男', '231@qq.com' union
select '赵六', '女', '3452@qq.com' union
select '文斌', '女', '3234@qq.com';

create table stuScore(
 stuNo int not null primary key,
 stuExam int,
 stuWritten float,
 stuLab float
);

--将现有的数据插入一张新表中 (难点)
/*
一:  首先要求新表存在, 一般情况可以多次执行
 insert into 新表(新的字段名)
 select 旧表的字段名
 from 旧表
*/
select * from stuScore;

insert into stuScore(stuNo)
select stuNo from stuInfo;


/*
二: 新表不存在,自动创建, 语句只能执行一次
  select 旧表字段名
  into 新表名
  from 旧表

  select identity(int,1,1) as 字段名,其他字段名
  into 新表名
   from 旧表名
  */

select * into stuTest from stuInfo;

select * from stuTest;

select stuName,stuAddress,stuEmail,identity(int,1,1) as 自动增长列
into newTable1
from stuInfo

select * from newTable1;

delete from stuTest;--删除全部数据,但是它可以带上where条件值删除部分数据

truncate table newTable1;-- 删除全部记录,不能带上where条件语句

drop table stuTest;
drop table newTable1;--删除所有的数据及表结构
/*
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。
但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。

DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表
数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。

TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重
置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用
DROP TABLE 语句。

对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE
语句。由于 TRUNCATE TABLE 不记录在日志中,所以它不能激活触发器。

TRUNCATE TABLE 不能用于参与了索引视图的表。
*/
--通配符的讲解
/*
 % 包含零个或更多字符的任意字符串。 WHERE title LIKE '%computer%' 将查找处于书名任意位置的包含单词 computer 的所有书名。
 _(下划线) 任何单个字符。 WHERE au_fname LIKE '_ean' 将查找以 ean 结尾的所有 4 个字母的名字(Dean、Sean 等)。
 [ ] 指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符。 WHERE au_lname LIKE '[C-P]arsen' 将查找以arsen 结尾且以介于 C 与 P 之间的任何单个字符开始的作者姓氏,例如,Carsen、Larsen、Karsen 等。
 [^] 不属于指定范围 ([a-f]) 或集合 ([abcdef]) 的任何单个字符。 WHERE au_lname LIKE 'de[^l]%' 将查找以 de 开始且其后的字母不为 l 的所有作者的姓氏。


 将通配符作为文字使用
 可以将通配符模式匹配字符串用作文字字符串,方法是将通配符放在括号中。下表显示了使用 LIKE 关键字和 [ ] 通配符的示例。

 符号 含义
 LIKE '5[%]' 5%
 LIKE '[_]n' _n
 LIKE '[a-cdf]' a、b、c、d 或 f
 LIKE '[-acdf]' -、a、c、d 或 f
 LIKE '[ [ ]' [
 LIKE ']' ]
 LIKE 'abc[_]d%' abc_d 和 abc_de
 LIKE 'abc[def]' abcd、abce 和 abcf

*/
select * from stuInfo;
delete stuInfo where stuName is null;--查询stuName是null的记录
select * from stuInfo where  stuEmail like '[2-4]%';--这是查询开头是以2,3,4其中任何一个数开头的
select * from stuInfo where  stuEmail like '[2,4]%';--这是产寻开头是以2,4其中任何一个数开头的

--更新
update stuInfo set stuName = '曹欢', stuEmail = '1234@qq.com' where stuNo = 1;

--查询
/*
 _表示任何的单个字符,%表示任意任何数量的字符
*/

select * from stuInfo where stuEmail like '1__4%';

--条件删除
delete  stuInfo where stuEmail  like 'sd[1,3]%'

delete  stuInfo where stuEmail  like 'sd[1-3]%'

delete  stuInfo where stuSex is null

--修改数据

update stuInfo set stuSex='男' where stuName='小桌子'

update stuInfo set stuName='小凳子',stuEmail='huzi@126.com' where stuNo=3

--查询
select * from stuInfo    --查询表结构

select stuNo,stuName,stuSex,stuEmail,stuAddress from stuInfo

--条件查询
select * from stuInfo where stuName='小凳子'
select * from stuInfo where stuName='小凳子' or stuSex='女'


--模糊查询
select * from stuInfo where stuName like '_椅_'
select * from stuInfo where stuName like '小%'

--查询具体的字段
select stuName from stuInfo where stuName='小凳子'
select stuName,stuSex from stuInfo where stuName='小凳子'

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值