MysQL使用一創建庫與表


數據庫簡介

  • 人類在進化的過程中,創造了數字、文字、符號等來進行數據的記錄,但是承受着認知能力和創造能力的提升,數據量越來越大,對於數據的記錄和准確查找,成為了一個重大難題
  • 計算機誕生后,數據開始在計算機中存儲並計算,並設計出了數據庫系統
  • 數據庫系統解決的問題:持久化存儲,優化讀寫,保證數據的有效性
  • 當前使用的數據庫,主要分為兩類
    • 文檔型,如sqlite,就是一個文件,通過對文件的復制完成數據庫的復制
    • 服務型,如mysql、postgre,數據存儲在一個物理文件中,但是需要使用終端以tcp/ip協議連接,進行數據庫的讀寫操作

E-R模型

  • 當前物理的數據庫都是按照E-R模型進行設計的
  • E表示entry,實體
  • R表示relationship,關系
  • 一個實體轉換為數據庫中的一個表
  • 關系描述兩個實體之間的對應規則,包括
    • 一對一
    • 一對多
    • 多對多
  • 關系轉換為數據庫表中的一個列 *在關系型數據庫中一行就是一個對象

三范式

  • 經過研究和對使用中問題的總結,對於設計數據庫提出了一些規范,這些規范被稱為范式
  • 第一范式(1NF):列不可拆分
  • 第二范式(2NF):唯一標識
  • 第三范式(3NF):引用主鍵
  • 說明:后一個范式,都是在前一個范式的基礎上建立的

 

安裝

  • 安裝
sudo apt-get install mysql-server mysql-client
然后按照提示輸入

管理服務

  • 啟動
service mysql start
  • 停止
service mysql stop
  • 重啟
service mysql restart

允許遠程連接

  • 找到mysql配置文件並修改
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
將bind-address=127.0.0.1注釋
  • 登錄mysql,運行命令
grant all privileges on *.* to 'root'@'%' identified by 'mysql' with grant option;
flush privileges;
  • 重啟mysql

 

數據完整性

  • 一個數據庫就是一個完整的業務單元,可以包含多張表,數據被存儲在表中
  • 在表中為了更加准確的存儲數據,保證數據的正確有效,可以在創建表的時候,為表添加一些強制性的驗證,包括數據字段的類型、約束

字段類型

  • 在mysql中包含的數據類型很多,這里主要列出來常用的幾種
  • 數字:int,decimal
  • 字符串:varchar,text
  • 日期:datetime
  • 布爾:bit

約束

  • 主鍵primary key
  • 非空not null
  • 惟一unique
  • 默認default
  • 外鍵foreign key

 

使用圖形窗口連接

  • 下發windows的navicat
  • 點擊“連接”彈出窗口,按照提示填寫連接信息,如下圖

連接

  • 連接成功后,會在連接名稱下面顯示出當前的數據庫
  • 雙擊選中數據庫,就可以編輯此數據庫
  • 下次再進入此軟件時,通過雙擊完成連接、編輯操作

數據庫操作

  • 在連接的名稱上右擊,選擇“新建數據庫”,彈出窗口,並按提示填寫

創建數據庫

  • 在數據庫上右擊,選擇“刪除數據庫”可以完成刪除操作

表操作

  • 當數據庫顯示為高亮時,表示當前操作此數據庫,可以在數據中創建表
  • 一個實體對應一張表,用於存儲特定結構的數據
  • 點擊“新建表”,彈出窗口,按提示填寫信息

創建表

  • 主鍵的名稱一般為id,設置為int型,無符號數,自動增長,非空
  • 自動增長表示由mysql系統負責維護這個字段的值,不需要手動維護,所以不用關心這個字段的具體值
  • 字符串varchar類型需要設置長度,即最多包含多少個字符
  • 點擊“添加欄位”,可以添加一個新的字段
  • 點擊“保存”,為表定義名稱

數據操作

  • 表創建成功后,可以在右側看到,雙擊表打開新窗口,如下圖

數據操作

  • 在此窗口中可以增加、修改、刪除數據

邏輯刪除

  • 對於重要數據,並不希望物理刪除,一旦刪除,數據無法找回
  • 一般對於重要數據,會設置一個isDelete的列,類型為bit,表示邏輯刪除
  • 大於大量增長的非重要數據,可以進行物理刪除
  • 數據的重要性,要根據實際開發決定

 

使用命令連接

  • 命令操作方式,在工作中使用的更多一些,所以要達到熟練的程度
  • 打開終端,運行命令
mysql -uroot -p
回車后輸入密碼,當前設置的密碼為mysql
  • 連接成功后如下圖

連接成功

  • 退出登錄
quit或exit
  • 退出成功后如下圖

退出

  • 登錄成功后,輸入如下命令查看效果
查看版本:select version();
顯示當前時間:select now();
  • 注意:在語句結尾要使用分號;

遠程連接

  • 一般在公司開發中,可能會將數據庫統一搭建在一台服務器上,所有開發人員共用一個數據庫,而不是在自己的電腦中配置一個數據庫
  • 運行命令
mysql -hip地址 -uroot -p
  • -h后面寫要連接的主機ip地址
  • -u后面寫連接的用戶名
  • -p回車后寫密碼

數據庫操作

  • 創建數據庫
create database 數據庫名 charset=utf8;
  • 刪除數據庫
drop database 數據庫名;
  • 切換數據庫
use 數據庫名;
  • 查看當前選擇的數據庫
select database();

表操作

  • 查看當前數據庫中所有表
show tables;
  • 創建表
  • auto_increment表示自動增長

    create table 表名(列及類型);
    如:
    create table students(
    id int auto_increment primary key,
    sname varchar(10) not null
    );
    
  • 修改表

alter table 表名 add|change|drop 列名 類型;
如:
alter table students add birthday datetime;
  • 刪除表
drop table 表名;
  • 查看表結構
desc 表名;
  • 更改表名稱
rename table 原表名 to 新表名;
  • 查看表的創建語句
show create table '表名';

數據操作

  • 查詢
select * from 表名
  • 增加
全列插入:insert into 表名 values(...)
缺省插入:insert into 表名(列1,...) values(值1,...)
同時插入多條數據:insert into 表名 values(...),(...)...;
或insert into 表名(列1,...) values(值1,...),(值1,...)...;
  • 主鍵列是自動增長,但是在全列插入時需要占位,通常使用0,插入成功后以實際數據為准
  • 修改
update 表名 set 列1=值1,... where 條件
  • 刪除
delete from 表名 where 條件
  • 邏輯刪除,本質就是修改操作update
alter table students add isdelete bit default 0;
如果需要刪除則
update students isdelete=1 where ...;

備份與恢復

數據備份

  • 進入超級管理員
sudo -s
  • 進入mysql庫目錄
cd /var/lib/mysql
  • 運行mysqldump命令
mysqldump –uroot –p 數據庫名 > ~/Desktop/備份文件.sql;
按提示輸入mysql的密碼

數據恢復

  • 連接mysqk,創建數據庫

  • 退出連接,執行如下命令

mysql -uroot –p 數據庫名 < ~/Desktop/備份文件.sql
根據提示輸入mysql密碼



免責聲明!

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



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