mysql相關(guān)

今日內(nèi)容介紹
1.MySQL數(shù)據(jù)庫
2.SQL語句

第一節(jié)課

1(MySQL數(shù)據(jù)庫)數(shù)據(jù)庫概念.avi 5分

2(MySQL數(shù)據(jù)庫)常見的數(shù)據(jù)庫.avi 4分

3(MySQL數(shù)據(jù)庫)數(shù)據(jù)庫和管理系統(tǒng).avi 5分

4(MySQL數(shù)據(jù)庫)數(shù)據(jù)表和Java中類的對應(yīng)關(guān)系.avi 5分

5(MySQL數(shù)據(jù)庫)數(shù)據(jù)表和Java中類的對應(yīng)關(guān)系用戶表舉例.avi 2分

6(MySQL數(shù)據(jù)庫)MySQL數(shù)據(jù)庫安裝.avi 15分

7(MySQL數(shù)據(jù)庫)數(shù)據(jù)庫在系統(tǒng)服務(wù).avi 3分

8(MySQL數(shù)據(jù)庫)MySQL的登錄.avi 4分

9(MySQL數(shù)據(jù)庫)SQLYog軟件介紹.avi 4分

第二節(jié)課

10(MySQL數(shù)據(jù)庫)SQL語句介紹和分類.avi 5分

11(MySQL數(shù)據(jù)庫)數(shù)據(jù)表中的數(shù)據(jù)類型.avi 4分

12(MySQL數(shù)據(jù)庫)創(chuàng)建數(shù)據(jù)庫操作.avi 6分

13(MySQL數(shù)據(jù)庫)創(chuàng)建數(shù)據(jù)表格式.avi 8分

14(MySQL數(shù)據(jù)庫)約束.avi 2分

15(MySQL數(shù)據(jù)庫)SQL代碼的保存.avi 2分

16(MySQL數(shù)據(jù)庫)創(chuàng)建用戶表.avi 3分

17(MySQL數(shù)據(jù)庫)主鍵約束.avi 6分

18(MySQL數(shù)據(jù)庫)常見表的操作.avi 2分

19(MySQL數(shù)據(jù)庫)修改表結(jié)構(gòu).avi 10分

第三節(jié)課

20(MySQL數(shù)據(jù)庫)數(shù)據(jù)表添加數(shù)據(jù)_1.avi 8分

21(MySQL數(shù)據(jù)庫)數(shù)據(jù)表添加數(shù)據(jù)_2.avi 10分

22(MySQL數(shù)據(jù)庫)更新數(shù)據(jù).avi 10分

23(MySQL數(shù)據(jù)庫)刪除數(shù)據(jù).avi 3分

24(MySQL數(shù)據(jù)庫)命令行亂碼問題.avi 4分

25(MySQL數(shù)據(jù)庫)數(shù)據(jù)表和測試數(shù)據(jù)準(zhǔn)備.avi 4分

26(MySQL數(shù)據(jù)庫)數(shù)據(jù)的基本查詢.avi 9分

第四節(jié)課

27(MySQL數(shù)據(jù)庫)數(shù)據(jù)的條件查詢_1.avi 9分

28(MySQL數(shù)據(jù)庫)數(shù)據(jù)的條件查詢_2.avi 7分

29(MySQL數(shù)據(jù)庫)排序查詢.avi 7分

30(MySQL數(shù)據(jù)庫)聚合函數(shù).avi 13分

31(MySQL數(shù)據(jù)庫)分組查詢.avi 17分

============上面的內(nèi)容,方便我們只做ppt,word教案以及書寫下面的簡要的筆記=================

=======================第一節(jié)課開始=============================================

01數(shù)據(jù)庫概念

* A: 什么是數(shù)據(jù)庫
        數(shù)據(jù)庫就是存儲數(shù)據(jù)的倉庫歉井,其本質(zhì)是一個文件系統(tǒng),數(shù)據(jù)按照特定的格式將數(shù)據(jù)存儲起來,用戶可以對數(shù)據(jù)庫中的數(shù)據(jù)進行增加接癌,修改五芝,刪除及查詢操作谐丢。
* B: 什么是數(shù)據(jù)庫管理系統(tǒng)
        數(shù)據(jù)庫管理系統(tǒng)(DataBase Management System揭蜒,DBMS):指一種操作和管理數(shù)據(jù)庫的大型軟件淘衙,用于建立传藏、使用和維護數(shù)據(jù)庫,
        對數(shù)據(jù)庫進行統(tǒng)一管理和控制彤守,以保證數(shù)據(jù)庫的安全性和完整性毯侦。用戶通過數(shù)據(jù)庫管理系統(tǒng)訪問數(shù)據(jù)庫中表內(nèi)的數(shù)據(jù)。

02常見的數(shù)據(jù)庫

* A: 常見的數(shù)據(jù)庫
        MYSQL   :開源免費的數(shù)據(jù)庫具垫,小型的數(shù)據(jù)庫.已經(jīng)被Oracle收購了.MySQL6.x版本也開始收費侈离。
        Oracle  :收費的大型數(shù)據(jù)庫,Oracle公司的產(chǎn)品筝蚕。Oracle收購SUN公司卦碾,收購MYSQL。
        DB2     :IBM公司的數(shù)據(jù)庫產(chǎn)品,收費的饰及。常應(yīng)用在銀行系統(tǒng)中.
        SQLServer:MicroSoft 公司收費的中型的數(shù)據(jù)庫蔗坯。C#、.net等語言常使用燎含。
        SyBase  :已經(jīng)淡出歷史舞臺宾濒。提供了一個非常專業(yè)數(shù)據(jù)建模的工具PowerDesigner。
        SQLite  : 嵌入式的小型數(shù)據(jù)庫屏箍,應(yīng)用在手機端绘梦。
        Java相關(guān)的數(shù)據(jù)庫:MYSQL橘忱,Oracle.
        這里使用MySQL數(shù)據(jù)庫。MySQL中可以有多個數(shù)據(jù)庫卸奉,數(shù)據(jù)庫是真正存儲數(shù)據(jù)的地方

03數(shù)據(jù)庫和管理系統(tǒng)

* A: 數(shù)據(jù)庫管理系統(tǒng)
        ----數(shù)據(jù)庫1
            ----數(shù)據(jù)表1a
            ----數(shù)據(jù)表1b
        ----數(shù)據(jù)庫2
            -----數(shù)據(jù)表2a
            -----數(shù)據(jù)表2b

04數(shù)據(jù)表和Java中類的對應(yīng)關(guān)系

* A:數(shù)據(jù)庫中以表為組織單位存儲數(shù)據(jù)钝诚。
    表類似我們的Java類,每個字段都有對應(yīng)的數(shù)據(jù)類型榄棵。
    那么用我們熟悉的java程序來與關(guān)系型數(shù)據(jù)對比凝颇,就會發(fā)現(xiàn)以下對應(yīng)關(guān)系。
        類----------表
        類中屬性----------表中字段
        對象----------記錄

05數(shù)據(jù)表和Java中類的對應(yīng)關(guān)系用戶表舉例

* A:舉例:
賬務(wù)表
id      name        age 
1       lisi        23
2       wang        24

每一條記錄對應(yīng)一個User的對象
[user1  id = 1 name = lisi  age = 23]
[user2  id = 2 name = wang  age = 24]

06MySQL數(shù)據(jù)庫安裝

A: 安裝步驟參見 day28_source《MySQL安裝圖解.doc》
B: 安裝后疹鳄,MySQL會以windows服務(wù)的方式為我們提供數(shù)據(jù)存儲功能拧略。開啟和關(guān)閉服務(wù)的操作:右鍵點擊我的電腦→管理→服務(wù)→可以找到MySQL服務(wù)開啟或停止。

07數(shù)據(jù)庫在系統(tǒng)服務(wù)

* A:開啟服務(wù)和關(guān)閉服務(wù)
方式1: 我的電腦-----> (右鍵)管理---->服務(wù)和應(yīng)用程序---->服務(wù)----找到MySQL服務(wù)右鍵啟動或關(guān)閉 
方式2: 進入dos窗口 使用命令: net start mysql 開啟MySQL服務(wù);  命令:net stop mysql 關(guān)閉MySql服務(wù)

08MySQL的登錄

* A: MySQL是一個需要賬戶名密碼登錄的數(shù)據(jù)庫瘪弓,登陸后使用垫蛆,它提供了一個默認(rèn)的root賬號,使用安裝時設(shè)置的密碼即可登錄腺怯。
    格式1:cmd>  mysql –u用戶名 –p密碼
    例如:mysql -uroot –proot
    
    格式2:cmd>  mysql --host=ip地址 --user=用戶名 --password=密碼
    例如:mysql --host=127.0.0.1  --user=root --password=root

09SQLYog軟件介紹

* A: 具體參見 《SQLYog配置.doc》

=======================================第二節(jié)課開始====================================

10SQL語句介紹和分類

* A:SQL介紹
    * 前面學(xué)習(xí)了接口的代碼體現(xiàn)袱饭,現(xiàn)在來學(xué)習(xí)接口的思想,接下里從生活中的例子進行說明呛占。
    * 舉例:我們都知道電腦上留有很多個插口虑乖,而這些插口可以插入相應(yīng)的設(shè)備,這些設(shè)備為什么能插在上面呢晾虑?
    * 主要原因是這些設(shè)備在生產(chǎn)的時候符合了這個插口的使用規(guī)則决左,否則將無法插入接口中,更無法使用走贪。發(fā)現(xiàn)這個插口的出現(xiàn)讓我們使用更多的設(shè)備。

* B: SQL分類  
    * 數(shù)據(jù)定義語言:簡稱DDL(Data Definition Language)惑芭,用來定義數(shù)據(jù)庫對象:數(shù)據(jù)庫坠狡,表,列等遂跟。關(guān)鍵字:create逃沿,alter,drop等 
    * 數(shù)據(jù)操作語言:簡稱DML(Data Manipulation Language)幻锁,用來對數(shù)據(jù)庫中表的記錄進行更新凯亮。關(guān)鍵字:insert,delete哄尔,update等
    * 數(shù)據(jù)控制語言:簡稱DCL(Data Control Language)假消,用來定義數(shù)據(jù)庫的訪問權(quán)限和安全級別,及創(chuàng)建用戶岭接。
    * 數(shù)據(jù)查詢語言:簡稱DQL(Data Query Language)富拗,用來查詢數(shù)據(jù)庫中表的記錄臼予。關(guān)鍵字:select,from啃沪,where等

* C: SQL通用語法
    SQL語句可以單行或多行書寫粘拾,以分號結(jié)尾
        可使用空格和縮進來增強語句的可讀性
        MySQL數(shù)據(jù)庫的SQL語句不區(qū)分大小寫,建議使用大寫创千,例如:SELECT * FROM user缰雇。
        同樣可以使用/**/的方式完成注釋

11數(shù)據(jù)表中的數(shù)據(jù)類型

* A:MySQL中的我們常使用的數(shù)據(jù)類型如下  
    詳細的數(shù)據(jù)類型如下(不建議詳細閱讀!)
    分類  類型名稱    說明 
    整數(shù)類型    tinyInt 很小的整數(shù)
        smallint    小的整數(shù)
        mediumint   中等大小的整數(shù)
        int(integer)    普通大小的整數(shù)
    小數(shù)類型    float   單精度浮點數(shù)
        double  雙精度浮點數(shù)
        decimal(m,d)    壓縮嚴(yán)格的定點數(shù)
    日期類型    year    YYYY  1901~2155
        time    HH:MM:SS  -838:59:59~838:59:59
        date    YYYY-MM-DD 1000-01-01~9999-12-3
        datetime    YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00~ 9999-12-31 23:59:59
        timestamp   YYYY-MM-DD HH:MM:SS  1970~01~01 00:00:01 UTC~2038-01-19 03:14:07UTC
    文本追驴、二進制類型    CHAR(M)         M為0~255之間的整數(shù)
        VARCHAR(M)      M為0~65535之間的整數(shù)
        TINYBLOB    允許長度0~255字節(jié)
        BLOB        允許長度0~65535字節(jié)
        MEDIUMBLOB  允許長度0~167772150字節(jié)
        LONGBLOB    允許長度0~4294967295字節(jié)
        TINYTEXT    允許長度0~255字節(jié)
        TEXT        允許長度0~65535字節(jié)
        MEDIUMTEXT  允許長度0~167772150字節(jié)
        LONGTEXT    允許長度0~4294967295字節(jié)
        VARBINARY(M)允許長度0~M個字節(jié)的變長字節(jié)字符串
        BINARY(M)   允許長度0~M個字節(jié)的定長字節(jié)字符串

12創(chuàng)建數(shù)據(jù)庫操作

* A: 創(chuàng)建數(shù)據(jù)庫
    格式:
        * create database 數(shù)據(jù)庫名;
        * create database 數(shù)據(jù)庫名 character set 字符集;
    例如:
    #創(chuàng)建數(shù)據(jù)庫 數(shù)據(jù)庫中數(shù)據(jù)的編碼采用的是安裝數(shù)據(jù)庫時指定的默認(rèn)編碼 utf8
    CREATE DATABASE day21_1; 
    #創(chuàng)建數(shù)據(jù)庫 并指定數(shù)據(jù)庫中數(shù)據(jù)的編碼
    CREATE DATABASE day21_2 CHARACTER SET utf8;
    
* B: 查看數(shù)據(jù)庫
    查看數(shù)據(jù)庫MySQL服務(wù)器中的所有的數(shù)據(jù)庫:
    show databases;
    查看某個數(shù)據(jù)庫的定義的信息:
    show create database 數(shù)據(jù)庫名;
    例如:
    show create database day21_1;

* C: 刪除數(shù)據(jù)庫
    drop database 數(shù)據(jù)庫名稱;
    例如:
    drop database day21_2;
    
* D: 其他的數(shù)據(jù)庫操作命令
    切換數(shù)據(jù)庫:
    use 數(shù)據(jù)庫名;
    例如:
    use day21_1;
    
* E: 查看正在使用的數(shù)據(jù)庫:
    select database();

13創(chuàng)建數(shù)據(jù)表格式

* A:格式:
    create table 表名(
       字段名 類型(長度) 約束,
       字段名 類型(長度) 約束
    );
    例如:
    ###創(chuàng)建分類表
    CREATE TABLE sort (
      sid INT, #分類ID 
      sname VARCHAR(100) #分類名稱
    );

14約束

* A: 約束的作用:
    create table 表名(
           列名 類型(長度) 約束,
           列名 類型(長度) 約束
        );
        限制每一列能寫什么數(shù)據(jù),不能寫什么數(shù)據(jù)械哟。
    
* B: 哪些約束:
        主鍵約束
        非空約束
        唯一約束
        外鍵約束

15SQL代碼的保存

* A: 當(dāng)sql語句執(zhí)行了,就已經(jīng)對數(shù)據(jù)庫進行操作了氯檐,一般不用保存操作
    在SQLyog 中Ctrl + S 保存的是寫sql語句戒良。

16創(chuàng)建用戶表

* A: 創(chuàng)建用戶表:
    需求:創(chuàng)建用戶表,用戶編號,姓名,用戶的地址
    
    * B: SQL語句
    CREAT TABLE users (
        uid INT,
        uname VARCHAR(20),
        uaddress VARCHAR(200)
    );

17主鍵約束

* A: 主鍵是用于標(biāo)識當(dāng)前記錄的字段。它的特點是非空冠摄,唯一糯崎。
    在開發(fā)中一般情況下主鍵是不具備任何含義,只是用于標(biāo)識當(dāng)前記錄河泳。
* B: 格式:
    1.在創(chuàng)建表時創(chuàng)建主鍵沃呢,在字段后面加上  primary key.
    create table tablename( 
    id int primary key,
    .......
    )
    
    2. 在創(chuàng)建表時創(chuàng)建主鍵,在表創(chuàng)建的最后來指定主鍵   
    create table tablename(                     
    id int拆挥,
    .......薄霜,
    primary key(id)
    )
    
    3.刪除主鍵:alter table 表名 drop primary key;
    alter table sort drop primary key;
    
    4.主鍵自動增長:一般主鍵是自增長的字段,不需要指定纸兔。
    實現(xiàn)添加自增長語句,主鍵字段后加auto_increment(只適用MySQL)

18常見表的操作

* A: 查看數(shù)據(jù)庫中的所有表:
    格式:show tables;
    ?   查看表結(jié)構(gòu):
    格式:desc 表名;
    例如:desc sort;

* B: 格式:drop table 表名;
    例如:drop table sort;

19修改表結(jié)構(gòu)

 * A: 修改表添加列
    alter table 表名 add 列名 類型(長度) 約束;    
    例如:
    #1惰瓜,為分類表添加一個新的字段為 分類描述 varchar(20)
    ALTER TABLE sort ADD sdesc VARCHAR(20);

* B: 修改表修改列的類型長度及約束
    alter table 表名 modify 列名 類型(長度) 約束; 
    例如:
    #2, 為分類表的分類名稱字段進行修改,類型varchar(50) 添加約束 not null
    ALTER TABLE sort MODIFY sname VARCHAR(50) NOT NULL;

* C: 修改表修改列名
    alter table 表名 change 舊列名 新列名 類型(長度) 約束; 
    例如:
    #3, 為分類表的分類名稱字段進行更換 更換為 snamesname varchar(30)
    ALTER TABLE sort CHANGE sname snamename VARCHAR(30);

* D: 修改表刪除列
    alter table 表名 drop 列名; 
    例如:
    #4, 刪除分類表中snamename這列
    ALTER TABLE sort DROP snamename;

* E: 修改表名
    rename table 表名 to 新表名; 
    例如:
    #5, 為分類表sort 改名成 category
    RENAME TABLE sort TO category;

* F: 修改表的字符集
    salter table 表名 character set 字符集;
    例如:
    #6, 為分類表 category 的編碼表進行修改汉矿,修改成 gbk
    ALTER TABLE category CHARACTER SET gbk;

=============================第三節(jié)課開始====================================

20數(shù)據(jù)表添加數(shù)據(jù)_1

 * A: 語法:
    insert into 表 (列名1,列名2,列名3..) values  (值1,值2,值3..); -- 向表中插入某些列

 * 舉例:
    INSERT INTO product (id,pname,price) VALUES (1,'筆記本',5555.99);
    INSERT INTO product (id,pname,price) VALUES (2,'智能手機',9999);
 * 注意:
    列表,表名問題
    對應(yīng)問題,個數(shù),數(shù)據(jù)類型

21數(shù)據(jù)表添加數(shù)據(jù)_2

 * A: 添加數(shù)據(jù)格式,不考慮主鍵
    insert into 表名 (列名) values (值)
 * 舉例:
    INSERT INTO product (pname,price) VALUE('洗衣機',800);
    
    
 * B: 添加數(shù)據(jù)格式,所有值全給出
    格式
    insert into 表名 values (值1,值2,值3..); --向表中插入所有列
    INSERT INOT product VALUES (4,'微波爐',300.25)
 * C: 添加數(shù)據(jù)格式,批量寫入
    格式:
    insert into 表名 (列名1,列名2,列名3) values (值1,值2,值3),(值1,值2,值3)
 舉例:
    INSERT INTO product (pname,price) VALUES
    ('智能機器人',25999.22),
    ('彩色電視',1250.36),
    ('沙發(fā)',58899.02)

22更新數(shù)據(jù)

* A: 用來修改指定條件的數(shù)據(jù)崎坊,將滿足條件的記錄指定列修改為指定值
    語法:
    update 表名 set 字段名=值,字段名=值;
    update 表名 set 字段名=值,字段名=值 where 條件;
* B: 注意:
        列名的類型與修改的值要一致.
        修改值得時候不能超過最大長度.
        值如果是字符串或者日期需要加’’.

* C: 例如:
    #1,將指定的sname字段中的值 修改成 日用品
    UPDATE sort SET sname='日用品';
    #2, 將sid為s002的記錄中的sname改成 日用品
    UPDATE sort SET sname='日用品' WHERE sid='s002';
    UPDATE sort SET sname='日用品' WHERE sid='s003';

23刪除數(shù)據(jù)

?* A: 語法:
    delete from 表名 [where 條件];
    或者
    truncate table 表名;

 * B: 面試題:
    刪除表中所有記錄使用delete from 表名; 還是用truncate table 表名;
    刪除方式:delete 一條一條刪除洲拇,不清空auto_increment記錄數(shù)奈揍。
    truncate 直接將表刪除,重新建表赋续,auto_increment將置為零男翰,從新開始。

 * C: 例如:
    DELETE FROM sort WHERE sname='日用品';
    #表數(shù)據(jù)清空
    DELETE FROM sort;

24命令行亂碼問題

A: 問題
    我們在dos命令行操作中文時纽乱,會報錯
    insert into user(username,password) values(‘張三’,’123’);     
    ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column 'username' at row 1
B: 原因:因為mysql的客戶端編碼的問題我們的是utf8,而系統(tǒng)的cmd窗口編碼是gbk
    解決方案(臨時解決方案):修改mysql客戶端編碼蛾绎。
    show variables like 'character%'; 查看所有mysql的編碼
    client connetion result 和客戶端相關(guān)
    database server system 和服務(wù)器端相關(guān) 
    將客戶端編碼修改為gbk.
    set character_set_results=gbk; / set names gbk;
    以上操作,只針對當(dāng)前窗口有效果,如果關(guān)閉了服務(wù)器便失效秘通。如果想要永久修改为严,通過以下方式:
    在mysql安裝目錄下有my.ini文件
    default-character-set=gbk 客戶端編碼設(shè)置                       
    character-set-server=utf8 服務(wù)器端編碼設(shè)置
    注意:修改完成配置文件,重啟服務(wù)

25數(shù)據(jù)表和測試數(shù)據(jù)準(zhǔn)備

* A: 查詢語句肺稀,在開發(fā)中使用的次數(shù)最多第股,此處使用“zhangwu” 賬務(wù)表。
    創(chuàng)建賬務(wù)表:
    CREATE TABLE zhangwu (
      id INT PRIMARY KEY AUTO_INCREMENT, -- 賬務(wù)ID
      name VARCHAR(200), -- 賬務(wù)名稱
      money DOUBLE, -- 金額
    );
* B: 插入表記錄:
    INSERT  INTO zhangwu(id,name,money) VALUES (1,'吃飯支出',247);
    INSERT  INTO zhangwu(id,name,money) VALUES (2,'工資收入',12345);
    INSERT  INTO zhangwu(id,name,money) VALUES (3,'服裝支出',1000);
    INSERT  INTO zhangwu(id,name,money) VALUES (4,'吃飯支出',325);
    INSERT  INTO zhangwu(id,name,money) VALUES (5,'股票收入',8000);
    INSERT  INTO zhangwu(id,name,money) VALUES (6,'打麻將支出',8000);
    INSERT  INTO zhangwu(id,name,money) VALUES (7,null,5000);

26數(shù)據(jù)的基本查詢

    * A: 查詢指定字段信息
        select 字段1,字段2,...from 表名;
        例如:
        select id,name from zhangwu;

    * B: 查詢表中所有字段
        select * from 表名; 
        例如:
        select * from zhangwu; 
        注意:使用"*"在練習(xí)话原、學(xué)習(xí)過程中可以使用夕吻,在實際開發(fā)中,不推薦使用繁仁。原因涉馅,要查詢的字段信息不明確,若字段數(shù)量很多黄虱,會導(dǎo)致查詢速度很慢稚矿。

    * C: distinct用于去除重復(fù)記錄
        select distinct 字段 from 表名;         
        例如:
        select distinct money from zhangwu;

    * D: 別名查詢,使用的as關(guān)鍵字捻浦,as可以省略的.
        別名可以給表中的字段晤揣,表設(shè)置別名。 當(dāng)查詢語句復(fù)雜時朱灿,使用別名可以極大的簡便操作昧识。
        表別名格式: 
        select * from 表名 as 別名;
        或
        select * from 表名 別名;
        列別名格式:
        select 字段名 as 別名 from 表名;
        或
        select 字段名 別名 from 表名;
        例如
        表別名:
            select * from zhangwu as zw;
        列別名:
            select money as m from zhangwu;
            或
            select money m from zhangwu;

        我們在sql語句的操作中,可以直接對列進行運算盗扒。
        例如:將所有賬務(wù)的金額+10000元進行顯示.
        select pname,price+10000 from product;

==============================第四節(jié)課開始====================================

27數(shù)據(jù)的條件查詢_1

 * A:條件查詢
        where語句表條件過濾跪楞。滿足條件操作,不滿足不操作侣灶,多用于數(shù)據(jù)的查詢與修改甸祭。
    
 * B : 格式 :
        select 字段  from 表名  where 條件;   
 
 * C: while條件的種類如下:
    比較運算符   
        >  <  <=   >=   =  <>   ---------- 大于、小于褥影、大于(小于)等于淋叶、不等于
        BETWEEN  ...AND...      ----------- 顯示在某一區(qū)間的值(含頭含尾)
        IN(set)                 -----------顯示在in列表中的值,例:in(100,200)
        LIKE 通配符                -----------模糊查詢伪阶,Like語句中有兩個通配符:
                                            % 用來匹配多個字符;例first_name like ‘a(chǎn)%’;
                                            _ 用來匹配一個字符处嫌。例first_name like ‘a(chǎn)_’;
        IS NULL     判斷是否為空
                                ------------is null; 判斷為空
                                            is not null; 判斷不為空
 * D 邏輯運算符  
        and                     ------------ 多個條件同時成立
        or                      ------------ 多個條件任一成立
        not                     ------------ 不成立栅贴,例:where not(salary>100);

 * E: 例如:
    查詢所有吃飯支出記錄
    SELECT * FROM zhangwu WHERE name = '吃飯支出';

    查詢出金額大于1000的信息
    SELECT * FROM zhangwu WHERE money >1000;

    查詢出金額在2000-5000之間的賬務(wù)信息
    SELECT * FROM zhangwu WHERE money >=2000 AND money <=5000;
    或
    SELECT * FROM zhangwu WHERE money BETWEEN 2000 AND 5000;

    查詢出金額是1000或5000或3500的商品信息
    SELECT * FROM zhangwu WHERE money =1000 OR money =5000 OR money =3500;
    或
    SELECT * FROM zhangwu WHERE money IN(1000,5000,3500);

28數(shù)據(jù)的條件查詢_2

 * A 模糊查詢
    查詢出賬務(wù)名稱包含”支出”的賬務(wù)信息。
    SELECT * FROM zhangwu WHERE name LIKE "%支出%";

 * B 查詢出賬務(wù)名稱中是五個字的賬務(wù)信息
    SELECT * FROM gjp_ledger WHERE ldesc LIKE "_____"; -- 五個下劃線_

* C 查詢出賬務(wù)名稱不為null賬務(wù)信息
    SELECT * FROM zhangwu WHERE name IS NOT NULL;
    SELECT * FROM zhangwu WHERE NOT (name IS NULL);

29排序查詢

* A: 排序查詢
     使用格式
        * 通過order by語句熏迹,可以將查詢出的結(jié)果進行排序檐薯。放置在select語句的最后。
        * SELECT * FROM 表名 ORDER BY 字段ASC;
            * ASC 升序 (默認(rèn))
            * DESC 降序
        
* B: 案例代碼
        /*
          查詢,對結(jié)果集進行排序
          升序,降序,對指定列排序
          order by 列名 [desc][asc]
          desc 降序
          asc  升序排列,可以不寫
        */
        -- 查詢賬務(wù)表,價格進行升序
        SELECT * FROM zhangwu ORDER BY zmoney ASC

        -- 查詢賬務(wù)表,價格進行降序
        SELECT * FROM zhangwu ORDER BY zmoney DESC

        -- 查詢賬務(wù)表,查詢所有的支出,對金額降序排列
        -- 先過濾條件 where 查詢的結(jié)果再排序
        SELECT * FROM zhangwu WHERE zname LIKE'%支出%' ORDER BY zmoney DESC

30聚合函數(shù)

    * A: 聚合函數(shù)       
    * B: 函數(shù)介紹
        * 之前我們做的查詢都是橫向查詢,它們都是根據(jù)條件一行一行的進行判斷坛缕,而使用聚合函數(shù)查詢是縱向查詢墓猎,
            它是對一列的值進行計算,然后返回一個單一的值赚楚;另外聚合函數(shù)會忽略空值毙沾。
        * count:統(tǒng)計指定列不為NULL的記錄行數(shù);
        * sum:計算指定列的數(shù)值和宠页,如果指定列左胞;
        * max:計算指定列的最大值,如果指定列是字符串類型举户,那么使用字符串類型不是數(shù)值類型烤宙,那么計算結(jié)果為0排0序運算;
        * min:計算指定列的最小值俭嘁,如果指定列是字符串類型躺枕,那么使用字符串排序運算;
        * avg:計算指定列的平均值供填,如果指定列類型不是數(shù)值類型拐云,那么計算結(jié)果為0;

    * C: 案例代碼
        /*
           使用聚合函數(shù)查詢計算
        */

        -- count 求和,對表中的數(shù)據(jù)的個數(shù)求和  count(列名)
        -- 查詢統(tǒng)計賬務(wù)表中,一共有多少條數(shù)據(jù)
        SELECT COUNT(*)AS'count' FROM zhangwu

        -- sum求和,對一列中數(shù)據(jù)進行求和計算 sum(列名)
        -- 對賬務(wù)表查詢,對所有的金額求和計算
        SELECT SUM(zmoney) FROM zhangwu
        -- 求和,統(tǒng)計所有支出的總金額
        SELECT SUM(zname) FROM zhangwu WHERE zname LIKE'%收入%'

        INSERT INTO zhangwu (zname) VALUES ('彩票收入')

        -- max 函數(shù),對某列數(shù)據(jù),獲取最大值
        SELECT MAX(zmoney) FROM zhangwu

        -- avg 函數(shù),計算一個列所有數(shù)據(jù)的平均數(shù)
        SELECT AVG(zmoney)FROM zhangwu

31分組查詢

* A: 分組查詢
    * a: 使用格式
        * 分組查詢是指使用group by字句對查詢信息進行分組,例如:我們要統(tǒng)計出zhanguw表中所有分類賬務(wù)的總數(shù)量,這時就需要使用group by 來對zhangwu表中的賬務(wù)信息根據(jù)parent進行分組操作捕虽。
        * SELECT 字段1,字段2… FROM 表名 GROUP BY 字段 HAVING 條件;
        * 分組操作中的having子語句慨丐,是用于在分組后對數(shù)據(jù)進行過濾的,作用類似于where條件泄私。
    * b: having與where的區(qū)別
        * having是在分組后對數(shù)據(jù)進行過濾.
        * where是在分組前對數(shù)據(jù)進行過濾
        * having后面可以使用分組函數(shù)(統(tǒng)計函數(shù))
        * where后面不可以使用分組函數(shù)房揭。

        
 * B: 案例代碼      
            /*
                查詢所有的數(shù)據(jù)
                吃飯支出 共計多少
                工資收入 共計多少
                服裝支出 共計多少
                股票收入 共計多少
                打麻將支出 共計多少錢
                
                分組查詢:  group by 被分組的列名
                必須跟隨聚合函數(shù)
                select 查詢的時候,被分組的列,要出現(xiàn)在select 選擇列的后面
            */
              SELECT SUM(zmoney),zname FROM zhangwu GROUP BY zname
              
            -- 對zname內(nèi)容進行分組查詢求和,但是只要支出
            SELECT SUM(zmoney)AS 'getsum',zname FROM zhangwu WHERE zname LIKE'%支出%'
            GROUP BY zname
            ORDER BY getsum DESC

            -- 對zname內(nèi)容進行分組查詢求和,但是只要支出, 顯示金額大于5000
            -- 結(jié)果集是分組查詢后,再次進行篩選,不能使用where, 分組后再次過濾,關(guān)鍵字 having
            SELECT SUM(zmoney)AS 'getsum',zname FROM zhangwu WHERE zname LIKE'%支出%'
            GROUP BY zname HAVING getsum>5000   

31總結(jié)

* 把今天的知識點總結(jié)一遍。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末晌端,一起剝皮案震驚了整個濱河市捅暴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌咧纠,老刑警劉巖蓬痒,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異漆羔,居然都是意外死亡梧奢,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門演痒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來亲轨,“玉大人,你說我怎么就攤上這事鸟顺〉胛茫” “怎么了器虾?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蹦锋。 經(jīng)常有香客問我兆沙,道長,這世上最難降的妖魔是什么莉掂? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任葛圃,我火速辦了婚禮,結(jié)果婚禮上巫湘,老公的妹妹穿的比我還像新娘装悲。我一直安慰自己,他們只是感情好尚氛,可當(dāng)我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布诀诊。 她就那樣靜靜地躺著,像睡著了一般阅嘶。 火紅的嫁衣襯著肌膚如雪属瓣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天讯柔,我揣著相機與錄音抡蛙,去河邊找鬼。 笑死魂迄,一個胖子當(dāng)著我的面吹牛粗截,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播捣炬,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼熊昌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了湿酸?” 一聲冷哼從身側(cè)響起婿屹,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎推溃,沒想到半個月后昂利,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡铁坎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年蜂奸,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片硬萍。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡扩所,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出襟铭,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布寒砖,位于F島的核電站赐劣,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏哩都。R本人自食惡果不足惜魁兼,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望漠嵌。 院中可真熱鬧咐汞,春花似錦、人聲如沸儒鹿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽约炎。三九已至植阴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間圾浅,已是汗流浹背掠手。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留狸捕,地道東北人喷鸽。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像灸拍,于是被迫代替她去往敵國和親做祝。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1.MySQL數(shù)據(jù)庫 2.SQL語句 第一節(jié)課 ###1(MySQL數(shù)據(jù)庫)數(shù)據(jù)庫概念.avi 5...
    碼了個農(nóng)啵閱讀 1,207評論 1 16
  • 項目分析 1.項目目標(biāo)? 1)掌握團購項目管理系統(tǒng)的需求及相關(guān)核心業(yè)務(wù) 2)掌握團購項目管理系統(tǒng)的核心架構(gòu)及基本實...
    smallnumber閱讀 235評論 0 0
  • 某次,在學(xué)習(xí)《學(xué)習(xí)路徑圖》的課堂上巡雨,老師提到:按照學(xué)習(xí)路徑圖的設(shè)計原理舶沛,學(xué)生的學(xué)習(xí)時間,會更短更有效【大意如此】炮姨。...
    好好修行閱讀 392評論 0 4
  • 文/筆若月寒鏡捌刮,珠落簾半世煙塵半如沙余年風(fēng)月余若水繁華落盡月斟寂寞杯冷暖風(fēng)掃離愁度春秋夏醉淺夢癡妄 癡妄暖煙月起朝...
    筆若閱讀 677評論 7 63
  • 喬布斯說過他最幸運的是在二十多歲的時候就找到了自己終生最熱愛的事業(yè)。 我想:未來舒岸,生產(chǎn)力和創(chuàng)造力的大發(fā)展绅作,可以著眼...
    吳佟閱讀 112評論 0 0