亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

MySQL8.0零基礎入門之從青銅到鉆石

難度入門
時長 5小時30分
學習人數
綜合評分9.43
38人評價 查看評價
9.7 內容實用
9.2 簡潔易懂
9.4 邏輯清晰
  • sql 語句:DDL 語句,DML 語句,DQL 語句,DCL 語句

    DDL 語句操作數據庫以及的 create, drop, alter

    DML 語句對表數據進行 insert(增加),delete(刪除),update(修改)

    DQL 語句對表數據進行 select 查詢

    mysql 數據庫約束:主鍵約束,唯一約束,非空約束

    控制臺連接數據庫

    //?登錄格式1????mysql?-u用戶名?-p密碼
    mysql?-uroot?-proot
    //?登錄格式2????mysql?-hip地址?-u用戶名?-p密碼
    mysql?-u127.0.0.1?-uroot?-proot
    //?登錄格式3????mysql?--host=ip地址?--user=用戶名?--password=密碼
    mysql?--host=127.0.0.1?--user=root?--password=root
    
    //?exit?退出數據庫

    sql 結構化查詢語言

    1. DDL 數據定義語言

      1. 用來定義數據庫對象:數據庫,表,列。關鍵字:create, drop, alter

    2. DML 語句 數據操作語言

      1. 用來對數據庫中表的數據進行增刪改查。關鍵字:insert, delete, update

    3. DQL 語句 數據查詢語言

      1. 用來查詢數據庫中表的記錄(數據)。關鍵字:select, where

    4. DCL 語句 數據控制語言

      1. 用來定義數據庫的訪問權限和安全級別,及創建用戶。關鍵字:GRANT, REVOKE

    sql 通用語法

    sql 語句可以單行或多行,以分號結尾

    可以使用空格和縮進來增強語句的可讀性

    mysql 數據庫的 sql 語句不區分大小寫,關鍵字建議使用大寫

    DDL 語句

    創建數據庫

    --??直接創建數據庫
    ????CREATE?DATABASE?數據庫名;
    --??判斷是否存在并創建數據庫
    ????CREATE?DATABASE?IF?NOT?EXISTS?數據庫名;
    --??創建數據庫并指定字符集(編碼類型)
    ????CREATE?DATABASE?數據庫名?CHARACTER?SET?字符集;
    
    ????CREATE?DATABASE?db1;
    ????CREATE?DATABASE?IF?NOT?EXISTS?db2;
    ????CREATE?DATABASE?db3?CHARACTER?SET?gbk;
    
    --??查看某個數據庫
    ????SHOW?CREATE?DATABASE?數據庫名;
    ????SHOW?CREATE?DATABASE?db1;

    修改數據庫

    --??修改數據庫字符集格式
    ????ALTER?DATABASE?數據庫名?DEFAULT?CHARACTER?SET?字符集;
    
    ????ALTER?DATABASE?db3?DEFAULT?CHARACTER?SET?UTF8;

    刪除數據庫

    --??刪除數據庫
    DROP?DATABASE?數據庫名;
    
    DROP?DATABASE?db4;

    使用數據庫

    --??查看正在使用的數據庫
    ????SELECT?DATABASE();
    --??切換數據庫
    ????USE?數據庫名;
    
    ????USE?DB2;

    創建表

    CREATE?TABLE?表名?(字段名1,字段類型1,字段名2,字段類型2......);
    
    --??建議寫成如下格式
    CREATE?TABLE?表名?(
    ????字段名1,字段類型1,
    ????字段名2,字段類型2,
    ????......
    );
    
    CREATE?TABLE?student(
    ????id?int,
    ????name?varchar(10),
    ????age?int,
    ????birthday?date,
    ????sex?char(1)
    );

    mysql 數據庫常用類型

    類型描述
    int整型
    double浮點型
    varchar字符串型
    data日期類型:yyyy-mm-dd

    詳細的數據類型

    分類類型名稱說明
    整數類型tinylnt很小的整數

    smallint小的整數

    mediumint中等大小的整數

    int(integer)普通大小的整數
    小數類型float單精度浮點數

    double雙精度浮點數

    decimal (m,d)壓縮嚴格的定點數
    日期類型yearYYYY 1901-2155

    timeHH:MM:SS

    dataYYYY-MM-DD

    datatimeYYYY-MM-DD HH:MM:SS

    timestamp
    文本,二進制類型CHAR(M)M 為 0~255 之間的整數

    VARCHAR(M)M 為 0~65535 之間的整數

    TINYBLOB允許長度 0~255 字節

    BLOB允許長度 0~65535 字節

    MEDIUMBLOB允許長度 0~167772150 字節

    LONGBLOB允許長度 0~4294967295 字節

    TINYTEXT允許長度 0~255 字節

    TEXT允許長度 0~65535 字節

    MEDIUMTEXT允許長度 0~167772150 字節

    LONGTEXT允許長度 0~4294967295 字節

    VARBINAPY(M)允許長度 0~M 個字節的變長字節字符串

    BINARY(M)允許長度 0~M 個字節的變長字節字符串

    查看表

    --??查看某個數據庫中的所有表
    ????SHOW?TABLES;
    --??查看表結構
    ????DESC?表名;
    --??查看創建表的sql語句
    ????SHOW?CREATE?TABLE?表名;

    快速創建一個表結構相同的表

    CREATE?TABLE?新表名?LIKE?舊表名;
    --??創建?s1?表,?表結構和student表結構相同
    CREATE?TABLE?s1?LIKE?student;

    刪除表

    --??直接刪除表
    DROP?TABLE?表名;
    --??判斷表是否存在并刪除表
    DROP?TABLE?IF?EXISTS?表名;
    
    DROP?TABLE?db1;
    DROP?TABLE?IF?EXISTS?db2;

    修改表結構

    --??添加表列
    ALTER?TABLE?表名?ADD?列名?類型;
    --??修改列類型
    ALTER?TABLE?表名?MODIFY?列名?新的類型;
    --??修改列名
    ALTER?TABLE?表名?CHANGE?舊列名?行列名?類型;
    --??刪除列
    ALTER?TABLE?表名?DROP?列名;
    --??修改表名
    RENAME?TABLE?表名?TO?新表名;
    --??修改字符集
    ALTER?TABLE?表名?character?set?字符集;

    DML 語句

    插入記錄

    1.關鍵字說明

    INSERT?INTO?表名?-?表示往那張表添加數據
    (字段名1,?字段名2,?...);????--?要給那些字段設置值
    VALUES?(值1,?值2,?...);??--?設置的具體的值

    值與字段必須對應,個數相同,類型相同

    值的數據大小必須在字段的長度范圍之內

    除了數組類型外,其他字段類型的值必須使用引號引起。(建議使用單引號)

    如果要插入空值,可以不寫字段,或者插入 null

    插入全部字段

    --??所有的字段名都寫出來
    ????INSERT?INTO?表名?(字段名1,?字段名2,?...)?VALUES?(值1,?值2,?...);
    --??不寫字段名
    ????INSERT?INTO?表名?VALUES?(值1,?值2,?...);

    插入部分數據

    --??沒有添加數據的字段會使用null
    ????INSERT?INTO?表名?(字段名1,?字段名3,?...)?VALUES?(值1,?值3,?...);

    案例

    --??創建db3數據庫并使用
    ????CREATE?DATABASE?db3;
    ????USE?db3;
    --??創建完整學生信息表,包括學員的id,姓名,年齡,性別,家庭地址,電話號碼,生日,數學成績,英語成績
    CREATE?TABLE?student(
    ????id?int,
    ????name?varchar(20),
    ????age?int,
    ????sex?char(1),
    ????address?varchar(200),
    ????phone?varchar(20),
    ????birthday?date,
    ????math?double,
    ????english?double
    );
    --??插入一條數據?順序可以打亂,字段名和值要對應
    INSERT?INTO?student(id,name,sex,age,birthday,address,phone,math,english)values(1,'zhangsan','男','19','2010-12-11','北京市','18833336666',98.5,67);
    --??校驗插入的數據,查看student表的所有字段數據
    SELECT?*?FROM?student;

    蠕蟲復制

    在已有的數據基礎上,將原來的數據進行復制,插入到對應的表中

    --??語法格式化
    INSERT?INTO?表名1?SELECT?*?FROM?表名2;
    
    --??創建student2表,student2結構和student表結構一樣
    CREATE?TABLE?student?LIKE?student2;
    --??將student表中的數據添加到student2表中
    INSERT?INTO?student?SELECT?*?FROM?student2;
    
    --??只復制student表中name,age字段數據到student2表中使用如下格式
    INSERT?INTO?student2(name,age)?SELECT?name,age?FROM?student;

    更新表記錄

    --??不帶條件修改數據????全部修改
    UPDATE?表名?SET?字段名=值;
    --??帶條件修改數據??????指定范圍修改
    UPDATE?表名?SET?字段名=值?WHERE?字段名=值;
    
    --??關鍵字?UPDATE:?修改數據?SET:?修改哪些字段??WHERE:?指定條件
    
    --??不帶修改條件,將所有的性別改為女
    UPDATE?student?SET?sex='女';
    --??帶條件修改數據,將id為2的學生性別修改為難
    UPDATE?student?SET?sex='男'?WHERE?id=2;
    --??一次修改多列,把id為3的學生,年齡改為26,?address改為北京
    UPDATE?student?SET?age=26,?address='北京'?WHERE?id=3;

    刪除表記錄

    --??不帶條件刪除數據
    DELETE?FROM?表名;
    --??帶條件刪除數據
    DELETE?FROM?表名?WHERE?字段名=值;
    
    --??帶條件刪除數據,刪除id為3的記錄
    DELETE?FROM?student?WHERE?id=3;
    --??不帶條件刪除數據刪除表中的所有數據
    DELETE?FROM?student;

    truncate 刪除表記錄

    delete 是將表中的數據一條一條刪除

    truncate 是將整個表摧毀,重新創建一個新的表,新的表結構和原來的表結構一模一樣

    TRUNCATE?TABLE?表名;

    DQL 語句

    簡單查詢

    --創建student表
    CREATE?TABLE?student(
    ????id?int,
    ????name?varchar(20),
    ????age?int,
    ????sex?char(1),
    ????address?varchar(200),
    ????phone?varchar(20),
    ????birthday?date,
    ????math?doub1e,
    ????english?doub1e
    );
    --為student準備數據
    
    INSERT?INTO?student?values(1,'閆妮',43,'女','北京市',?'12222222222',?'2019-02-12',92.5,88);
    INSERT?INTO?student?values(2,'郭富城',21,'男','上海市','1666666666',?'2018-06-O6',97.5,65.5);
    INSERT?INTO?student?values(4,?'張學友',34,'男','杭州市','17777777777','2013-11-17',69,65);
    INSERT?INTO?student?values(5,'成龍',51,'男','哈爾濱市','15555555555',?'2005-10-12',88,97);
    INSERT?INTO?student?values(6,'劉德華',57,'男','盤錦市','19999999999',?'2015-11-11',74.5,92.5);
    INSERT?INTO?student?values(7,'馬伊刺',42,'女','長沙市','18888888888'?,?'2008-03-26',86.5,71.5);
    INSERT?INTO?student?values(8,'黎明',49,'男','昆明市','11111111111','2000-09-14',77.5,60);I

    查詢表所有數據

    --??使用*表示所有列
    SELECT?*?FROM?表名;
    
    SELECT?*?FROM?student;
    --??寫出查詢每列的名稱
    SELECT?字段名1,字段名2,字段名3,...?FROM?表名;
    
    SELECT?id,name,age,sex,address,phone?FROM?表名;

    查詢指定列

    --??寫出查詢每列的名稱
    SELECT?字段名1,字段名2,字段名3,...?FROM?表名;
    
    SELECT?id,name,age?FROM?表名;

    別名查詢

    --??查詢時給列、表指定別名需要使用as關鍵字
    --??使用別名的好處是方便觀看和處理查詢到的數據
    SELECT?字段名1?AS?別名,?字段名2?AS?別名,...?FROM?表名;
    
    SELECT?name?AS?姓名,?age?AS?年齡?FROM?student;

    清除重復值

    --??查詢指定列?并且?結果?不出現重復數據
    SELECT?DISTINCT?字段名?FROM?表名;
    
    --??查詢name,age列并且?結果?不出現重復name
    SELECT?DISTINCT?name,?age?FROM?student;

    查詢結果參與運算

    參與運算的必須是數值類型,查詢顯示新列,不會改動原數據

    --??某列數據和固定值運算
    SELECT?列名1?+?固定值?FROM?表名;
    --??某列數據和其他列數據參與運算
    SELECT?列名1?+?列名2?FROM?表名;
    
    SELECT?math+english?總成績?FROM?student;
    SELECT?name?姓名,sex?性別,math?數學成績,english?英語成績,math+english?總成績?FROM?student;
    
    SELECT?name,age+10?FROM?student;

    條件查詢

    --??語法格式
    SELECT?字段名?FROM?表名?WHERE?條件;
    
    
    --??準備數據
    INSERT?into?hero?values(1,'業瑟',35,'男',320,'戰上',3000,0,1,'2017-05-14',14.2);
    INSERT?into?hero?values(2,'阿呆',19,'女',470,'刺客',1500,1100,0,'2019-06-11',15.6);
    INSERT?into?hero?values(3,'老人子',75,'男',430,'戰士',2500,0,1,?'2016-11-18',17.7);
    INSERT?into?hero?values(4,?'呂布',40,'男',500,'悅士',2700,1000,1,?'?2015-04-22',12.2);
    INSERT?into?hero?values(5,'甄姬',27,'女',210,'法師'?,1400,1900,0,'2018-06-06',13.1);
    INSERT?into?hero?values(6,'旗嫩',25,'女',370,'時手',1600,1200,1,'2013-02-24',11.2);
    INSERT?into?hero?values(7,'德瑪調亞',35,'男',220,'戰上'?,?39oo,1500,1,'2011-02-14',11.2);
    INSERT?into?hero?values(8,'孫尚否',24,'女',260,'時手',1300,900,0,'2020-03-12',9.2);
    INSERT?into?hero?values(9,'孫策',39,'',280,'戰上',3200,1100,1,'2016-07-14',16.7);
    INSERT?into?hero?values(10,'孫悟空',32,'男',460,'戰上',2900,1300,o,'2013-02-11',17.2);
    INSERT?into?hero?values(11,'公孫策',37,'男',210,'法師',2200,700,1,?'2019-09-16',11.4);
    INSERT?into?hero?values(12,'上行孫',22,'男',195,?'W客',1400,1700,1,'2013-02-16',12.4);
    INSERT?into?hero?values(13,'后蕾',39,'男',420,"射手',780,700,0,'2019-01-19'?,NULL);

    比較運算符

    --??>?大于?<?小于?<=?小于等于??>=?大于等于??<>??!=??不等于
    SELECT?*?FROM?hero?where?條件(字段?運算符?篩選條件);
    
    --??查詢?定位為射手的英雄
    SELECT?*?FROM?hero?where?location='射手';

    邏輯運算符

    --??and?多個條件同時滿足
    --??or?多個條件其中一個滿足
    --??not?不滿足
    SELECT?*?FROM?hero?where?age>35?AND?life>2500;
    SELECT?*?FROM?hero?where?age>35?OR?max_score<1;
    SELECT?*?FROM?hero?where?id=1?OR?if=4?OR?id=5;
    
    --??in?關鍵字?in里面的每個數據都會作為一次條件
    SELECT?*?FROM?hero?where?id?in?(1,4,5);

    范圍

    --??BETWEEN?值1?AND?值2??表示從值1到值2的范圍,包頭包尾
    
    SELECT?*?FROM?hero?WHERE?grounding_data?BETWEEN?'2013-01-01'?AND?'2017-01-01';
    SELECT?*?FROM?hero?WHERE?grounding_data?>=?'2013-01-01'?AND?grounding_data?<=?'2017-01-01';

    like 模糊查詢

    --??LIKE?表示模糊查詢
    SELECT?*?FROM?表名?WHERE?字段名?LIKE?'通配符字符串';
    --??MySQL?通配符有兩個?%:?表示0個或多個字符??_:?表示一個字符
    
    --??查詢姓孫的英雄
    SELECT?*?FROM?hero?WHERE?name?LIKE?'孫%';
    --??查詢名字中含有孫字的英雄
    SELECT?*?FROM?hero?WHERE?name?LIKE?'%孫%';
    --??查詢姓孫,且姓名是三個字的英雄
    SELECT?*?FROM?hero?WHERE?name?LIKE?'孫__';

    排序

    --??ORDER?BY?子句?可以將查詢的結果進行排序?(排序只是顯示方式,?不會改變數據庫中數據的順序)
    SELECT?字段名?FROM?表名?WHERE?字段=值?ORDER?BY?字段名?[ASC|DESC];
    --??ASC?升序,默認的?DESC?降序
    
    --??單列排序?使用一個字段進行排序
    --??查詢年齡小于35的英雄,按照年齡升序排列
    SELECT?*?FROM?hero?WHERE?age<=35?ORDER?BY?age?ASC;
    
    --??組合排序?先使用第一個字段進行排序?如果第一個字段相同,才使用第二個字段進行排序。以此類推
    SELECT?字段名?FROM?FROM?表名?WHERE字段=值?ORDER?BY?字段名1?[ASC|DESC],?字段名2?[ASC|DESC];
    --??查詢年齡小于35歲的英雄?按照年齡升序?如果年齡相同?按照生命值降序排列
    SELECT?*?FROM?hero?WHERE?age<=35?ORDER?BY?age?ASC,lifr?desc;

    聚合函數

    之前的查詢都是橫向查詢,根據條件一行一行的進行判斷,而聚合函數查詢是縱向查詢,對一列的值進行計算,返回結果值。聚合函數會忽略空值

    • count: ?統計指定列的記錄數(行數),值為NULL的不統計

    • sum: ?計算指定列的數值和,如果不是數值,計算結果為0

    • max: ?計算指定列的最大值

    • min: ?計算指定列的最小值

    • avg: ?計算指定列的平均值,如果不是數值,計算結果為0

    --??聚合函數寫在sql語句SELECT?后?字段名的地方
    SELECT?字段名...?FROM?表名;
    SELECT?COUNT(age)?FROM?表名;
    --??查詢英雄的總數
    SELECT?COUTN(max_SCORE)?FROM?hero;
    
    --??對于NULL的記錄不統計,只要只用全部字段為衡量標準就不會有遺漏的錯誤統計出現
    SELECT?COUNT(*)?FROM?hero;

    分組查詢

    --??分組查詢是使用?GROUP?BY語句對查詢信息進行分組??[HAVING?條件]?分組后的篩選
    SELECT?字段1,字段2...?FROM?表名?GROUP?BY?分組字段?[HAVING?條件];
    
    SELECT?*?FROM?hero?FROUP?BY?sex;
    --??這就sql語句會將sex相同的數據作為一組,但是會返回每組的第一條,沒有任何意義
    
    --??分組的目的就是為了統計,一般分組會和聚合函數一起使用
    --??分組后聚合函數?不操作所有數據,而是操作一組數據
    
    SELECT?SUM(life)?FROM?hero?GROUP?BY?sex;?--??返回兩組的生命值之和
    --??當使用摸個字段分組時,需要將這個字段查詢出來,否則看不到數據是屬于哪組的
    SELECT?SUM(life),sex?FROM?hero?GROUP?BY?sex;
    
    --??查詢年齡小于30的,按性別進行分組,統計每組的人數
    --?1.先過濾年齡小于30的?2.分組?3.最后統計人數
    SELECT?sex,COUNT(*)?FROM?hero?WHERE?age<30?GROUP?BY?sex;
    
    --??查詢年齡大于25的?按性別分組,統計每組人數,?并只顯示性別人數大于2的數據
    --??錯誤
    SELECT?sex,conut(*)?FROM?hero?WHERE?age<30?GROUP?BY?sex?WHERE?COUNT(*)>2;
    --??正確
    SELECT?sex,conut(*)?FROM?hero?WHERE?age<30?GROUP?BY?sex?HAVING?COUNT(*)>2;

    limit語句 分頁

    limit語句是限制的意思,限制查詢記錄的條數。limit語句要放在最后面

    --??LIMIT語法格式
    LIMIT?offset,length;??LIMIT?length;
    --??offset是指偏移量,調過的記錄數量,默認為0??length是指需要顯示的總記錄數
    
    --??查詢hero表,從第三條開始顯示,顯示6條
    SELECT?*?FROM?hero?LIMIT?2,6;

    數據庫約束

    約束種類

    • PRIMARY KEY : ?主鍵

    • UNIQUE : 唯一

    • NOT NULL : 非空

    • DEFAULT : 默認

    • FOREIGN KEY : 外鍵

    主鍵約束

    每個表有且只有一個主鍵,通常以id為主鍵

    主鍵的特點:

    • 主鍵必須包含唯一的值(不重復)

    • 主鍵不能包含NULL值

    --??創建主鍵
    字段名?字段類型?PRIMARY?KEY;
    --??創建表hero1,包含字段(id,name,age)將id作為主鍵
    CREATE?TABLE?hero1(
    ?id?int?PRIMARY?KEY,
    ????name?varchar(20),
    ????age?int
    )

    刪除主鍵

    --?刪除主鍵
    ALTER?TABLE?表名?DROP?PRIMARY?KEY;
    --?刪除hero1表的主鍵
    ALTER?TABLE?hero1?DROP?PRIMARY?KEY;

    主鍵自增

    --??AUTO_INCREMENT表示自動增長
    
    --??創建表hero2,包含字段(id,name,age)將id作為主鍵并自動增長
    CREATE?TABLE?hero2(
    ?id?int?PRIMARY?KEY?AUTO_INCREMENT,
    ????name?varchar(20),
    ????age?int
    )

    擴展:默認的AUTO_INCREMENT的起始值是1,下列語法可以修改起始值

    AUTO_INCREMENT?表名?AUTO_INCREMENT?=?起始值;

    DELETE和TRUNCATE的區別 ●DELETE刪除表中的數據,但不重置AUTO_ INCREMENT的值。 ●TRUNCATE摧毀表,重建表,AUTO_ _INCREMENT重置為1

    唯一約束

    --??唯一約束
    字段名?字段類型?UNIQUE;
    --??創建表hero3,包含字段(id,name)將name設為唯一約束,不能出現相同的數據
    CREATE?TABLE?hero3(
    ?id?int,
    ????name?varchar(20)?UNIQUE
    )

    非空約束

    --??非空約束
    字段名?字段類型?NOT?NULL;
    --??創建表hero4,包含字段(id,name)將name設為非空約束,name不能為NULL
    CREATE?TABLE?hero4(
    ?id?int,
    ????name?varchar(20)?NOT?NULL
    )

    默認值

    --??默認值格式
    字段名?字段類型?DEFAULT?默認值;
    --??創建表hero5,包含字段(id,name),name默認是英雄
    CREATE?TABLE?hero5(
    ?id?int,
    ????name?varchar(20)?DEFAULT?'英雄'
    )



    查看全部
    26 采集 收起 來源:總結

    2020-10-17

  • powerdesigner??數據庫建模工具


    查看全部
  • SQL? 結構化查詢語言

    查看全部
  • // 登錄格式1 mysql -u用戶名 -p密碼

    mysql -uroot -proot

    // 登錄格式2 mysql -hip地址 -u用戶名 -p密碼

    mysql -u127.0.0.1 -uroot -proot

    // 登錄格式3 mysql --host=ip地址 --user=用戶名 --password=密碼

    mysql --host=127.0.0.1 --user=root --password=root


    // exit 退出數據庫


    查看全部
    0 采集 收起 來源:dos連接數據庫

    2020-10-16

  • sql語句:DDL語句,DML語句,DQL語句,DCL語句

    DDL語句操作數據庫以及的 create, drop, alter

    DML語句對表數據進行insert(增加),delete(刪除),update(修改)

    DQL語句對表數據進行select查詢

    mysql數據庫約束:主鍵約束,唯一約束,非空約束


    查看全部
  • DDL:數據定義語言,用來定義數據庫對象;數據庫、表、列等,關鍵字:create、drop、alter等

    DML:數據操作語言,用來對數據庫中表的數據進行增刪改。關鍵字:insert、delete、update等

    DQL:數據庫查詢語言,用來查詢數據庫中表的記錄,關鍵字:select,where等

    DCL:數據控制語言,用來定義數據庫的訪問權限和安全級別,以及創建用戶。關鍵字:grant,revoke等

    查看全部
  • 唯一約束:在這張表中這個字段的值不能重復

    字段名 字段類型 UNIQUE


    查看全部
  • 數據可的約束

    主鍵約束 ? 用來唯一標識一條記錄(不能有空值)

    創建: 字段名 類型名 PRIMARY key

    主鍵自增

    創建: 字段名 類型名 primary key AUTO_INCREMENT

    擴展

    默認的AUTO_INCREMENT的開始值是1,如果希望修改起始值,可用

    ALTER TABLE 表名 AUTO_INCREMENT = 起始值(用delete刪除記錄后重新輸入是在起始值基礎上增加的)


    查看全部
  • 條件查詢值模糊查詢

    SELECT * FROM 表名 WHERE 字段名 LIKE '通配字符串';

    %:表示0個或多個任意字符

    _:表示一個字符 ? ? ?? 如搜: %筆記本%

    查看全部
  • DQL語句

    簡單查詢

    SELECT *FROM student;

    查詢指定列

    SELECT l列名1,列名2,。。。FROM 表名;

    別名查詢(查詢時賦別名,不會改變原表)

    SELECT 字段1 AS 別名,字段2 as 別名,... FROM 表名; ?? 別名為字符串時不用加單引號,as 可省略。

    清除重復值

    SELECT DISITNCT 字段名 FROM 表名;

    SELECT DISITNCT 字段名1,字段名2 FROM 表名;

    查詢結果參與運算

    某列數據和固定值運算? SELECT 列名 + 固定值 FROM 表名;

    某列數據和其他列數據參與運算 SELECT 列名1 + 列名2 FROM 表名;

    注意:運算結果是查詢結果,不改變原表



    查看全部
  • 修改表數據

    全部修改:

    UPDATE 表名 set 列 = 修改值;

    update student set sex = '女';

    條件修改

    update student set sex = '男' where id = 2;

    多字段條件修改

    update student set sex = '女' , address = '上海' where id = 3;

    刪除表

    全部刪除(表還在,但為空)

    DELECT FROM 表名;

    條件刪除(刪除行)

    DELETE FROM student where id = 3;


    TRUNCATE TABLE 表名; ? ? 先摧毀該表,并創建一個結構名、結構一樣的新表,但無數據。而delete則是一條一條的刪除數據




    查看全部
  • 蠕蟲復制:

    創建student1表,結構與student相同

    CREATE TABLE student1 LIKE student;


    將student表中的數據復制到student1中(復制全部字段)

    INSERT INTO student1 SELECT * FROM student;

    SELECT * FROM student1;

    復制部分字段

    如只想復制student表中的name, address字段到student2中:

    CREATE TABLE student2 LIKE student1;

    INSERT INTO student2(name, address)SELECT nmae, address FROM student1;

    SELECT * FROM student2;


    查看全部
    0 采集 收起 來源:蠕蟲復制

    2020-10-13

  • DML語句:數據操作語言

    插入insert

    (添加所有值)

    第一種:INSERT INTO 表名 (字段名1, 字段名2, 字段名3)VALUES (值1, 值2, 值3);

    第二種:INSERT INTO 表名 VALUES (值1, 值2, 值3);

    (添加部分值)

    INSERT INTO 表名 (字段名1, 字段名2, ...)VALUES (值1, 值2,...);

    沒有添加數據的字段會使用NULL





    查看全部
  • DDL操作表:前提先使用某個數據庫

    創建表: CREATE TABLE 表名 (字段1 類型1, 字段2 類型2, ...);

    字段須為英文

    CREATE TABLE student (id int, name varchar(10), birthday data, sex char(1));

    char(M)\varcgar(M), M表示字符或字符串的規格大小

    SHOW TABLES; ? 查看表

    DESC 表名; ?? 查看表結構

    SHOW CREATE TABLE 表名; ?? 查看創建表的SQL語句

    CREATE TABLE 新表明 LIKE 舊表名; ?? 快速創建相同表結構的表

    DROP TABLE 表名;? 刪除表

    SHOW TABLES;

    DROP TABLE IF EXISTS 表名; ? 判斷表是否存在并刪除表

    SHOW TABLES;

    修改表結構:(不常用)

    ALTER TABLE 表名 ADD 列名 類型; ? ? ? ? ? ? ? ? ? ? 添加列

    具體操作:為學生表添加一個新的字段remark,類型為varchar(20)

    ALTER TABLE student ADD remark VARCHAR(20);

    DESC student;

    ALTER TABLE 表名 MODIFY 列名 新的類型; ? ? ? ? ? ? 修改列類型

    ALTER TABLE student MODIFY remark varchar(100);

    DESC student;

    ALTER TABLE 表名 CHANGE 舊列名 新列名 類型; ? ? ? ? ? ? 修改列名

    ALTER TABLE studentCHANGE remark intro varchar(30);

    DESC student;

    ALTER TABLE 表名 DROP 列名; ? ? ? ? ? ?? 刪除列

    ALTER TABLE student DROP intro;

    DESC student;

    RENAME TABLE 表名 TO 新表名; ? ? ? ? ? ? ? ? 修改表名

    RENAME TABLE student TO student2;

    SHOW TABLES;

    ALTER TABLE 表名 CHARACTER SET 字符集; ? ? ? ? ? ?? 修改字符集

    具體操作:將student2表的編碼修改為gbk

    SHOW CREATE TABLE student2;

    ALTER TABLE student2 character set gbk;

    SHOW CREATE TABLE student2;














    查看全部
  • mysql -uroot -proot

    創建:CREATE DATABASE db1;

    查看:SHOW DATABASES;

    CREATE DATABASE IF NAT EXISTS db2;(用于數據庫的備份與還原)

    CREATE DATABASE IF NAT EXISTS db2;

    SHOW DATABASE;

    CREATE DATABASE db3 CHARACTER SET gbk;

    SHOW DATABASES;

    查看數據庫創建時候的字符(字符集)語句(定義信息):

    SHOW CREATE DATABASE db3;

    SHOW CREATE DATABASE db2;

    修改數據庫字符集格式

    ALTER DATABASE db2 DEFAULT CHARACTER SET gbk;

    DROP DATABASE db3;(刪除數據庫)

    查看正在使用的數據庫:

    SELECT DATABASE();

    使用/切換數據庫:

    USE db1;

    SELECT DATABASE();

    USE db2;

    SELECT DATABASE();









    ?

    查看全部

舉報

0/150
提交
取消
課程須知
學習中需要用到這些工具: —MySQL8.0 —Navicat連接工具 —DOS窗口 你需要有這些基礎: —會使用DOS窗口
老師告訴你能學到什么?
1、什么是數據庫 2、數據庫的安裝與卸載 3、SQL基礎語法 4、DDL語句--對數據庫及表的增刪改查 5、DML語句--對數據的增刪改 6、DQL語句--對數據的查詢 7、數據庫表的約束

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!