MySQL安裝與使用


1、下載mysqld

進入https://www.mysql.com/

在網頁中依次點擊:DOWNLOADS--->MySQL Community(GPL)Downloads---->MySQL Community Server

 

 這里以下載mysql-5.6.46-winx64.zip為例

下載成功后解壓--->改名為mysql56

2、添加系統環境變量

把mysql56下bin文件的目錄路徑添加到系統的環境變量中

3、把mysql制作成系統服務

  注意:在制作之前要把mysqld關掉(在命令提示符中輸入taskkill  /F  /PID xxxx ,xxx可以通過輸入tasklist  |findstr mysqld查看)

  制作:在命令提示符中輸入mysqld --install回車后就制作成功,可以通過在win+R中輸入services.msc中查看制作成功(MySQL)

       此時可以通過雙擊MySQL啟動

  可以在cmd中輸入:net start mysql / net stop mysql 進行開啟/關閉mysql

4、啟動

啟動服務端:

  mysqld

啟動客戶端:

  mysql  -uroot -p -h127.0.0.1 -p 3306           

如果在本機登陸mysqld客戶端可以簡寫:

  mysql -uroot -p

5、修改密碼

在系統命令提示符(以管理員身份運行)中輸入mysqladmin -uroot -p password "123”,然后回車在回車就會把密碼設置成123,如果再把密碼改為456:

mysqladmin -uroot -p123 password "456" 回車就會修改成功

6、破解管理員密碼

(1)先跳過密碼登入:

#1 關閉mysql
#2 在cmd中執行:mysqld --skip-grant-tables

(2)打開新的cmd輸入 mysql -uroot -p登入

(3)修改密碼:update mysql.user set password=password("123") where user="root" and host="localhost";

         刷新:flush privileges

(4)在命令行中用taskkill  /F  /PID xxxx殺死mysqld服務,然后正常啟動mysqld

7、統一字符編碼

問題:以管理員的身份運行cmd--->mysql -uroot -p456--->\s:此時會發現表格數據中有多種編碼(latinl、gbk),需要統一改為utf8

解決方法:在mysql56目錄下新建文檔,改名為my.ini,然后用Notepad++打開,進行如下配置:

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci

[client]
default-character-set=utf8

[mysql]
user="root"
password="2180736"
default-character-set=utf8

然后關閉再重啟mysql,編碼就會統一為utf8

 

8、創建用戶以及授權

連接:

  默認:用戶root

  創建:

    create user 'alex'@'192.168.1.1' identified by '123123';

              create user 'alex'@'192.168.1.%' identified by '123123';

    create user 'alex' @'%' identified by '123123';

 

  授權:

    用法:

    show grants for '用戶'@'IP地址'                  -- 查看權限
    grant  權限 on 數據庫.表 to   '用戶'@'IP地址'      -- 授權     revoke 權限 on 數據庫.表 from '用戶'@'IP地址' -- 取消權限

    例如:

    grant select,insert,update on db1.t1 to 'alex'@'%';  用戶在任何機器上都能對 db1數據庫下面的t1做查看、插入、更新操作  

              grant all privileges on db1.t1 to 'alex'@'%';       給用戶授權所有功能(用戶授權給別人的功能除外)

 9、基本的SQL語句

1、文件夾(庫)

create database db1 charset utf8;

alter database db1 charset gbk;

查看所有庫的庫名
show databases;
單獨查看某一個庫的信息
show create database db1;

drop database db1;

2、文件(表)
首先切換文件夾:
use db1;
select database(); #查看當前所在的文件夾
     create table t1(id int,name char);
     create table t1(id int,name char)engine=innodb default charset=utf8;
     create table t3(id int auto_increment primary key,name char(10))engine=innodb default charset=utf8;  *****

       create table t1(
      列名 類型 null,
      列名 類型 not null,
      列名 類型 not null auto_increment primary key,
      id int,
      name char(10)
    )engine=innodb default charset=utf8;
      # innodb 支持事務,原子性操作
      # myisam myisam

      auto_increment 表示:自增 (一個表里面只能有一個自增列)
      primary key: 表示 約束(不能重復且不能為空); 加速查找 (一般與auto_increment 連用)
      not null: 是否為空

         

數據類型:

  1、數字:

    tinyint:-128~127                                           0~255
    int:-2147483648~2147483647                                 0~4294967295
    bigint:-9223372036854775808 ~ 9223372036854775807          0 ~ 18446744073709551615

    FLOAT
      0.00000100000123000123001230123   (數據不精准)
    DOUBLE
      0.00000000000000000000100000123000123001230123
      0.00000100000123000000000000000  (數據不精准)
    decimal
      注意:對於精度數值計算時需要用此類型,

         decimal能夠儲存精確值的原因在於其內部按照字符串儲存
  2、字符串:
    char(m) 速度快()
    char數據類型用於表示固定長度的字符串,可以包含最多達255個字符。其中m代表字符串的長度,即使數據小於m長度,也會占用m長度

    varchar(10) 節省空間
    varchars數據類型用於變長的字符串,可以包含最多達255個字符。其中m代表該數據類型所允許保存的字符串的最大長度,只要長度小於該最大值的字符串都可          以被保存在該數據類型中。


    PS: 創建數據表定長列往前放,,,,char、varchar最多存255個字符

 3、text:
    上傳文件:
      文件存硬盤
      db存路徑


 4、時間類型:
    DATETIME: YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59 Y)

  

5、enum:枚舉類型
 CREATE TABLE shirts (
       name VARCHAR(40),
       size ENUM('x-small', 'small', 'medium', 'large', 'x-large')
       );
       INSERT INTO shirts (name, size) VALUES ('dress shirt','large'), ('t-shirt','medium'),('polo shirt','small');

 6、set:集合類型

       CREATE TABLE myset (col SET('a', 'b', 'c', 'd'));
           INSERT INTO myset (col) VALUES ('a,d'), ('d,a'), ('a,d,a'), ('a,d,d'), ('d,a,d');


    create table t1(
      id int signed not null auto_increment primary key,
      num decimal(10,5),
      name char(10)
    )engine=innodb default charset=utf8;


alter table t1 modify name char(16);

查看當前庫下所有的表名
show table
查看t1表的詳細信息
show create table t1;
查看表結構
desc t1;

        清空
                  1、delete from t1;(自增情況下清空再插入數據,序號從上面遞增)
        2、truncate table t1;(運行速度比上面的快 ,再插入數據序號從1開始)


drop table t1;

3、文件的一行內容(記錄)

insert into db1.t1(id,name) values
(1,'egon'),
(2,'alex'),
(3,'lxx');

update db1.t1 set name='sb' where id > 1;

select id,name from db1.t1;

     delete from t1;(全部刪除)
delete from db1.t1 where name = "SB" ; (有條件的刪除)
詳見:https://www.cnblogs.com/wupeiqi/articles/5713323.html


免責聲明!

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



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