posts - 1,comments - 0,trackbacks - 0
          這段時間一直在做算法,有一段時間沒有用sql語句了。今天把以前學過的整理下自己好好的溫故下也希望能給那些剛學習sql的朋友一些幫助,純屬菜鳥級別的,還希望各位高人多提寶貴意見。

                  數據庫拆表原則:
          1.簡單字段中的復合字段。解決方案:向上打通或者拆成兩表。
          2.完全依賴:知道a就知道b,反過來就不一定。實現:將同一個主題東西放在一起,主題可以是一個實體、名詞、概念。
          3.無傳遞依賴。將傳遞依賴轉為直接依賴。原因:減少插入冗余,減少增刪異常。
          4.當出現一對多的時候不能橫拆,一定拆成兩個表,特別的固定范圍可以橫拆(簽到管理)。
          5.多對多必有中間表。
          6.代碼表,大量重復或枚舉的可以運用代碼表。
          7.能計算的字段不要。
          數據定義語句DDL
          create   alter  drop
          數據控制語句DCL
          grant   deny   revoke
          數據操作語句DML
          select  update  insert  delete

                  SQL語句應用集錦
          Select變化集錦:
          1.查詢所有的字段(效率低)
          查詢所有的老師
          select *
          from dbo.teacher
          2.字段枚舉
          查詢老師的id 及姓名兩項
          select teacher_id , teacher_name
          from dbo.teacher
          3.字段取別名方法有兩種使用as(as可以省略)和不使用
          (1)select teacher_name as tN
              from dbo.teacher
          (2)select teacher_name = tN
              from dbo.teacher
          4.字段的可計算性
          (1)簡單字段的計算
              教師工資的10%
              select salary*0.1
              from dbo.teacher
          (2)把一個檢索結果作為字段使用
              本校學生和老師的比例
              (select count(*)
                 from dbo.teacher)/0.1/
              (select count(*)
                  from dbo.student)
          5.檢索結果的前幾個使用top
          select top 3 teacher_id
          from dbo.teacher
          6.取檢索結果總數的百分比
          select top 30 percent teacher_id
          from dbo.teacher
          7.去掉重復的記錄
          select distinct sex_id
          from dbo.teacher
          8.在聚合統計函數中統計出不重復指定字段
          select count(distinct 系_id)
          from dbo.teacher
          9.case when then else end 在 select 中的應用
          從教師表中查詢,將性別id是1的顯示成男,是2的顯示成女
          select(
              case 
              when sex_id = 1 then '男'
              when sex_id = 2 then '女'
              end
          )
          from dbo.teacher
          橫向查詢男女數
          select  sum(
              case 
              when sex_id = 1 then 1
              else 0
              end
          )as 'man' ,
          sum(
              case 
              when sex_id = 2 then 1
              else 0    
              end
          )as 'wmen'
          from dbo.teacher
          10.可以重復列出表的字段
          select *,*,*
          from dbo.teacher
          11.檢索結果放常量
          select teacher_name , '出生于' , teacher_date
          from dbo.teacher
          posted on 2010-03-31 23:33 zZ的家伙 閱讀(122) 評論(0)  編輯  收藏 所屬分類: sql語句

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 永定县| 宣恩县| 潞西市| 当涂县| 东安县| 赣榆县| 白山市| 铜梁县| 山东| 昌乐县| 炎陵县| 西宁市| 肃宁县| 大安市| 和龙市| 孝昌县| 崇左市| 花垣县| 津市市| 盈江县| 封开县| 织金县| 高要市| 句容市| 宁蒗| 盐亭县| 大足县| 淮北市| 托里县| 南溪县| 通榆县| 兴义市| 赤峰市| 屏山县| 赞皇县| 灵山县| 深州市| 罗田县| 南充市| 吉木萨尔县| 资阳市|