官網(wǎng):https://www.mysql.com/
添加配置信息
先cd,進(jìn)入用戶主目錄
vim .bash_profile
添加:export PATH=$PATH:/usr/local/mysql/bin
連接到Mysql服務(wù)器
mysql -u root -p
更改MySQL密碼
mysqladmin -u用戶名 -p舊密碼 password 新密碼
基礎(chǔ)指令
QUIT //退出
SHOW DATABASES; //查看所有的數(shù)據(jù)庫
CREATE DATABASE xx; //創(chuàng)建數(shù)據(jù)庫,xx為要?jiǎng)h除的數(shù)據(jù)庫名稱
DROP DATABASE xx; //刪除數(shù)據(jù)庫,xx為要?jiǎng)h除的數(shù)據(jù)庫名稱
SHOW CREATE database xx; //查看數(shù)據(jù)庫的定義
USE xx; //切換數(shù)據(jù)庫,xx為要切換到的數(shù)據(jù)庫名稱
SHOW ENGINES; //查看數(shù)據(jù)庫使用的引擎
SELECT DATABASE(); //查看當(dāng)前數(shù)據(jù)庫
SELECT USER(); //查看當(dāng)前用戶
表基礎(chǔ)操作
CREATE TABLE xx(key value,…); //創(chuàng)建表,key value對應(yīng),xx為創(chuàng)建的表名
(1)設(shè)置主鍵:PRIMARY KEY
兩種方式:ID INT(20) PRIMARY KEY
、ID INT(11),PRIMARY KEY(ID)
事例
CREATE TABLE tab_student(
ID VARCHAR(20) PRIMARY KEY,
Score INT,
Gender CHAR
);
設(shè)置ID為主鍵
CREATE TABLE tab_student(
ID VARCHAR(20) ,
Score INT,
Gender CHAR
PRIMARY KEY(ID)
);
設(shè)置ID為主鍵
多字段聯(lián)合主鍵:PRIMARY KEY(ID,NAME)
;ID和NAME為聯(lián)合的主鍵,實(shí)為一個(gè)主鍵。
(2)設(shè)置字段自動增加:AUTO_INCREMENT
創(chuàng)建方式:ID INT PRIMARY KEY AUTO_INCREMENT
, 將ID設(shè)置為整數(shù)類型主鍵,并且設(shè)置字段值?動增加
CREATE TABLE tab_emp4(
ID INT PRIMARY KEY AUTO_INCREMENT,
Name VARCHAR(20),
Score INT
);
設(shè)置id為主鍵,并且設(shè)置字段自動增加
賦值方式一:INSERT INTO tab_emp4(id,name,score) values(null,'張三',100)
。可以直接賦nul根據(jù)最大的值自加
賦值方式二:INSERT INTO tab_emp4(id,name,score) values(200,’張三',100)
。直接賦id
(3)設(shè)置外鍵約束:FOREIGN KEY 約束名字(當(dāng)前表內(nèi)鍵的名稱) + REFERENCES 依附的主表名稱(依附主表鍵的名稱)
一般創(chuàng)建方式:
CREATE TABLE tab_emp5(
id INT(11) PRIMARY KEY,
name VARCHAR(25),
deptId INT(11),
salary FLOAT,
CONSTRAINT fk_emp FOREIGN KEY(deptId) REFERENCES tab_emp4(ID)
);
設(shè)置外鍵,deptID關(guān)聯(lián)于tab_emp4的(ID),fk_emp外鍵別名
(4)約束某字段不能為空:NOT NULL
一般創(chuàng)建方式
CREATE TABLE tab_emp6(
ID INT NOT NULL,
Name VARCHAR(20),
Score INT
);
設(shè)置id字段不能為NULL
(5)設(shè)置唯一約束(插入在這個(gè)字段上的值唯一,不能重復(fù)):UNIQUE
? 可以為NULL
一般創(chuàng)建方式
CREATE TABLE tab_emp7(
ID INT UNIQUE
);
設(shè)置唯一約束
表基本指令
SHOW TABLES; //查看當(dāng)前數(shù)據(jù)庫所有表
DESCRIBE xx; //查看當(dāng)前數(shù)據(jù)庫中的表xx
SELECT *FROM xx //查詢對應(yīng)表xx中的信息
SELECT ID,NAME FROM xx; //列出表中ID,NAME的數(shù)據(jù)
SELECT * FROM xx WHERE key=value; //查詢表xx中對應(yīng)的key,value。并列出這一行所有數(shù)據(jù)
SELECT NAME FROM xx WHERE key=value; //查詢表xx中對應(yīng)的key,value。只列出NAME數(shù)據(jù)
INSERT INTO xx(key,…)values(value,…); //插入數(shù)據(jù),xx為表名
DROP TABLE xx; //刪除表
ALTER TABLE xx RENAME new_xx; //修改表名,xx為舊名字,new_xx修改后新名字
ALTER TABLE xx MODIFY KEY type; //修改字段數(shù)據(jù)類型,xx為表名,key為你要修改的字段名,type修改后的類型。
ALTER TABLE xx CHANGE name newname type;//修改字段名,xx為所屬表名,name為舊字段名,newname為新字段名。type為數(shù)據(jù)類型
ALTER TABLE xx ADD key type; //添加字段,xx為表名,key你要添加的字段名,type數(shù)據(jù)類型
//添加時(shí)可以使用FIRST關(guān)鍵字,添加在開頭:ALTER TABLE xx ADD key type FIRST;
//添加時(shí)可以使用AFTER關(guān)鍵字,添加在什么之后: ALTER TABLE xx ADD key INT(11) AFTER ID;//添加在ID字段后面
ALTER TABLE xx DROP key; //刪除某一個(gè)字段,xx為表名,key你要?jiǎng)h除的字段名
ALTER TABLE xx DROP FOREIGN KEY fk_emp; //刪除外鍵約束,xx為表名,fk_emp,外鍵別名
UPDATE xx SET Score=1000 WHERE id=5; //更新數(shù)據(jù),xx為表名,score為要修改的字段,后面為數(shù)據(jù),修改的是id為5的
DELETE FROM xx WHERE id =3; //刪除數(shù)據(jù),xx為表名,刪除id為三的數(shù)據(jù)
//修改字段相對位置,這里name1為想要修改的字段,type1為該字段原來類型,
//first和after二選一,這應(yīng)該顯而易見,first放在第一位,after放在name2字段后面
ALTER TABLE xx MODIFY name1 type1 first|after name2;
//給原先鍵增加屬性,xx為表名,key為鍵名,type為類型,
//后面跟上你想要添加的約束以空格隔開,ADD后面追加屬性。
ALTER TABLE xx MODIFY COLUMN key type 約束...,ADD 添加的屬性,例如設(shè)置為主鍵,或者外鍵;
如果自增主鍵,順序?qū)?yīng)亂。
1、刪除原有主鍵:
ALTER TABLE tab_name DROP ID;
//ID為原先主鍵
2、添加字段
ALTER TABLE tab_name ADD ID INT(11) NOT NULL FIRST;
//添加一個(gè)名字為ID的鍵
3、設(shè)置為新的主鍵
ALTER TABLE tab_name MODIFY COLUMN ID INT(11) NOT NULL AUTO_INCREMENT,ADD PRIMARY KEY(ID);
//ADD添加附件屬性