1. 程式人生 > >MySQL基礎知識回顧

MySQL基礎知識回顧

mysql innodb 增刪改查 主鍵 外鍵 關系型數據庫

MarkdownPad Document

MySQL

MySQL:是用於管理文件的一個軟件
    - 服務端軟件
        - socket服務端
        - 本地文件操作
        - 解析指令【SQL語句】
    - 客戶端軟件(各種各樣)
        - socket客戶端
        - 發送指令
        - 解析指令【SQL語句】

    PS:
        - DBMS:數據庫管理系統
        - SQL語句

需要掌握的技能:
    - 安裝 服務端和客戶端
    - 連接
    - 學習SQL語句規則;指示服務端做任意操作


其他類似軟件:
    關系型數據庫:sqllite,db2,oracle,access,sql server MySQL
    非關系型數據庫:MongoDB,redis

MySQL安裝

Windows:
    可執行文件安裝:
        while True:
            下一步
    壓縮包
        放置任意目錄
        初始化
            服務端:E:\somewhere\mysql-5.7.16-winx64\bin\mysqld --initialize-insecure
                    # 默認用戶名 root 密碼:空
        啟動服務端:
            E:\somewhere\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin\mysqld\mysqld

        客戶端連接:
            E:\somewhere\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin\mysqld\mysql -u root -p 

        發送指令:
                show databases;#查看數據庫
                create database db1;創建數據庫

        環境變量的配置:
            E:\somewhere\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin
            mysqld   添加到系統環境變量PATH

        windows服務:(制作成為Windows服務,可開機自動運行)
            E:\somewhere\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin\mysqld --install
            net start MySQL

            E:\somewhere\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin\mysqld --remove

            net start MySQL
            net stop MySQL

關於連接數據庫

連接:

    默認:用戶root

    show databases;

    use 數據庫名稱;    #使用數據庫

    show tables;      #查看數據表

    select * from 表名;     #查詢

    select name,age,id from 表名;

    mysql數據庫user表    #系統自帶(存放mysql用戶賬號信息)
    use mysql;
    select user,host from user;


    創建用戶:
          create user [email protected]
/* */ identified by ‘123123‘; create user [email protected]%‘ identified by ‘123123‘; create user [email protected]%‘ identified by ‘123123‘; 授權: 權限 人 grant select,insert,update on db1.t1 to [email protected]%‘; grant all privileges on db1.t1 to [email protected]%‘; revoke all privileges on db1.t1 from [email protected]%‘;

學習SQL語句規則

操作文件夾
    create database db2;
    create database db2 default charset utf8; *****
    show databases;
    drop database db2;

操作文件
    show tables;
    create table t1(id int,name char(10)) default charset=utf8;
    create table t1(id int,name char(10))engine=innodb default charset=utf8;
    create table t3(id int auto_increment,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:  表示 約束(不能重復且不能為空); 加速查找
        not null: 是否為空
        數據類型:

            數字:(註意區分有無符號,unsigned,signed)
                tinyint
                int
                bigint

                FLOAT
                    0.00000100000123000123001230123
                DOUBLE
                    0.00000000000000000000100000123000123001230123
                    0.00000100000123000000000000000
                decimal (精確小數表示,底層用字符串實現,推薦使用)
                    0.1

            字符串:
                char(10)      速度快()

                varchar(10)   節省空間

                PS: 創建數據表定長列往前放

                text類型:最大字符65535

                上傳文件: 
                    文件存硬盤
                    db存路徑
            時間類型
                DATETIME

            enum
            set


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

    清空表:
        delete from t1;  #自動列信息保留
        truncate table t1;  #自動列信息清除
    刪除表:
        drop table t1;

操作文件中內容
    插入數據:
        insert into t1(id,name) values(1,‘alex‘);
    刪除:
        delete from t1 where id<6
    修改:
        update t1 set age=18;
        update t1 set age=18 where age=17;
    查看數據:
        select * from t1;

外鍵:

    create table userinfo(
        uid bigint auto_increment primary key,
        name varchar(32),
        department_id int,


        constraint fk_user_depar foreign key (department_id) references department(id),


    )engine=innodb default charset=utf8;

    create table department(
        id bigint auto_increment primary key,
        title char(15)
    )engine=innodb default charset=utf8;

MySQL基礎知識回顧