您的位置:首页 > 数据库

数据库语法03

2016-01-30 00:00 483 查看
SQL一些基础的命令

插入数据

Insert into Persion1(Name,Age) Values(‘zhanghui’,21);

用newid自动生成序号。

Insert into Persion2(Id,Name,Age) Values(newid(),’hui’,22);

更新数据

1: UPDATE T_Person1 set Age=30;

2: Update Person set Name=’xiaohui’

Where Age>=20;

** 在数据库中等于号为一个等号。

** “<>”:表示不等于;

** 或者:为or;

删除数据

删除表全部

Delete from Person1

删除表的数据,表还在。

Delete from Person1 where Age>21

数据检索

Select * from <*:表示表名> 后面也可以加where 来区划大小

其启别名

Select FName as 姓名,FAge as 年龄, FSalary as 月薪 from Student

聚合函数

Select count(*) from Student; <总和>

Select max(*) from Student;

Select sum(*) from Student; <和>

排序

Select * from Student order by Age ASC/DESC <按年龄排序>

<ASC:从小到大;DESC:从大到小>

模糊匹配<通配符>

*单字符通配符以‘_’,它匹配单个出现的字符。

以任意字符开头,剩余部分为‘erry’:

Select * from Student where FName like ‘_erry’

*多字符匹配以‘%’,它匹配任意此数出现的字符。“K%”匹配以 K 开头的字符串。

Select * from Student where FNAme like ‘%n%’

** 在数据库中的NULL为‘不知道’和C#中的解释不一样。不是没有值。





数据的分组

按照年龄进行分组统计各个年龄断的人数:

select FAge ,Count(*) from Student

group by FAge

** group by 子句必须放在where语句之后。

** 没有出现group by子句中的列是不能放到select语句后的列名列表中的(聚合函数除外)







having语句

在where中不能使用聚合函数,必须使用Having,Having必须位于Group by 之后。

eg:

select Name from ,count(*) as 人数 from Student

group by Name

Having count(*)>1 //Having 不能代替where,Having是对组进行过滤的。





限制结果集的行数

eg: < 只取前3行>

select top 3 * from Student

order by Name DESC





eg: <只取去除5行的前3个>

select top 3 * from Student
where Name not in(select top 2* from Student order by Age DESC)
order by Age DESC



<.为什么出现错误???>

去除重复数据

eg:

select Gender from Student





select Gender, chinese from Student





eg: <加入distinct之后,去除重复>

select distinct Gender,chinese from Student



<distinct是对整个结果集进行数据重复处理的而不是针对每一列。>

select distinct Gender from Student





数据库的命令在不同的数据库中是相同的,但只有掌握了最基础的sql数据库才能应用于oclace等数据库。虽然现在只是学习数据库,但是我觉的还是挺有意思的,自己挺喜欢数据库的。加油。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: