1. 程式人生 > >Mysql5.7安裝及服務

Mysql5.7安裝及服務

雄關漫道真如鐵,而今邁步從頭越。

day22 mysql

1. 簡介

關係型資料庫

  • 永久儲存資料
  • 提供資料的安全
  • 提供資料的併發訪問
  • 提供了多種資料型別
  • 提供事務支援
  • 提供了SQL語言操作資料

著名的資料庫

  • Oracle 甲骨文
  • MySQL 甲骨文
  • Sql Server 微軟 (主要用在windows環境)
  • DB2 IBM公司
  • SQLlite 用在移動端開發

2.安裝

解壓後
bin/mysql.exe 客戶端程式
bin/mysqld.exe 伺服器端程式
bin/mysqldump.exe 資料備份程式

  1. 初始化(只需要執行一次)
    bin/mysqld --initialize --console
    初始化結束會生成data的資料夾,其中儲存系統和使用者的資料

注意記錄臨時密碼

  1. 啟動資料庫服務(跳過就可以)
    bin/mysqld --console
    埠用的是3306
    可以使用Ctrl+C 停止服務程式,或者直接關閉視窗

  2. 使用客戶端連線
    bin/mysql -u 使用者名稱 -p

初始化時mysql有一個 root (資料庫管理員使用者)

bin\mysql -uroot -p

正確登入後會出現 mysql> 提示符,要退出用quit命令

  1. 修改密碼(只需要執行一次)
alter user 'root'@'localhost' identified by 'root';
  1. 配置mysql的bin目錄至環境變數(只需要執行一次)

  2. 將mysql安裝為系統服務(只需要執行一次)
    bin\mysqld install 服務名

如果服務名沒有提供,預設為MySQL

如果要解除安裝服務:sc delete 服務名

如果安裝服務或刪除時出現許可權不足,用管理員身份執行cmd(黑視窗)

  1. 建庫
    設定預設的字元編碼

一種是在建庫語句上帶上字元編碼
另一種是在啟動服務時新增配置檔案

建庫SQL語句(在mysql提示符下執行)

create database 資料庫名 character set utf8mb4;

mysql中的utf8字元不夠完整,utf8mb4是完整版本的

刪除資料庫

drop database 資料庫名;

檢視建庫資訊

show create database 資料庫名;

要修改全域性的設定,在mysql解壓目錄新增 my.ini 配置檔案,在其中輸入(推薦)

[mysqld]
character-set-server=utf8mb4

停止舊服務,刪除舊服務,安裝新服務,啟動新服務

net stop mysql
sc delete mysql
mysqld install
net start mysql

3. 基本操作

建表(table)
一個庫中有多張表,每張表裡有多條資料
表分成行(row 橫向)與列(column 縱向)

學號 姓名 性別
1 張三 男
2 李四 女

  1. 選庫
    use 庫名;
  2. 建表
create table 表名(1名 型別,2名 型別,
    ...
);
create table student(
    id int,
    name varchar(10),
    sex char(1)
);

整數型別: tinyint(1個位元組), smallint(2個位元組), int(4個位元組), bigint(8個位元組)
無符號數字 tinyint unsigned (0~255)

浮點型別: float, double
定點小數: decimal(總位數, 小數位數)
decimal(10, 2) 小數部分兩位,整數部分最大8位

字元型別
char(長度) char(10) 表示最多存10個字元, 定長,效率高
varchar(長度) varchar(10) 表示最多儲存10個字元,變長

“abc” "abc " 儲存時,長度不足,用空格補齊
“abc” “abc” 儲存時,根據實際長度儲存,可以節省空間
日期型別
datetime
timestamp

  1. 插入資料
insert into 表名(1,2, ... 列n) values (1,2, ... 值n);

注意:值個數要與列個數一致

insert into student(id,name,sex) values(1, '張三', '男');
  1. 查詢資料
    語法:
select1,2, ... from 表名;
select id, name, sex from student;
  1. 檢視所有庫
show databases;
  1. 檢視所有表
show tables;
  1. 唯一主鍵
    每張表只能有一個主鍵
    主鍵的值必須是唯一,且非空的
create table 表名(1名 型別 primary key,2名 型別,
    ...
);

刪表語法:drop table 表名;

create table student(
    id int primary key,
    name varchar(10),
    sex char(1)
);

insert into student(id,name,sex) values(null, ‘李四’, ‘男’);

自增列,用來解決主鍵衝突問題
在主鍵列後加入:auto_increment
1 2 3 4 …
因為id列由資料庫維護,所以有了自增列後就不需要給id列賦值了

create table student(
    id int primary key auto_increment,
    name varchar(10),
    sex char(1)
);

一次插入多條記錄(mysql獨有)
insert into student(name,sex) values(‘李四’, ‘男’),(‘王五’, ‘男’),(‘趙柳’, ‘男’);

  1. 查詢所有列
    select * from student;
    mysql會把*翻譯成:id,name,sex

  2. 刪除記錄(只刪除資料,不刪表)

delete fromwhere 條件;

刪除表(連表和資料一塊刪除)

drop table;

只刪除id=6的記錄
delete from student where id=6;

create table a ( birthday datetime );
insert into a (birthday) values (‘1988-5-4’);
insert into a (birthday) values (‘1988-5-4 16:39:00’);

// 1.
create table b (
id int primary key auto_increment,
name varchar(20)
) auto_increment=1001;
insert into b (name) values(‘aaa’),(‘bbb’),(‘ccc’);
// 2.
create table b (
id int primary key auto_increment,
name varchar(20)
);
alter table b auto_increment=1001;