MySQL操作語句


* mysql的數據操作語句(通過dos命令語句)
    1. 通過windows+r輸入cmd打開dos命令窗口,輸入命令‘net start mysql’啟動你的電腦mysql服務。
    2. 輸入‘mysql -uroot -p××××’(u和p之后沒有空格)進入自己的mysql管理模式,其中u代表的是user,即你的登錄身份,管理員一般為root。其中p代表password,即你所登錄身份的密碼,但是直接這樣輸入密碼的話,密碼會以明文顯示,有可能被周圍不懷好意的人看到。所以建議輸入‘mysql -uroot -p’命令,系統會之后讓你輸入密碼。此時密碼會以密文的形式顯示在命令窗口,減小了被別人獲取的風險。
    3. 如果賬戶和密碼正確,則會登錄進mysql管理模式,此時命令行會變為:mysql>,這時就可以輸入對數據庫的操作命令了。
    4. 退出mysql;quit或者exit,或者使用快捷鍵Ctrl+C也可以快速退出
* SQL語句分類:
    1. Data Definition Language (DDL 數據定義語言) 如:建庫,建表
    2. Data Manipulation Language(DML 數據操縱語言), 如:對表中的記錄操作增刪改
    3. Data Query Language(DQL 數據查詢語言),如:對表中的查詢操作
    4. Data Control Language(DCL 數據控制語言),如:對用戶權限的設置
* MySQL語法
    1. 如果實在可視化圖形界面,如SQLyog或者Navicat等軟件中,可以在命令結尾不加分好‘;’。
    2. 如果在dos命令中,需要在每條SQL操作語句后加‘;’以執行。
    3. mySQL注釋有三種:
        *  ‘--’+空格為單行注釋
        *  ‘/*  */’為多行注釋
        *  ‘#’也是注釋格式
* DDL數據庫操作語句
    * 創建數據庫    
      * CREATEE DATABASE 數據庫名;
      * 判斷數據庫存不存在,不存在則創建,存在也會執行而不會報錯     CREATE DATABASE IF NOT EXUSTS 數據庫名
      * 創建數據庫並制定字符集    CREATE DATABASE 數據庫名 CHARACTER SET 字符集;(字符集是指utf-8,gbk等,utf-8在dos命令中為utf8)
      * 例如:-- 直接創建數據庫 db1
      
             create database db1;                                               

             -- 判斷是否存在,如果不存在則創建數據庫 db2
             
             create database if not exists db2;
             
             -- 創建數據庫並指定字符集為 gbk
             
             create database db3 default character set gbk;
    * 查看數據庫
        * 查看所有存在的數據庫:    show databases;
        * 查看某個數據庫的創建信息:    show create database 數據庫名
    * 修改數據庫
        * 修改數據庫默認的字符集:    alter database 數據庫名 default character set 字符集;
    * 刪除數據庫
        * 刪除指定數據庫:    drop database 數據庫名;
    * 使用數據庫
        * 查看正在使用的數據庫:    select database();
        * 使用/切換數據庫:    use 數據庫名;
* DDL操作表結構
    1. 創建表
    
        1.1 創建表:

                    CREATE TABLE 表名 (
                    字段名 1 字段類型 1,
                    字段名 2 字段類型 2
                    );
    2. 常用數據類型
        * int  整型
        * double 浮點型
        * varchar 字符類型
        * date 日期類型
    3. 詳細數據類型
        * 整數
            * tinyInt 微整型:很小的整數(占 8 位二進制)
            * smallint 小整型:小的整數(占 16 位二進制)
            * mediumint 中整型:中等長度的整數(占 24 位二進制)
            * int(integer) 整型:整數類型(占 32 位二進制)
        * 小數
            * float 單精度浮點數,占 4 個字節
            * double 雙精度浮點數,占 8 個字節
        * 日期
            * time 表示時間類型
            * date 表示日期類型
            * datetime 同時可以表示日期和時間類型
        * 字符串
            * char(m) 固定長度的字符串, 無論使用幾個字符都占滿全部, M 為 0~255 之間的整數
            * varchar(m) 可變長度的字符串, 使用幾個字符就占用幾個, M 為 0~65535 之間的整數
        * 大二進制
            * tinyblob Big Large Object    允許長度 0~255 字節
            * blob 允許長度 0~65535 字節
            * mediumblob 允許長度 0~167772150 字節
            * longblob 允許長度 0~4294967295 字節
        * 大文本
            * tinytext 允許長度 0~255 字節
            * text 允許長度 0~65535 字節
            * mediumtext 允許長度 0~167772150 字節
            * longtext 允許長度 0~4294967295 字節
    4. 查看表
        * 查看數據庫中的所有表:show tables;
        * 查看表結構:desc 表名
        * 查看創建表的SQL語句:show create table 表名;
    5. 快速創建一個表結構相同的表
        * create table 新表名 like 舊表名;
    6. 刪除表
        * drop table 表名;
        * 看表是否存在,若存在則刪除表:drop table if exists 表名;
    7. 修改表結構
        * 添加列
            * 給表添加一列:alter table 表名 add 列名 類型;
            * 給表最前面添加一列:alter table 表名 add 列名 類型 first;
            * 給表某個字段后添加一列:alter table 表名 add 列名 類型 after 字段名;
            * 注意:沒有給表某個字段前添加一列的方法。
        * 修改列類型
            * alter table 表名 modify 列名 新類型;
        * 修改列名
            * alter table 表名 change 舊列名 新列名 類型;
        * 刪除列
            * alter table 表名 drop 列名;
        * 修改表名
            * rename table 舊表名 to 新表名;
        * 修改字符集
            * alter table 表名 character set 字符集;
* DML操作表中的數據(用於對表中進行增刪改查)
    1. 插入記錄
        * insert into 表名(字段名) values(字段對應值);
        * 如果不寫字段名,則認為是插入全字段數據
        * 如果想單獨插入指定字段數據,則只寫指定插入數據的字段名,這里需要注意的是,若表中包含不能為空的字段,如主鍵等,則在插入數據的時候必須插入必須字段。
    2. DOS命令行解決中文顯示亂碼問題:
        show variables like 'character%';
        
        set character_set_client=gbk;
        
        set character_set_connection=gbk;

        set character_set_results=gbk;
        * 每次退出DOS命令窗口以后會失效,再次進入需要重新設置
    3. insert的注意事項
        * 插入的數據應與字段的數據類型相同
        * 數據的大小應在列的規定范圍內,例如:不能將一個長度為 80 的字符串加入到長度為 40 的列中。
        * 在 values 中列出的數據位置必須與被加入的列的排列位置相對應。在 mysql 中可以使用 value, 但不建議使用,功能與values 相同。
        * 字符和日期型數據應包含在單引號中。 MySQL 中也可以使用雙引號做為分隔符。
        * 不指定列或使用 null,表示插入空值。
    4. 蠕蟲復制(將一張表的數據復制到另一張表中)
        * insert into 表名1 select * from 表名2;
        * 只復制部分列:insert into 表名1(字段名1,字段名2) select 字段名1,字段名2 from 表名2;
    5. 更新表記錄
        * 不帶條件更新:update 表名 set 字段名=值;(修改所有的行)
        * 帶條件更新:update 表名 set 字段名=值 where 字段名=值
        * 刪除表記錄:delete from 表名 where 字段名=值;
            * 注意,如果使用delete from 表名;這會刪除表中蓑鮋記錄
            * 也可以使用truncate刪除表中所有記錄:truncate table 表名
            * truncate 相當於刪除表的結構,再創建一張表。
* DQL查詢表中的數據
    1. 簡單查詢
        * 查詢表中所有數據:select * from 表名;
        * 查詢指定字段:select 字段名1,字段名2,... from 表名
    2. 指定列別名進行查詢(並不會修改原表列名,顯示的是修改的名)
        * 對列指定別名:SELECT 字段名1 AS 別名, 字段名2 AS 別名... FROM 表名;
        * 對列和表都使用別名:SELECT 字段名1 AS 別名, 字段名2 AS 別名... FROM 表名 AS 表別名; 
    3. 清除重復值
        * 查詢指定結果,不出現重復數據:select distinct 字段名 from 表名;
    4. 查詢結果參與運算
        * 某列數據和固定值運算:select 列名+固定值 from 表名;
        * 某列數據和其他列數據參與運算:select 列名1+列名2 from 表名;

  *  ifnull函數:ifnull(表達式1,表達式2):null參與的運算如果不調用該函數,計算結果都為null

                    *  表達式1:哪個字段需要判斷是否為null

                    *  表達式2:如果表達式1為null后的替換值

    5. 條件查詢
        * select 字段名 from 表名 where 條件;
        * 運算符
            * >、<、<=、>=、=、<> : <>在 SQL 中表示不等於,在 mysql 中也可以使用!=,沒有==
            * between...and:在一個范圍之內,如: between 100 and 200相當於條件在 100 到 200 之間,包頭又包尾
            * in(集合):集合表示多個值,使用逗號分隔
            * like'張%':模糊查詢,以張開頭的數據
            * like'%張':模糊查詢,以張結尾的數據
            * like'%張%':模糊查詢,中間含張的數據
            * like'_張':第二個字為張的兩個字的數據
            * is null:查詢某一列為 NULL 的值,注:不能寫=NULL
        * 邏輯運算符
            * and 或 && : 與,SQL 中建議使用前者,后者並不通用。
            * or 或 || : 或。
            * not 或 ! : 非。
        * in關鍵字
            * SELECT 字段名 FROM 表名 WHERE 字段 in (數據 1, 數據 2...);
            * in 里面的每個數據都會作為一次條件,只要滿足條件的就會顯示
        * 范圍查詢
            * BETWEEN 值 1 AND 值 2
            * 表示從值 1 到值 2 范圍,包頭又包尾
            * 比如: age BETWEEN 80 AND 100 相當於: age>=80 && age<=100
        * like關鍵字
            * LIKE 表示模糊查詢
            * SELECT * FROM 表名 WHERE 字段名 LIKE '通配符字符串';
        * MySQL通配符
            * % : 匹配任意多個字符串
            * _ : 匹配一個字符


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM