数据库语法03
2016-01-30 00:00
483 查看
SQL一些基础的命令
用newid自动生成序号。
Insert into Persion2(Id,Name,Age) Values(newid(),’hui’,22);
2: Update Person set Name=’xiaohui’
Where Age>=20;
** 在数据库中等于号为一个等号。
** “<>”:表示不等于;
** 或者:为or;
Delete from Person1
删除表的数据,表还在。
Delete from Person1 where Age>21
其启别名
Select FName as 姓名,FAge as 年龄, FSalary as 月薪 from Student
Select max(*) from Student;
Select sum(*) from Student; <和>
<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语句后的列名列表中的(聚合函数除外)
eg:
select Name from ,count(*) as 人数 from Student
group by Name
Having count(*)>1 //Having 不能代替where,Having是对组进行过滤的。
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
<.为什么出现错误???>
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等数据库。虽然现在只是学习数据库,但是我觉的还是挺有意思的,自己挺喜欢数据库的。加油。
插入数据
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等数据库。虽然现在只是学习数据库,但是我觉的还是挺有意思的,自己挺喜欢数据库的。加油。
相关文章推荐
- 数据库语法04
- 数据库语法02
- MySQL优化之BTree索引使用规则
- Oracle密码过期,修改密码
- Oracle RAC 11R2 on Linux 脚本
- memcache在windows7下安装
- SQL 笔记
- 4种sql分页
- Oracle即将删除 Applet 插件
- sql问题集合
- win7 X64 安装Oracle VM VirtualBox后无法创建com对象问题(已解决)
- web系统从oracle迁移至MySql oracle数据迁移至MySql
- 常用sql,在做项目时用mysqlWorkBeach里面自动生成的
- mysql数据备份及恢复
- vb.net+SQL Server读写图片
- C#读写MySql
- Mac编译mysql5.7
- oracle system change number(SCN)
- SQL--局部变量
- ADO操作Excel,提示错误“不可识别的数据库格式”