如果你習慣用 windows 的數據庫,也就是在 圖形界面上操作數據庫的話,那麼當你在命令上 操作 mysql 將會感到陌生,其實只要你掌握了一些基本命令,還有經常使用,熟練起來了, 將會相當方便,而且很快速。
好了,現在開始 帶一些剛接觸mysql 的朋友 進入mysql 的世界吧。 呵呵。
查看當前數據庫的版本,因為有些命令在不同版本中 用法有可能不一樣,
注意 -V 是大寫字母V
[root@localhost ~]# mysqladmin -V
mysqladmin Ver 8.42 Distrib 6.0.4-alpha, for redhat-linux-gnu on i686
這樣就知道我當前使用的 mysql 版本是 6.0.4-alpha
----------------------
當你安裝完數據庫後,當然就是要進入mysql 進行測試一番。
首先登陸 退出命令 這個應該是最基本的了。
mysql -uroot -p123
這個表示用戶名為 root 密碼為123
出現 mysql> 這個符號,表示你成功登陸進去了
然後你就可以輸入一些命令讓 mysql 顯示相關的信息出來,例如看我下面操作
---------------------------------
查看數據庫列表
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| 17rumen |
| mysql |
| test |
+--------------------+
4 rows in set (0.01 sec)
這樣上面就顯示出 4個數據庫了。
我忘記說了, 當你輸入mysql 命令後, 要加入 ; 分號,說明 這條命令接觸了
然後按一下 回車就可以了。
------------------------------
當你想要進入 某一個數據庫的 那麼就使用下面命令:
use 數據庫名字;
例如 use mysql; 表示進入mysql這個數據庫
進入數據庫後,就可以查看 當前數據庫的數據表。
show tables;
就會把 當前數據庫的所有表列出來;
---------------------------------
然後就可以 查看一些表的內容,也就是 字段的內容
例如:
select User,Password from user;
這是查看mysql 數據庫的用戶名和密碼,當然這密碼是加密後的
=====================
別看這些步驟有些復雜,其實很好理解,一層層進去查看而已
你要查看數據表,當然要進入 某個數據庫,
當你要查看表的數據的時候 就要進入某張表。
進入後 要 一步步退出來嗎 ?
這個當然不用, 例如 你隨時可以進入 其他數據庫
例如我現在當前位置在 mysql 數據庫的某一張表上,
我可以直接 use 17rumen; 直接進入到 17rumen 這個數據庫上去。
是吧, 很方便的。
========================================
然後說一下 跨數據庫查詢, 也就是我當前在一個數據庫 查看另外一個數據庫上的
信息內容。
我當前在 mysql 這個數據庫上, 要查 17rumen 這個數據庫上的 news 表內容
如何呢?
select * from 17rumen.news;
這樣就可以了, 不需要在17rumen 數據庫上進行操作。
看到了吧,這樣就可以很方便進行操作,剩下很多時間。
=================================
還有就是 查看某一張表的 結構,包括字段名,是否允許為Null,主鍵,外鍵,默認值,等等。
desc user;
就是查看 user 表的結構, Field 表示字段名 ,Type 表示 字段的數據類型
---------------
如果你想要看某個字段的詳細信息
例如剛才 desc user; 只是查看表的結構
下面接著查看 user 表的 Host 字段的信息
desc user Host;
就把 Host 字段顯示出來
desc user Host;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| Host | char(60) | NO | PRI | | |
+-------+----------+------+-----+---------+-------+
1 row in set (0.00 sec)
看到不允許為空, Key 為 PRI 表示 這個就是 主鍵來的。
================
一些基本常用命令就 到這裡, 當然還有 退出命令 就是 exit; 就可以了
以後還會為大家介紹 創建數據庫 表 查詢 刪除 添加 等等的操作。 謝謝觀看
當大家剛剛裝好mysql數據庫後,會有一個默認本地用戶root,密碼在你裝數據庫期間會提示你輸入一個密碼,那個就是你的root密碼雖然別的用戶也可以登錄到數據庫但是權限少的可憐裝好數據庫後我們可以通過注釋掉配置文件/etc/mysql/my.cnf中的bind-address = 127.0.0.1這行來使mysql可以遠程登錄(然後重啟有效)
在命令行模式下修改用戶密碼的方式:
mysqladmin -u root -p password "新的密碼";(不過在你修改密碼時,會讓你先輸入你的舊密碼)
登錄本地mysql數據庫 ”mysql -u root -p “回車它會讓你輸入密碼,輸入正確密碼就可以登錄了
連接到遠程主機上的MYSQL。假設遠程主機的IP為:110.110.110.110,用戶名為root,密碼為abcd123。則鍵入以下命令:
mysql -h110.110.110.110 -uroot -pabcd123
(注:u與root可以不用加空格,其它也一樣)
登錄mysql數據庫後使用的命令:(注意寫完命令後要加個分號來)命令字母可以不區分大小寫
顯示當前使用者的名字:select user();
查看所有的用戶:select user,host,password from mysql.user;
顯示當前用戶的權限:show grants for 用戶名@localhost;(當然用戶必須是在數據庫中已經建立的用戶,如果不是會顯示錯誤)
創建新用戶: create user username identified by ‘password'(此用戶沒有任何權限或沒有任何身份);還可以這樣建新用戶: grant select,insert,update,delete on *.* to test2@localhost identified by 'abc‘;
刪除新用戶:Delete FROM mysql.user Where User='test' and Host='localhost';
刷新系統權限表:flush privileges;
選擇數據庫:use databasename;然後可以對數據庫進行操作;
創建數據庫:create database databasename;
刪除數據庫:drop database databasename;
查看表:show tables;
修改表名:alter table tablename rename newtablename;
查看表的結構:desc tablename;或者是 show columns from tablename;
刪除表:delete from tablename;或者truncate tablename; delete的效果是將mysql表中所有記錄一條一條刪除到刪完,而truncate相當於保留mysql表的結構,重新創建了這個表,所有的狀態都相當於新表,因此效率上truncate比delete快,並且不可恢復數據 。
1) 創建一張學生表,包含以下信息,學號,姓名,年齡,性別,家庭住址,聯系電話
create table student
(
學號 int,
姓名 varchar(10),
年齡 int,
性別 varchar(4),
家庭住址 varchar(50),
聯系電話 varchar(11)
);(注意裡面的英文、數字和括號用英文格式書寫)
2) 修改學生表的結構,添加一列信息,學歷
alter table student add column 學歷 varchar(6);
alter table test modify 性別 char(10) --修改表列類型
3) 修改學生表的結構,刪除一列信息,家庭住址
alter table student drop column 家庭住址;//注意此處用drop而非delete
4) 向學生表添加如下信息:
學號 姓名年齡性別聯系電話學歷
1A22男123456小學
2B21男119中學
3C23男110高中
4D18女114大學
insert into student (學號,姓名,年齡,性別,聯系電話,學歷) values(1,"A",22,"男","123456","小學");(當插入的中文不能識別時,可用nchar()或nvarchar(),改用unicode編碼而不用ASCii編碼)
insert into student (學號,姓名,年齡,性別,聯系電話,學歷) values(1,"B",21,"男","119","中學");
insert into student (學號,姓名,年齡,性別,聯系電話,學歷) values(1,"C",23,"男","123456","高中");
insert into student (學號,姓名,年齡,性別,聯系電話,學歷) values(1,"D",23,"女","114","大學");
5) 修改學生表的數據,將電話號碼以11開頭的學員的學歷改為“大專”
update student set 學歷="大專" where 聯系電話 like "11%";
6) 刪除學生表的數據,姓名以C開頭,性別為‘男'的記錄刪除
delete from student where 姓名 like "C" and 性別="男";
7) 查詢學生表的數據,將所有年齡小於22歲的,學歷為“大專”的,學生的姓名和學號示出來
select 姓名,學號 from student where 年齡<22 and 學歷="大專";
8) 查詢學生表的數據,查詢所有信息,列出前25%的記錄
select top 25 percent * from student ; ????
select * from student limit 25%;???? 這條有問題,在sql 2000中應該是select top 25 percent * from student ;
9) 查詢出所有學生的姓名,性別,年齡降序排列
select 姓名,性別,年齡 from student order by 年齡 desc;
10) 按照性別分組查詢所有的平均年齡
select avg(年齡) as 平均年齡 from student group by 性別;
select avg(年齡) from student group by 性別;
select avg(年齡) 平均年齡 from student group by 性別;
3) 說出以下聚合數的含義:avg ,sum ,max ,min , count ,count(*)
AVG:求平均值
SUM:求和
MAX:求最大值
MIN:求最小值
COUNT(*):返回所有行數
COUNT返回滿足指定條件的記錄值