1. 程式人生 > >MySQL基礎操作增,刪,改,查。

MySQL基礎操作增,刪,改,查。

一,SQL語言概述
1,SQL語言是關係型資料庫的標準語言,用於維護管理資料庫,如資料查詢,資料更新,訪問控制,物件管理等功能。

2,建表

這是需要掌握的。
(1)#Show databases; 檢視資料庫裡所有的小資料庫名。 show看 databases 資料庫小庫

(2)#Create database yunjisuan; 建立一個叫yunjisuan的庫 create建立

(3)#drop database yujisuan; 刪除一個叫yunjisuan的庫 drop
(4)我現在想看小資料庫裡的yunjisuan的表呢?
#use yunjisuan; 我先把物件設定成yunjisuan這個小庫 use使用
#show tables; tables表

(5)如何建表呢?
首先先選個物件, 建立表頭
#use yunjisuan;
顯示:Database changed改變

# create table uses (user_name char(20) not null, user_passwd char(30) default '',primary key(user_name)); 在yunjisuan這個小資料庫中,建立一個叫uses的表,裡邊有兩個欄位姓名和密碼,新增內容時,就可以新增姓名和密碼了
tables(多個表) table(單個表)

(1)user_name char(20) not null
user_name 欄位名
char位元組 一個字母代表一個位元組,這個欄位裡邊最多不能超過20位元組。
not null不能為空。
這個逗號前的意思是 第一個是欄位名 第二個是位元組數。第三個是它能不能為空。

(2)user_passwd char(30) default ''
第二段意思是給user設定密碼為空
default 預設

(3)primary key(user_name)
primary 主要的
key  主鍵
這段意思是 指定一個主鍵 user_name

(6)繼續檢視這個yunjisuan這個小庫的表,剛才建立的表user就出來了
#show tables;

(7)如何檢視這個表的欄位呢? (只是看錶頭不是看資料)
#describe uses;

二,四種對錶資料進行操作的SQL語句。
增,刪,改,查

增:insrrt  into  表名[欄位名] values   具體數值

刪; delete  from  表名 where

改: update  表名 set 欄位='數值'

查:select  欄位名 from  表名


三,本地賬戶在MySQL的關係。
小庫其實就是data目錄下的子目錄。
開發管小庫叫做空間
小庫的名字叫做空間名
小庫裡的表,叫做空間名,表名。
1,本地賬戶在mysql的user這個表裡邊
mysql> select user,host,password from mysql.user; 檢視user這個表。裡邊password 是加密的,我現在想把這個密碼給改了
mysql> update mysql.user set password='666666' where host='localhost'; 這就給改了。
再用重新整理下,重新整理很重要。
mysql> flush privileges;
之後登陸MySQL, 用新設定的密碼。但是還是登入不上去,這時就得需要個加密函式。
mysql> update mysql.user set password=password('666666') where host='localhost';之後重新整理,在登入就沒問題了。
password=password('666666')這個意思是666666的密碼需要passwor這個函式加密,在賦值給前一個password.


四,MySQL許可權。
1,使用者許可權設定 grand (使用者不存在,則新建使用者)
#netstat -antup | grep 3306 檢視MySQL埠。
mysql> grant all on *.* to 'root'@192.168.29.149' IDENTIFIED BY '123456'; 這句話是如何建立賬號
all: 這個指的是所有的許可權賦予所有許可權,增刪改查 如all換成select那就是隻有讀許可權。
on: 如果沒有all 只有這個on代表只有讀許可權
*.*: 這個意思是 庫.表 代表所有的庫和所有的表。
to: 對那個賬號 把前邊的內容許可權賦給後邊這個賬號,
'root'@192.168.29.149' 建立的是這個賬號。使用者名稱@登入IP
IDENTIFIED BY密碼
2,現在進行遠端連線。
先需要在啟一臺虛擬機器,在這臺虛擬機器上yum安裝 mysql, 這就是MySQL客戶端。
之後建立個賬戶: 注意這個IP是我服務端的IP。建立的是誰的IP就只能用誰來登入。
mysql> grant all on *.* to 'yunjisuan'@'192.168.29.149' identified by '123123'; 這個建立好,那我就只能用192.168.29.149這個IP的虛擬機器來登入。
在檢視下本地所有的賬戶。 (賬戶下邊是庫)
mysql> select user,host from mysql.user;
之後重新整理:
mysql> flush privileges;之後使用本機就可以登入,但是後邊必須加IP號#mysql -uyunjisuan -p123123 -h 192.168.29.149; 這就叫在本機上以遠端的方式登入本機。如果ip是127.0.0.1這就是本地登入只能用本機登入本機這個127.0.0.1的賬戶。


五,命令解釋:


(1)啟動MySQL資料庫
#cd
#/etc/init.d/mysqld start 啟動指令碼
SUCCESS! 成功
#netstat -anpt | grep :3306 檢視下埠
啟動完畢


(2)登入MySQL資料庫
#which mysql 用mysql命令直接登入或mysql -uroot -p
如果是mysql -h 是指定主機(IP地址)
mysql -p 是指定密碼 沒寫就是沒密碼
mysql -P 是埠,不寫預設就是3306
mysql -u 是指定使用者,不寫就是預設登入本地 如:#mysql -uroot -p 指定使用者是root
ctrl+D 是退出MySQL資料庫。


(3)設定MySQL資料庫的登入密碼
有個命令:
#whcih mysqladmin  MySQL設定密碼命令
#mysqladmin -uroot password '123123' 針對root使用者設定密碼 123123
%: 任意長度的任意字元
_  :任意單個字元。



Show databases; 檢視所有資料庫
Create database yunjisuan; 建立一個叫yunjisuan的庫
drop database yujisuan; 刪除一個叫yunjisuan的庫
use yunjisuan; 我先把物件設定成yunjisuan這個小庫 use使用
#show tables; tables表 show看
#describe uses; describe(低斯葛ruai波)描述, uses表名,查看錶裡的表結構。
#select * from uses; 檢視星號就是所有欄位的表,表名是user
#insrrt into uses values ('xiaohong','66666') 增加表名是uses的表的內容,裡邊有兩個欄位,姓名和密碼,
#insrrt into uses (user_name)values ('baibai') 這回我給指定了一個欄位, 有幾個欄位就寫幾個對應的值。我指定了一個,就寫入一個的值。
#update uses set user_passwd='99999' where user_name='baibai'; 我想改uses這個表的user_passwd欄位為99999,我指定的是user_name這個主鍵欄位的baibai這行。
#delete from uses; 這是把uses表裡的內容都清空。
#delete from uses where user_name='baibai'; 這是把uses表裡指定的user_name欄位的baiabi刪除。因為user_name欄位是主鍵,所以這一行包括user_passwd 欄位也刪除了。
#select * from yunjisuan.uses; 檢視星號就是所有欄位的表,yunjisuan這個庫下邊的uses表,這樣檢視也可以,省的use yunjisuan選物件了
#select user,host from mysql.user; 檢視user,host這個欄位內容,這個欄位在musql庫裡的user表中。 這也是檢視我虛擬機器使用者資訊。
#insert into yunjisuan.uses values ('xiaohong','11111'); 這是增加,就是沒有use 選物件而直接跨過庫來插入,跨過yunjisuan這個庫,進入到它的表uses中,插入兩個欄位內容。
#update yunjisuan.uses set user_passwd='333333' where user_name='baibai'; 更改內容跨過yunjisuan庫,更改它的表uses的user_passwd這個欄位的內容。但是指定的是user_name這個欄位下的baibai這一行要不指定這一行,表裡user_passwd欄位的內容都會更改。
mysql> flush privileges;  重新整理立即生效的意思,這樣insrrt新增的內容就會寫到硬盤裡。
mysql> select user(); 檢視我當前所處的賬號。
mysql> show grants; 檢視當前登入使用者許可權。
mysql> show grants for 'yunjisuan'@'192.168.29.149'; 這是檢視yunjisuan這個賬戶的許可權。檢視別人的使用者許可權
mysql>revoke select on mysql.user from 'yunjisuan'@'192.168.29.149'; 這是刪除許可權,刪除select讀許可權。