SQL server语法(1)

目录

SQL 的组成

运算符

外键

Check约束

插入数据

基础查询数据

查询指定的列

删除数据

修改数据

查询数据

字符串函数

日期函数

数学函数

系统函数

通配符

模糊查询


数据类型

image 可用来储存图像

char(字节大小)文本数据类型 定长 通过字节的方式限定长度

varchar(字节大小)文本数据类型 动长 通过字节的方式限定长度

nchar(长度)文本数据类型 通java 字符串类型 通过内容的长度方式限定长度

nvarchar(长度)文本数据类型 动长 通过内容的长度方式限定长度

SQL 的组成

运算符

外键

外键跟着一个主键 外键必须和主键关联 外键必须和主键一个数据类型

创建表格

student表个中的teacher 是外键 他要和 teacher表格中的主键id 建立关系

因为一个学生对应一个老师的编号

所以 student 表格中的 teacher 是次类

teacher 中的 id 是 主类

所以我们要和 student 中的 teacher 设置关系

先添加一个关系

然后设置 主键 外键

注意:我 外键 填写的内容必须是 主键有的

新建关系图

钥匙插着的是 主键(主要的) 没有钥匙的是外键(次要的)

Check约束

约束:添加输入条件

扩展限制名字长度长度

len(name)>=2 and len(name)<6

 

添加条件

插入数据

指定列名 插入数据是不可以用双引号

insert into teacher (列名) values ('添加的数据');

查询列表信息

select * from 表格名;

不写列名

insert into teacher values ('添加的数据');

基础查询数据

查询数据

查询列表所有信息

select * from ClassTable

指定插入数据

insert into ClassTable(id,type,name) values('A1109','开发','1107班');
select * from 表格名

插入数据

insert into ClassTable values('A1109','开发','1107班')

添加的时候使用默认值

insert into student (number,name) values (default,'你好')

 

查询指定的列

查询指定的列

select name,age from member;
select 列名 from 表格名;

把查询的数据复制到另一个表格中

查询出来的name age 复制到s2表中

insert into s2 select name,age from member

查询数据出入新的表格中

把查询到的结果,复制到一个不存在的表格中

会自动创建新表

注意:只能执行一次

select 查询的列名 into  新建的表格名 from 查找的表格名

select name,skill into ababab from member

多行插入

一次插入多行数据

insert into 表名(列表)
select(列名)union

删除数据

删除一行

delete from 表格名 where 变量名 = 条件 ;

一定要加条件

一定要加条件

使用delete 语句清空了所有的数据后

再次添加新的数据

自增长的id 是从删除的 id 后面开始的

删除整个表

清空数据

注意:有性能问题 建议删除大量的数据 只有一条数据就用delete

truncate table 表名

修改数据

修改命令

update sanguo set attack = 100000 where id = 35;

一定要加添加

后果:会导致整个表变成这个

查询数据

带一个条件的查询

select * from sanguo where cointry='吴国';
select * from sanguo;

select * from sanguo where cointry='吴国' and attack > 80;
select * from 表格名 where 条件;

select name as 姓名,attack as 攻击力 from sanguo where cointry='吴国'
​
select * from sanguo

as 给 表格列名起别名

列名 as 别名

错误示范:

select name + attack  from sanguo where cointry='吴国'
​
select * from sanguo

正确

select name + cointry  as 英雄 from sanguo where cointry='吴国'

相同的数据类型可以拼接

不相同的数据类型不可以拼接

这样也可以,但不建议

select name 英雄 from sanguo where cointry='吴国';

查询空数据

空查找

查询为null的数据

select  *  from sanguo;
​
select * from sanguo where conutry is null;

查询不为空的数据

查询不是 null 的数据

select  *  from sanguo;
​
select * from sanguo where conutry is not null;

select 姓名=name from sanguo

起别名有三种用法 一种是 as 一种是 空格 一种是 =

常量起别名

实例:

数据库表格就有序的对象数组

查询数据并限定行数

select top 3 *  from sanguo;
​
select * from sanguo where conutry is not null;

按百分比来显示行数

select top 30 percent  *  from sanguo;
​
select * from sanguo where conutry is not null;

案例

升序降序查询

升序排序

order by 列名 asc

降序

order by 列名 desc

打印

注意:从1开始

select charindex('cd','abcdef')

字符串函数

 

演示

select ltrim('  你好  ');
select rtrim('  你好  ')
select right('买卖提.吐尔松',3);
select replace('你是暗红色','暗','浅');
select stuff('ABCDEFG',4,1,'你好我是');

注意:原字符串是 ABCDEFG 删除的是第4个后的第几位数 如果是 0 就不删除如果是 1 就删除 D

实操

日期函数

常用的是:

getdate();
datediff();

 

 

数学函数

系统函数

把一行数据的所有的O 改成 0

排序

通配符

模糊查询

_

select * from sanguo where name like '张_'

查出所有姓张而且是两个名字的人

%

select * from sanguo where name like '张%'

查出任意长度姓张的人

查找所有带白的

select * from sanguo where name like '%白%'

[]

字符集

select * from sanguo where name like '张[飞辽]'

[^]

除了字符集

取反

select * from sanguo where name like '张[^辽]'

查找两个字用户,不姓张的

select * from sanguo where name like '[^张]_'

 查找包括最大值最小值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

SSOA6

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

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

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

打赏作者

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

抵扣说明:

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

余额充值