<資料庫>MySQL的基本操作
阿新 • • 發佈:2019-01-12
1.使用者管理 建立使用者: create user '使用者名稱'@'IP地址' identified by '密碼';(IP地址:%代表所有) 使用者登入: mysql -u 使用者名稱 -p(enter之後輸入密碼) 剛安裝可能出現問題:無論怎麼都沒法登入新建的賬戶,提示如下: ERROR 1045 (28000): Access denied for user '123'@'localhost' (using password: YES) 原因:mysql的認證規則導則,匿名使用者影響新使用者的認證 解決辦法:刪除匿名使用者'root'@'localhosr'和''@'localhost' 刪除使用者: drop user '使用者名稱'@'IP地址'; 修改使用者名稱: update user set user='新使用者名稱' where user='老使用者名稱'; 修改密碼: set password for '使用者名稱'@'IP地址' = password('新密碼'); 可能出現的問題:輸入了修改的命令,但是一直提示: Can't find any matching row in the user table 原因:沒有及時更新許可權(或使用者名稱) 解決辦法:先輸入命令:flush privileges;(重新整理許可權)
2.許可權管理 檢視許可權: show grants for '使用者名稱'@'IP地址'; 授權: grant 許可權 on 資料庫.表 to '使用者名稱'@'IP地址';(all privileges除了grant以外的所有許可權) 取消許可權: revoke 許可權 on 資料庫.表 from '使用者名稱'@'IP地址'; 重新整理許可權: flush privileges; 3.資料庫操作 建立資料庫: create database 資料庫名字 default charset utf8; (建立資料庫X預設編碼utf-8) 刪除資料庫: drop database 資料庫名字; (刪除資料庫X) 修改資料庫: 沒有這種操作,硬要寫就是----先刪除原來的,在建立新的資料庫 查詢資料庫: show databases; (顯示所有資料庫) 使用資料庫: use 資料庫名字;
4.資料表操作: 建立表: create table 表名( 列名 型別 是否為空 預設值, (例:name char(12) not null default libai,) 列名 型別 是否為空 自增列, (例:ID int not null auto_increment primary key,)(一個表只有一個自增列,主鍵:約束(不重複,不為空),加速查詢) )engine=innodb default charset=utf8; (引擎和編碼格式) 刪除表: drop table 表名; 清空表: delete from 表名;(自增列還是接著原來的) truncate table 表名;(自增列從1開始) 修改表: 修改表名: alter table 舊錶名 rename 新表名; 新增列: alter table 表名 add 列名 型別; 刪除列: alter table 表名 drop column 列名: (drop column:下拉列) 修改列名: alter table 表名 change 原列名 新列名 新型別; 新增主鍵: alter table 表名 add primary key(列名); 刪除主鍵: alter table 表名 drop primary key; 新增外來鍵: alter table 從表 add constraint foreign key 從表(外來鍵欄位) references 主表(主鍵欄位); 刪除外來鍵: alter table 表名 drop foreign key 外來鍵名稱; 修改預設值: alter table 表名 alter column 列名 set default 新預設值; 刪除預設值: alter table 表名 alter column 列名 drop default; 查詢所有表名: show tables;
5.資料表內容操作: 插入資料: insert into 表名(列名1,列名2...) values(列值1,列值2...); 刪除資料: delete from 表名; delete from 表名 where 條件; 修改資料: update 表名 set 列名=列值; update 表名 set 列名=列值 where 條件; 查詢資料: select * from 表名; select * from 表名 where 條件; select 列名1,列名2, from 表名 where 條件;