SQL數據庫基本操做語句

1、數據庫及數據庫表定義
  一、建立基本表數據庫

    create table <表名> (<列名><數據類型>[列級完整性約束條件]服務器

                                                     [,<列名><數據類型>[列級完整性約束條件].net

                                                     .........blog

                                                     [,<表級完整性約束條件>]);索引

            例:it

create table student  ( Sno char(5) not null unique,io

                                                              Sname char(20) unique,table

                                                              Ssex char(1),date

                                                              Sage int,file

                                                              Sdept char(15));

       二、修改基本表

             alert  table  <表名>

                                  [add <新列名> <數據類型> [完整性約束]]

                                  [drop <完整性約束名>]

                                  [modify <列名><數據類型>];

          add: 用於向表中增長新列及新列相關的完整性約束條件,新的列增長成功後不帶任何數據

          drop:用於刪除指定的完整性約束條件

          modify:用於修改原來的列定義,包括修改列名和數據類型,列數據類型修改後可能會丟失原有的數據

 

alert table student add Scome date;
alert table student modify Sage smallint;
alert table student drop unique(Sname);
         三、SQL中沒有提供刪除屬性列的功能,若須要刪除列,必須間接經過select語句來實現,將須要的列的內容複製到另外一個表中,再刪除原表,而後將新表的名字命名爲原表名

        四、刪除基本表

              drop table <表名>

       五、創建與刪除索引

            create [unique] [cluster] index <索引名> on <表名> (<列名> [<次序][,<列名>[<次序]].....);

            注:unique:代表此索引的每一個索引值只對應唯一的一個記錄

                    cluster:表時要創建的索引是聚簇索引,即按某一列建好索引後,硬盤上的數據存儲順序也調整爲按這個列的順序存儲,索引的順序和存儲順序是一致的

             drop index <索引名>;

 

create unique index studentIndex on student (sno);
drop index studentIndex;
2、數據查詢

       select  [distinct | distinctRow | all]

                    列名[,列名][,....]

                    [into {outfile | dumpfile} '文件名' export_options]

                    [from 表名]

                    [where 查詢條件]

                   [group by 列名[, ....]]

                    [having 條件定義]

                   [order by {無符號整數|列名|公式}[asc | desc],...]

                  [limit [偏移量,] 行數]

                  [procedure 過程名稱]

               注:select語句中全部使用的關鍵詞必須精確的以上面的順序給出 

      若是以降序排列,則在order by中加入關鍵字desc,升序則加入關鍵字asc,默認是升序

      having子名能引用任何列或在查詢中命名的別名,它最後運用,就在項目被送到客戶以前是,沒有變化。須要注意,不要對應該在where子句中的項目使用having.

                       limit子名被用來限制select返回的行數,若是給定1個參數,它指出返回行的最大數目;若是給定2個參數,第一個指定要返回的第一行的偏移量,第二個指定返回行的最大數目,初始行的偏移量是0

//返回前5個記錄
select * from table limit 5;

//返回第6到第15個記錄
select * from table limit 5,10;
                    select .... into outfile '文件名' 格式的select語句將選擇的行寫入一個文件,文件在服務器上被建立,而且不能是已經存在的,且在服務器主機上還必須有file權限以使用這種select

                    distinct,使用了這個關鍵字後,再執行select語句的結果集中,若是有重複的值,則會在結果集中去掉重複的值而只保留一個值。

//選擇學生表中全部學生的姓名記錄,而且篩選掉重複的記錄,將記錄保存在名字爲name的結果集中,並按學號由大到小排列
select distinct sname as name, sno from student order by sno desc;

//選擇學生表中全部學生的姓名和年齡,並將每一個同窗的姓名後加上「同窗」二字,將每一個人的年齡增長1歲,同是計算全部同窗年齡的平均值 
// sum() ---- 求全部數據的總和
// max() ----求全部數據中的最大值
// min() -----求全部數據中的最小值
// count() ---求全部數據的個數
// avg() ---- 求全部數據的平均值
select sname, "同窗", age+1, avg(age) from student;

//列出學號在1和100之間,而且成績大於85分的全部姓」趙「同窗的所胡記錄
// % ---表明任意字符
//使用通配符時,前面必須用關鍵字」like」
select * from student where sname like '趙%’ and sno between 1 and 100 and sno in (select sno from student where grade>85);

//使用學生表、課程表以及學生選課表這3個基本表,列出全部學生的姓名、學號、所選課程的課程名稱及該課程的學分
select sname, sno, cno, credit from student, course, sc where student.sno=sc.sno and sc.cno=course.cno;

 


3、數據更新

一、數據插入

   insert into <表名> [<列名>[,<列名>]....) values (value1, value2,...);

             若是表中的每一列均有數據插入,則可不用指定任何表名

二、數據修改

   update <表名> set <列名>=新值 where <條件表達式>

三、數據刪除

           刪除指的是刪除數據庫中的一個記錄,而不是刪除某一列

           delete from <表名> where <條件表達式>--------------------- 做者:zdwzzu2006 來源:CSDN 原文:https://blog.csdn.net/zdwzzu2006/article/details/2298777

相關文章
相關標籤/搜索