mysql常見操作

今天無意之間看見一個寫數據庫比較好的文章就粘下來了。

轉載自:https://blog.csdn.net/qq_21397217/article/details/51656783  (各個小知識點)

https://blog.csdn.net/zdwzzu2006/article/details/2298777  (整合小知識點清晰)

https://www.cnblogs.com/dinglinyong/p/6656315.html      (MySQL 的七種 join

主要內容:

  • 啓動MySQL服務
  • 使用root用戶登陸
  • 查看命令幫助信息
  • 查看授予用戶的安全權限
  • 註釋
  • 取消正在輸入的命令
  • 查看當前含有哪些數據庫
  • 連接數據庫
  • 查看當前數據庫中含有哪些表
  • 顯示錶屬性
  • 顯示服務器警告或錯誤信息
  • 退出數據庫
  • 新建數據庫
  • 新建數據表
  • 數據類型
  • 插入數據
  • SQL約束
  • MySQL通配符
  • MySQL查詢語句關鍵字順序
  • SELECT操作
  • 刪除數據庫
  • 重命名數據表
  • 刪除數據表
  • 在表中增加列
  • 刪除列
  • 修改列
  • 修改數據類型
  • 修改表中某個值
  • 刪除某行記錄
  • 爲某列建立索引
  • 顯示某表的索引
  • 創建視圖一種虛擬存在的表
  • 導入將文件中的數據保存進表
  • 導出將表中數據保存到文件中
  • 備份整個數據庫
  • 備份整個表
  • 恢復數據庫
  • 正則表達式
  • 空白元字符
  • 字符類預定義字符集
  • 匹配多個實例
  • 定位元字符
  • 拼接字段
  • 別名alias
  • MySQL算數操作符
  • SELECT測試
  • SQL函數
  • 常用的文本處理函數
  • 日期和時間處理函數
  • 數值處理函數
  • SQL聚集函數
  • 分組數據
  • SELECT子句順序
  • 子查詢
  • 1、創建基本表
  •     create table <表名> (<列名><數據類型>[列級完整性約束條件]

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

                                                         .........

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

           2、修改基本表

                 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);

             3、SQL中沒有提供刪除屬性列的功能,若需要刪除列,必須間接通過select語句來實現,將需要的列的內容複製到另一個表中,再刪除原表,然後將新表的名字命名爲原表名

            4、刪除基本表

                  drop table <表名>

           5、建立與刪除索引

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

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

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

                 drop index <索引名>;

     

    create unique index studentIndex on student (sno);
    drop index studentIndex;

    二、數據查詢

           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+1avg(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;



    三、數據更新

    1、數據插入

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

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

    2、數據修改

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

    3、數據刪除

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

               delete from <表名> where <條件表達式>

                       


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章