日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

从0学开发笔记-数据库基础

發布時間:2024/3/13 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从0学开发笔记-数据库基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據庫的概念

數據庫的概念

用于存儲和管理數據的倉庫

數據庫的特點

  • 持久化存儲數據結構。其實數據庫就是一個文件系統
  • 方便存儲和管理數據
  • 使用了統一的方式操作數據庫 --SQL

常見的數據庫軟件

  • MySQL服務啟動

    • 手動
    • cmd->service.msc 打開服務的窗口
    • 使用管理員打開cmd
      • net start mySQL :啟動mySQL的服務
      • net stop MySQL:關閉mysql服務
  • MySQL登錄

    • mysql -uroot -proot
    • mysql -hip -uroot -proot
    • mysql --host=ip --user==root --password=連接目標的密碼
  • MySQL退出

    • exit
    • quit
  • MySQL的目錄結構

    • MySQL的安裝目錄
      • 配置文件 my,ini
    • MySQL的數據目錄
      • 幾個概念
        • 數據庫:文件夾
        • 表: 文件
        • 數據: 文件里面存儲的數據

SQL

  • 什么是SQL?

    • Structured Qurery Languange :結構化查詢語言
      其實就是定義了操作所有關系行數據庫的規則。每一種數據庫操作的方式存在不一樣的地方,稱為“方言”
  • SQL通用語法

    • SQL語句可以單行或多行,以【分號】結尾
    • 可使用空格和縮進來增強語句的可讀性
    • MySQL數據庫的SQL語句不區分大小寫,關鍵字使用大寫
      • 單行注釋: – 注釋內容(通用,帶空格) 或 #注釋內容 (sql特有的)
      • 多行注釋 /* 注釋 */
  • SQL分類

    • DDL(Date Definition Language)數據定義語言
      • 用來定義數據庫對象:數據庫,表,列等,關鍵字:create,drop,alter等
    • DML(Date Manipulation Language)數據操作語言
      • 用來對數據庫中表的數據進行增刪改。關鍵字insert,delete,update 等
    • DCL(Data Control Language)數據控制語言(了解)
      • 用來定義數據庫的方法權限和安全級別,以及創建用戶。關鍵字:GRANT。REVOKE等

DDL:操作數據庫、表

  • 操作數據庫:CRUD
    • C(creat):創建
      • 創建數據庫:
        • creat database 數據庫名稱
      • 創建數據庫,判斷不存在,再創建
        • creat database if not exists 數據庫名稱
      • 創建數據庫,并指定字符集
        • create database 數據庫名稱 character set 字符集合;
      • 創建db4數據庫,判斷是否存在,并指定字符集為gbk
        • creat database db4 if not exists db4 character set gbk;
    • R(Retrieve):查詢
      • 查詢所有數據的名稱
        • show databases;
      • 查詢某個數據庫的字符集:查詢某個數據庫的創建語句
        • show creat database 數據庫名稱;
    • U(Update):修改
      • 修改數據庫的字符集
        • alter database 數據庫名稱 character set 字符集名稱
    • D(Delete):刪除
      • 刪除數據庫
        • drop database 數據庫名稱;
      • 判斷數據庫存在,再刪除
        • drop database if exists 數據庫名稱;
    • 使用數據庫
      • 查詢當前正在使用的數據庫名稱
        • select database();
      • 使用數據庫(進入到當前的某一個數據庫中)
        • use 數據庫名稱;
  • 操作表
    • C(creat):創建

      • 語法:

        • create table 表名(列名1 數據類型1, 列名1 數據類型1...., 列名1 數據類型1)
          • 注意:最后一列,不需要加逗號(,)
          • 數據庫類型:
            • int 整數類型
              • age int,
            • double: 小數類型
              • score double(5,2)
            • date:日期,只包含年月日,yyyy-MM-dd
            • datetime:日期,包含年月日時分秒 yyyy-MM-dd HH:mm:ss
            • timestamp: 時間戳類型 包含年月日時分秒 yyyy-MM-dd HH:mm:ss
              • 如果將來不給這個字段賦值,或者賦值為null,則默認使用當前的系統時間,來自動賦值
            • varchar:字符串
              • name varchar(20):姓名最大20個字符
      • 創建表:create table stud(id int, name varchar(32),age int, score double(4,1),birthday date, inserttime timestamp) ;

      • 復制表:create table 表名 like 被復制的表名;

    • R(Retrieve):查詢

      • 查詢某個數據庫中所有的表名稱
        • show tables
      • 查詢表結構
        • desc 表名
    • U(Update):修改

      • 修改表名
        • alter table 表名 rename to 新的表名;
      • 修改表的字符集名稱
        • alter table 表名 character set 字符集名稱;
      • 添加一列
        • alter table 表名 add 列名 數據類型;
      • 修改列名稱 類型
        • alter table 表名 change 列名 新列名 新數據類型;
        • alter table 表名 modify 列名 新數據類型
      • 刪除列
        • alter table 表明 drop 列名
    • D(Delete):刪除

      • drop table 表名;
      • drop table if exists 表名;

DML 增刪改表中數據

  • 添加數據:
    • 語法:
      • insert into 表名(列名1, 列名2,...,列名n) values(值1,值2,....,值n);
    • 注意:
      • 列名和值要一一對應
      • 如果表名后,不定義列名,則默認給所有列添加值
        • insert into 表名 values(值1,值2,...,值3)
      • 除了數字類型,其他類型需要使用引號(單雙都可以)引起來
  • 刪除數據:
    • 語法:
      • delete from 表名 [where 條件]
    • 注意:
      • 如果不加條件,則刪除表中所有記錄
      • 如果要刪除所有記錄
        • delete from 表名; – 不推薦使用。有多少條記錄就會執行多少次刪除操作
        • TRUNCATE TABLE 表名; – 推薦使用,效率更高 先刪除表, 然后再創建一張一樣的表
  • 修改數據:
    • 語法:
      • update 表名 set 列名1 = 值1, 列名2=值2, ...[where 條件];
      • 注意:
        • 如果不加任何條件,則會將表中所有記錄全部修改

DQL 查詢表中的記錄

  • select * from 表名

  • 語法:

    • select --查詢的意思
      • 字段列表
    • from
      • 表名列表
    • where
      *條件列表
    • group by
      • 分組字段
    • having
      • 分組之后的條件
    • order by
      • 排序
    • limit
      • 分頁限定
  • 基礎查詢

    • 多個字段的查詢
      • select 字段名1, 字段名2... from 表名;
        • 注意:
          • 如果查詢所有字段,則可使用*來代替字段列表
    • 去除重復
      • distinct
    • 計算列
      • 一般可以使用四則運算計算一些列的值。(一般只會進行數值型的計算)
      • ifnull(表達式1, 表達式2) :null參與的運算,計算結果都為null
        • 表達式1:哪個字段需要判斷是否為null
        • 表達式2:如果該字段為null后的替換值
    • 起別名
      • as :as也可以省略
  • 條件查詢

    • where 子句后跟條件
    • 運算符
      • >、 <、 <=、 >= 、=、<>
      • BETWEEN...AND
      • IN(集合)
      • LIKE : 模糊查詢
        • 占位符:
          • _ : 單個任意字符
          • %:多個任意字符
        • 查詢姓馬的有哪些?like
          • SELECT * FROM student WHERE name like '馬%';
        • 查詢姓名第二個字是化的人
          • SELECT * FROM student WHERE name like “_化%”;
        • 查詢姓名是三個字的人
          • SELECT * FROM student WHERE name like “___”;
        • 查詢姓名包含“德”的人
          • SELECT * FROM student WHERE name like “%德%”;
      • IS NULL
      • and 或&&
      • or 或 ||
      • not 或 !

DQL 查詢語句

  • 排序查詢

    • 語法:order by 子句
      • order by 排序字段1 排序方式 1, 排序字段2 排序方式2;
    • 排序方式:
      • ASC:升序(默認)
      • DESC:降序
    • 注意:
      • 如果有多個排序條件,則當前面的條件一樣時,才會判斷第二條件
  • 聚合函數:將一列數據作為一個整體,進行【縱向】的計算

    • count:計算個數
      • 一般選擇非空列:主鍵
      • COUNT(*) : 所有列中只要有一列沒有非空,那么就按照這列算總數
      • SELECT COUNT(name) FROM student
    • max:計算最大值
      • SELECT MAX(math) FROM student;
    • min:計算最小值
      • SELECT MIN(math) FROM student;
    • sum:求和
      • SELECT SUM(math) FROM student;
    • avg:計算平均值
      • SELECT AVG(math) FROM student;
    • 注意:聚合函數的計算,會排出NULL值
      • 解決方案:
        • 選擇不包含非空的列進行計算
        • IFNULL函數
  • 分組查詢

    • 語法:GROUP BY 分組字段
      • 按照性別分組,分別查詢男、女同學的平均分,人數
        • SELECT sex, AVG(math) ,COUNT(id) FROM student GROUP BY sex;
      • 按照性別分組,分別查詢男、女同學的平均分,人數 要求【分數低于70分的人,不參與分組】
        • SELECT sex, AVG(math), COUNT(id) FROM student WHERE math >70 GROUP BY sex;
      • 按照性別分組,分別查詢男、女同學的平均分,人數 要求【分數低于70分的人,不參與分組】,分組之后,人數要大于2個人
        • SELECT sex, AVG(math), COUNT(id) FROM student WHERE math >70 GROUP BY sex HAVING COUNT(id)>2;
        • SELECT sex, AVG(math), COUNT(id) 人數 FROM student WHERE math >70 GROUP BY sex HAVING 人數>2;
    • 注意:
      • 分組之后查詢的字段:分組字段、聚合函數 不要加其他字段(沒有意義)
      • where和 having的區別:
        • where在【分組之前】進行限定,如果不滿足條件,則不參與分組;having在【分組之后】進行限定,如果不滿足結果,則不會被查詢出來
        • where后不可以跟聚合函數,having后可以跟聚合函數
  • 分頁查詢

    • 語法:limit 開始的索引,每頁查詢的條數;
      • SELECT * FROM student LIMIT 0,3; :顯示第一頁
      • SELECT * FROM student LIMIT 3,3; :顯示第二頁
        • 開始索引的公式 = (當前的頁碼 - 1) * 每頁顯示的條數
    • LIMIT是一個MySQL的【方言】

總結

以上是生活随笔為你收集整理的从0学开发笔记-数据库基础的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲精品一区二区在线观看 | 草草浮力影院 | 迈开腿让我尝尝你的小草莓 | 伊人久久大香线蕉综合网站 | 日韩欧美在线一区 | 男女www| 中国女人真人一级毛片 | 欧美一区二区久久 | 天天想你在线观看完整版高清 | 久久久久久久国产精品毛片 | 午夜看片福利 | 国产视频手机在线观看 | 欧美精品一区二区三区视频 | 亚洲成人av电影在线 | 中文字幕乱码亚洲精品一区 | 中文字幕在线观看亚洲 | 久久久精品亚洲 | 欧美体内谢she精2性欧美 | 99热热久久 | 亚洲在线看 | 老湿机69福利区午夜x片 | 国产精品99久久久久久久女警 | 91麻豆精品| 久久久久久久国产精品毛片 | 影音先锋中文字幕人妻 | 欧美影视一区二区 | 欧美视频一区二区三区四区在线观看 | 日韩免费av一区二区 | 中文字字幕在线观看 | 老妇高潮潮喷到猛进猛出 | 青娱乐欧美 | 国产精品100| 日本韩国视频 | 国产专区一区二区 | 色人阁av| 精品动漫一区二区三区在线观看 | 久久国产乱子伦免费精品 | 免费无码肉片在线观看 | 黑人黄色大片 | 国产色频| www.久久色 | 免费成人av网址 | 奇米影视一区二区 | 精品国产乱码久久久久久蜜柚 | 果冻av在线 | 超碰在线观看99 | 神马午夜一区二区 | 久成人| 黄色岛国片 | 国产视频麻豆 | 生活片毛片 | 91人妻一区二区三区蜜臀 | 欧美日韩一区二区三区在线视频 | 亚洲制服在线观看 | 黄色激情视频在线观看 | 秋霞午夜视频 | 日韩在线观看 | av资源在线免费观看 | 精品一区二区视频在线观看 | 国内自拍xxxx18 | 91原创国产 | 亚洲第一色播 | 九九九亚洲 | 日韩欧美国产一区二区三区在线观看 | www日本视频 | 日韩成人av毛片 | 亚洲情se| 色爱AV综合网国产精品 | 欧美性受xxxx黑人 | 亚洲男人在线天堂 | 亚洲人女屁股眼交6 | 欧美性猛交xxxx乱大交俱乐部 | 国产精品久久久久久久久久免费 | 女性裸体瑜伽无遮挡 | 亚洲一区成人在线 | 欧美大色一区 | 无码免费一区二区三区 | 日韩精品在线观看免费 | 波多野吉衣av | 禁网站在线观看免费视频 | 美女脱了内裤喂我喝尿视频 | 日本电影一区 | 成人91免费视频 | 性视频免费看 | av首页在线 | 色呦呦视频在线观看 | 三级av网 | 欧美精品99 | 91丨porny丨首页 | 熟妇人妻精品一区二区三区视频 | 亚洲色图吧 | 中文有码视频 | 97久久久久 | 色月婷婷| 亚洲精品国产精品乱码不66 | 丰满少妇一区二区三区专区 | www.五月婷婷.com | 91精品国产综合久久久久久 | 99热偷拍|