Mysql學習->DML和DDL語句

来源:http://www.cnblogs.com/fangxijun/archive/2017/10/19/7695943.html
-Advertisement-
Play Games

DDL語句:資料庫定義語言,一般是對資料庫的操作,create,drop,alter等 DML語句:數據操作語言,curd操作 DDL: create databases 資料庫名 //創建一個資料庫 show databases 資料庫名 //查看資料庫 use databases 資料庫名 // ...


DDL語句:資料庫定義語言,一般是對資料庫的操作,create,drop,alter等

DML語句:數據操作語言,curd操作

DDL:

  create databases 資料庫名     //創建一個資料庫

  show databases 資料庫名    //查看資料庫

  use databases 資料庫名    //使用資料庫

  drop databases 資料庫名     //刪除資料庫   刪除資料庫後資料庫中的庫和表全部會被清空

  #創建資料庫

  create table 資料庫名(

    column_name(欄位名)  column_type(數據類型) constraints(約束條件,一般為空非空預設等)

  )

  desc 數據表名   查看數據表的信息

  show create table 資料庫表名 \G   查看數據表信息(全面) \G是代表豎向排列

  drop table 數據表名     刪除數據表

  #一般對已經創建好的表,需要做結構上的變動就需要alter table 語句

  alter table 數據表名 modify  column_name(欄位名)   column_type(數據類型)     //修改表欄位,只能修改其欄位類型

  alter table 數據表名 add  column_name(欄位名)   column_type(數據類型)    //新增數據表欄位

  alter table 數據表名 drop column column_name(欄位名)             //刪除數據欄位

  alter table 數據表名  change column_name(列名) column_type(數據類型)        //修改欄位名,可以修改欄位名和欄位類型,比modify多一個功能

  alter table 數據表名 rename 表名                     //修改數據表名

  其中有first | after ,這個兩個關鍵字是欄位排序、

DML語句:

  insert into 表名 values(value1,value2,...) 新增數據,values後面的順序要和欄位的的排序一致,有預設值的欄位,自增的欄位可以不用寫在values後面
  insert into 表名 (欄位1,欄位2) values (value1,value2)
  第二種方式可以大大提升插入資料庫的效率

  update 表名 set 欄位 = value [wehere 條件] 修改數據,也可以多表一同更新
  delete from 表名 [where 條件] 刪除數據,也可以刪除多表或關聯的表
  刪除表或更新的時候需要加更新條件,不然很容易修改整個表或刪除整個表

  select * from 表名 查詢數據
  select distinct 欄位 from 表名 查詢這個表這個欄位不重覆的數據
  select * from 表名 where[條件] 條件查詢
  select * from 表名 order by 欄位 desc|asc 排序查詢,關鍵字是order by 其中desc是倒序排,asc是正序排
  select * from 表名 limit[條數] limit起始偏移量

  #聚合
  count 記錄數
  sum 求和
  max 最大值
  min 最小值
  一般都是和GROUP BY 分組一起使用
  HAVING 對分組後的結果在進行條件的過濾

  where和having的區別在於,haveing是對聚合後的結果進行條件的過濾,而where是聚合前進行了過濾,一般先用where進行過濾,在進行having過濾

  #表連接[內連接,外連接]
  內連接:僅選出兩張表中相互匹配的記錄
  外連接:選出其他不匹配的記錄

  內連接: select * from 表1,表2, where 表1.欄位名1 = 表2.欄位名2
  外連接:
  左連接:包含左表中的記錄和右表中沒有和他匹配的記錄 select * from 表1 left join 表2 on 表1.欄位1 = 表2.欄位2 left join
  右連接:包含右表中的記錄和左表中沒有和他匹配的記錄 select * from 表1 right join 表2 on 表1.欄位1 = 表2.欄位2 right join

  #記錄聯合UNION 和 UNION ALL的區別
  UNION ALL 是將結果集直接合併在一起
  UNION 是將合併後的結果在一次進行distinct(去重)操作

  還有一個DCL一句是對資料庫許可權的操作一般為grant 和 revoke

 

 

 

 

 

  


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • /*學習事物基本語法*/ /*增加課室名的唯一索引*/ALTER table class add constraint uni_ClassName unique(name) /*創建存儲過程,其中增加教師,並增加課室*/CREATE proc pro_AddClass @className varc ...
  • //班主任表 CREATE TABLE [dbo].[teacher]( [id] [int] IDENTITY(1,1) NOT NULL primary key, [name] [varchar](50) NOT NULL, [sj] [datetime] default(getdate()) ...
  • 游標 游標存在意義:解決“select *”返回空、多行記錄問題,但凡select,就可能多行結果集,也就需要用游標。 游標分4步走:cursor、open、fetch、close 可能省略open、close,用for ... in ... loop ... end loop; 1、靜態游標: ( ...
  • 以前寫過一篇文章IO is frozen on database xxx, No user action is required“, 主要是介紹PlateSpin在伺服器層面做DR備份時,SQL Server日誌裡面有"I/O is frozen on database xxxx"以及“I/O wa... ...
  • 一、所需軟體 二、安裝說明 三、安裝 1、下載yum源。 官網地址:http://dev.mysql.com/downloads/repo/yum/ centos7系統: wget http://dev.mysql.com/get/mysql57-community-release-el7-7.no ...
  • 一、Sql * plus 常用命令 1.關於登錄,連接的幾個命令 1) conn[nect] //例 conn system/manager 用法 conn 用戶名/密碼 @網路服務名 (as sysdba/sysoper) 當特權用戶登錄的時候,必須帶上 as sysdba/sysope 比如 s ...
  • 1.查詢5.5版本的InnoDB參數並註釋:[root@localhost etc]# grep -i innodb my.cnf;t_innodb; otherwise, slaves may diverge from the master.Uncomment the following if y... ...
  • 操作系統 :CentOS5.8_x64 PostgreSQL版本 :9.1 問題描述 伺服器未連接公網時怎麼安裝PostgreSQL資料庫? 伺服器版本為: CentOS5.8_x64 需要安裝的PostgreSQL版本為:9.1 解決方案 解決yum源的問題【可選】 添加PostgreSQL源並下 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...