使用圖形窗口鏈接
- 下發windows的navicat
- 點擊「鏈接」彈出窗口,按照提示填寫鏈接信息,以下圖
- 鏈接成功後,會在鏈接名稱下面顯示出當前的數據庫
- 雙擊選中數據庫,就能夠編輯此數據庫
- 下次再進入此軟件時,經過雙擊完成鏈接、編輯操做
數據庫操做
- 在鏈接的名稱上右擊,選擇「新建數據庫」,彈出窗口,並按提示填寫
- 在數據庫上右擊,選擇「刪除數據庫」能夠完成刪除操做
表操做
- 當數據庫顯示爲高亮時,表示當前操做此數據庫,能夠在數據中建立表
- 一個實體對應一張表,用於存儲特定結構的數據
- 點擊「新建表」,彈出窗口,按提示填寫信息
- 實體-----表 屬性------字段
- 主鍵的名稱通常爲id,設置爲int型,無符號數,自動增加,非空
- 自動增加表示由mysql系統負責維護這個字段的值,不須要手動維護,因此不用關心這個字段的具體值
- 字符串varchar類型須要設置長度,即最多包含多少個字符
- 點擊「添加欄位」,能夠添加一個新的字段
- 點擊「保存」,爲表定義名稱
- 右鍵而後點擊「設計表」能夠從新設計
數據操做
- 表建立成功後,能夠在右側看到,雙擊表打開新窗口,以下圖
- 在此窗口中能夠增長、修改、刪除數據
邏輯刪除
- 對於重要數據,並不但願物理刪除,一旦刪除,數據沒法找回
- 通常對於重要數據,會設置一個isDelete的列,類型爲bit,表示邏輯刪除默認值爲0,1表示刪除
- 大於大量增加的非重要數據,能夠進行物理刪除
- 數據的重要性,要根據實際開發決定
使用命令鏈接
- 命令操做方式,在工做中使用的更多一些,因此要達到熟練的程度
- 打開終端,運行命令
-
mysql -uroot -p
-
回車後輸入密碼,當前設置的密碼爲mysql
- 鏈接成功後以下圖
- 退出登陸
quit或exit
- 退出成功後以下圖
- 登陸成功後,輸入以下命令查看效果
查看版本:select version(); 顯示當前時間:select now();
- 注意:在語句結尾要使用分號;
遠程鏈接
- 通常在公司開發中,可能會將數據庫統一搭建在一臺服務器上,全部開發人員共用一個數據庫,而不是在本身的電腦中配置一個數據庫
- 運行命令
- -h後面寫要鏈接的主機ip地址
- -u後面寫鏈接的用戶名
- -p回車後寫密碼
數據庫操做
- 建立數據庫
create database 數據庫名 charset=utf8;
- 刪除數據庫
drop database 數據庫名;
- 切換數據庫
use 數據庫名;
- 查看當前選擇的數據庫
select database();
查看當前全部的數據庫:
show databases;
表操做
- 查看當前數據庫中全部表
show tables;
- 建立表
-
auto_increment表示自動增加mysql
CREATE TABLE IF NOT EXISTS `tc_base`( `tc_base_id` INT UNSIGNED AUTO_INCREMENT, `tc_region_name` VARCHAR(100) NOT NULL, `street_name` VARCHAR(40) NOT NULL, PRIMARY KEY ( `tc_base_id` ) )ENGINE=InnoDB DEFAULT CHARSET=utf8;
- 若是你不想字段爲 NULL 能夠設置字段的屬性爲 NOT NULL, 在操做數據庫時若是輸入該字段的數據爲NULL ,就會報錯。
- AUTO_INCREMENT定義列爲自增的屬性,通常用於主鍵,數值會自動加1。
- PRIMARY KEY關鍵字用於定義列爲主鍵。 您可使用多列來定義主鍵,列間以逗號分隔。
- ENGINE 設置存儲引擎,CHARSET 設置編碼。
-
修改表sql
alter table 表名 add|change|drop 列名 類型; 如: alter table students add birthday datetime;
- 刪除表(物理刪除)
drop table 表名;
- 查看錶結構
describe
desc 表名;
- 更改表名稱
rename table 原表名 to 新表名;
- 更改表中列信息
ALTER TABLE testalter_tbl CHANGE 舊列名字 新列名字 BIGINT;
- 查看錶的建立語句
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,建立數據庫數據庫
-
退出鏈接,執行以下命令windows
mysql -uroot –p 數據庫名 < ~/Desktop/備份文件.sql 根據提示輸入mysql密碼
總結
- 數據庫解決的問題,E-R模型,三範式
- 圖形界面操做數據庫、表、數據
- 命令行操做數據庫、表、數據
數據庫命令:
建立create database 數據庫名 charset=utf8;
刪除drop database 數據庫名;
查看全部數據庫:show databases;
使用數據庫:use 數據庫名;
----------------------------------------
表命令:
create table 表名(列...);
惟一標識的要求:id
類型:int unsigned
約束1:not null
約束2:primary key
約束3:auto_increment
列的格式:列的名稱 類型 約束
create table stu(
-> id int not null primary key auto_increment,
-> name varchar(10) not null,
-> gender bit default 1,
-> birthday datetime,
-> isDelete bit default 0,
-> );
查看錶show tables;服務器
查看錶的建立語句:show create table 表名;
ui
查看錶結構desc 表名;
修改表:alter table 表名 add|modify|drop 列名 類型 約束;
alter table stu modify column isDelete bit not null default 0;
刪除表:drop table 表名;
----------------------------------------
數據命令:
添加數據:insert into 表名(列名) values(值),(值)...;
修改數據:update 表名 set 列1=值1,... where ...;
刪除數據:delete from 表名 where ...;
邏輯刪除:update 表名 set isDelete =1,where...;
備份:mysqldump >
恢復:mysql <編碼
CREATE TABLE IF NOT EXISTS `tc_base`( `tc_base_id` INT UNSIGNED AUTO_INCREMENT, `tc_region_name` VARCHAR(100) NOT NULL, `street_name` VARCHAR(40) NOT NULL, PRIMARY KEY ( `tc_base_id` ))ENGINE=InnoDB DEFAULT CHARSET=utf8;spa