SQL基础(1)---- 简单的SQL语句

虽然现在什么问题都能问百度、谷歌。但是有些基本的知识还是需要上手就有的。

现在很多工具都是可视化操作,很多命令就淡忘了。重新复习下,面试题中出现的几率很高的。

下面的操作是在microsoft sql server 2005中测试无误,其他版本请大家自行测试。

1>简单创建数据库,数据表

创建数据库mydb。

注意用户名称要用中括号包裹,以区分系统关键词。我很多时候就不太习惯用。不过这样在程序中很容易出错而找不到问题在哪。

create database mydb

创建一个员工表。

注意自增长的关键词identity;varchar和nvarchar的区别,两者都能存储中文字符,但varchar在英文操作系统中容易出现乱码。nvarchar占用空间要大些。

char和varchar区别在于char固定字符长度,如果存储字符长度不够,char会把其他位置用空格不全。

bit类型在c#是boolean类型,数据库中只能存储0和1。

create table [employees](
    [id] int identity(1,1) primary key,
    [ename] varchar(20),
    [gender] bit,
    [age] int,
    [department] varchar(50),
    [entrydate] datetime
)

2>基本查询语句用的比较多,这个很容易记忆。分组查询要分析和测试来写。

按性别分组,统计年龄大于30的、记录条数大于355,按人数降序排列。

use test

select * from MyStudent

select 
    --distinct / top 之类的关键字(这些都是一些现实的选项)
    fgender as 性别,  --5>选择列
    count(*) as 人数
from MyStudent --1>先从MyStudent表中拿到数据(全部数据的一个结果集)
where fage>30  --2>从MyStudent的数据中筛选出所有年龄大于30岁的人的信息(新结果集,都是年龄大于30的)
group by fgender --3>按照性别分组,分完组以后又得到一个新结果集(分组后的结果)
having count(*)>355 --4>基于分组以后的结果集,然后在筛选,筛选出那些组中记录大于500的组。
order by  人数 desc--6>最后把显示出来的结果排序

 3>表中字段添加约束

constraint约束关键字,ch_age约束名称,check约束age大于零

alter table [employees] 
add constraint ch_age check(age>0)

 4>增删改就简单了

insert into employees values('yuem',1,27,'IT部门',getdate())
update employees set age=28
delete from employees where id=2 

 

posted @ 2013-01-14 14:03  life is a gift  阅读(195)  评论(0编辑  收藏  举报