1.SQL简介:
SQL是什么?
Structured Query Language:结构化查询语言
为何要使用SQL?
难道仅仅使用SQL Server Management Studio操作数据库?
应用程序如何与数据库打交道?
何时使用?
对SQL Server执行所有的操作都可以
程序中的增删改查
怎么使用?
2.SQL和T-SQL:
T-SQL :Transact-SQL
T-SQL是SQL的增强版
对功能进行了扩充:如变量说明、流程控制、功能函数
3.SQL的组成:
4.算术运算符:
4.1 运算符
4.2 赋值运算符
4.3 比较运算符
5.查询窗口的介绍
6.插入数据行语法
插入数据行注意事项6-1
插入数据行注意事项6-2
插入数据行注意事项6-3
7.使用UPDATE更新数据行
8.使用DELETE删除数据行
9.使用TRUNCATE删除数据行
10.什么是查询
查询语法
数据查询基础2-1
数据查询基础2-2
数据查询-列别名
数据查询-空行、常量列
数据查询-限制行数
查询单列排序
查询多列排序
代码:
use T217School
-- 1 基本的插入语句
-- insert into 表名 (列名1,列名2,.......,列名N) values(值1,值2,.........,值N)
--1 列名数据类型和值的数据类型一致
--2 列名的个数和值得个数必须一致
--3 自动增长列不能够进行赋值
--4 一定要给列不为空进行赋值
--insert into Students(SCode,SName,SAddress,SGrade,SEmail,SSex)
--values(newid(),'zs','cs',1,'[email protected]',1)
-- 语法不要用原因:后期懵逼
--insert into Students
--values(newid(),'ww','cs',1,'[email protected]',1)
--insert into Students(SCode,SName,SAddress,SGrade,SSex)
--values(newid(),'ls','cs',1,0)
--插入默认值1
--有默认值的情况下,不操作默认值得列等同于使用默认值
--insert into Students(SCode,SName,SGrade,SSex)
--values(newid(),'zl',1,0)
--有默认值的列插入了新的值,则使用新值而不使用默认值
--insert into Students(SCode,SName,SAddress,SGrade,SSex)
--values(newid(),'sq','zz',1,0)
--使用关键字来使用默认值
--insert into Students(SCode,SName,SAddress,SGrade,SSex)
--values(newid(),'zsf',default,1,0)
--修改语句 一定要带上where条件的 初始化的时候 修改永远是修改一条 或者是多条 绝对不会是全部
--update 表名 set 列名1=修改值,列名2=修改值,........,列名N=修改值 where 列名=条件值
--update Students set SAddress='株洲'where SName='zs'
--update Students set SEmail='[email protected]' where SName='zs'
--update Students set SAddress='株洲',SEmail='[email protected]' where SName='zs'
--update Students set SAddress='株洲',SEmail='[email protected]' where SSex=0
--删除语句
--delete from 表名 where 列名=条件值
--delete from Students where SName='zs'
--如果你的表中存在自动增长列 那么就意味着下一次的数据开始的数字上上一次数据结束数字+增长值
--delete from Students
--用户表 admin
--delete from Students where SName <> 'admin'
--重置清空包含自动增长列
--truncate table stuMarks
--重置清空和删除
--1 重置清空属于sql命令 删除属于T-sql的语句
--2 重置清空不会被记录到日志文件中,删除会记录到日志文件中,并且可以通过日志文件对删除的数据进行还原操作
--复制数据
--insert into Students(SCode,SName,SAddress,SEmail,SSex)
--select code,name,address,email,sex from [dbo].[Student$]
--查询
--select * from 表名
--1 *好代表所有的数据表中的列
--2 不要用*号,实际的开发过程中的SQL语句不要使用
-- *数据库会帮你找到表中实际上存在的列
-- 会产生时间的损耗(反射)
--select * from Students
--指定列名的查询
--select 列名1,列名2,......,列名N from 表名
--select scode,sname,ssex from Students
--带条件的查询
--select 列名1,列名2,......,列名N from 表名 where 列名=条件值
select * from Students where SName='金蝶'
select * from Students where SName='洛飞'
--select 列名1,列名2,......,列名N from 表名 where 列名=条件值 or 列名=条件值
select * from Students where SName='金蝶' or SName='洛飞'
--select 列名1,列名2,......,列名N from 表名 where 列名=条件值 and 列名=条件值
select * from Students where SName='夏一桐' and SSex=1
--查询空列值
--select 列名1,列名2,......,列名N from 表名 where 列名 is null
select * from Students where SEmail is null
--查询不空列值
--select 列名1,列名2,......,列名N from 表名 where 列名 is not null
select * from Students where SEmail is not null
--列别名,表的别名
--select 列名1 AS '列别名',列名2 AS '列别名',......,列名N AS '列别名' from 表名
select scode as '编号',sname as '名字' from Students
select scode'编号',sname'名字' from Students
--=取别名(列)
--select '别名'=列名1,'别名'=列名2 ,......,'别名'=列名N from 表名
select '编号'=scode,'名字'=sname from Students
--给指定的列进行赋值
select scode='编号',sname='名字'from Students
--常量值
select * , '今天天气很好' AS '常量值' from Students
--固定行
--select top 阿拉伯数字 列名1,列名2,......,列名N from 表名
--阿拉伯数字 代表需要查询的数据的行数
select top 10 * from Students
-- 排序
--select 列名1,列名2,......,列名N from 表名 where 列名 is null order by 排序的列
-- 默认是升序 (asc/desc) 降序 ascii码值
select * from Students order by SName
select * from Students order by SName desc
--是对查询出来的数据进行根据排序列的排序 升/降
select * from Students where SEmail is null order by SName
--select 列名1,列名2,......,列名N from 表名 where 列名 is null order by 排序的列,排序的列
select * from Students order by SName,scode
select * from Students order by SName desc ,scode asc