mySQL常用命令、語句
mysql安裝(安裝版)
* mysql預設埠:3306
* mysql安裝預設賬號:root
* %mysql%/my.ini,mysql資料庫的配置檔案
* 埠號:port=3306
* mysql預設字符集:default-character-set=utf8* mysql資料庫目錄:datadir="C:/java/MySQL/MySQL Server 5.5/Data/"
* mysql安裝預設賬號:root
* %mysql%/my.ini,mysql資料庫的配置檔案
* 埠號:port=3306
* mysql預設字符集:default-character-set=utf8
* mysql資料庫目錄:datadir="C:/java/MySQL/MySQL Server 5.5/Data/"
* mysql安裝預設賬號:root
* %mysql%/my.ini,mysql資料庫的配置檔案
* 埠號:port=3306
* mysql預設字符集:default-character-set=utf8
* mysql資料庫目錄:datadir="C:/java/MySQL/MySQL Server 5.5/Data/"
mysql啟動
* windows服務中:啟動/停止
* cmd > mysqld --console
mysql登入
* 格式1:cmd > mysql -h主機域名/IP -u賬號 -p[密碼]
* 格式2:cmd > mysql --host=主機域名/IP --user=賬號 --password[=密碼]
* mysql幫助:cmd > mysql -?
* 訪問指定主機的mysql伺服器: cmd > mysql -h192.168.1.204 -uroot -p1234
mysql綠化版
* 解壓,複製ini檔案my-small.ini,將名稱修改為my.ini
* 配置系統變數path
* 註冊與移除
* 將mysql註冊為系統服務:cmd > C:\java\mysql-5.5.27-win32\bin>mysqld --install* 注意:必須將當前目錄切換為%mysql%/bin
* 將mysql移除系統服務:cmd > C:\java\mysql-5.5.27-win32\bin>mysqld --remove
啟動與停止(綠化版)
* 使用windows命令啟動:cmd > net start mysql
* 注意:win7,啟動不能成功,需要以“管理員身份”執行cmd
* 使用windows命令停止:cmd > net stop mysql
* 綠化版root賬號沒有密碼
* cmd > mysql -uroot -p 回車兩次
常用的顯示命令
* 顯示當前資料庫伺服器中的資料庫列表,mysql> show databases;
* 注意:%mysql%/data/mysql資料庫,mysql的核心資料庫,資料庫的個數,表的個數,使用者等
* 使用資料庫:mysql> use 庫名;
* 顯示資料庫中的資料表:mysql>show tables;
* 顯示當前所使用的資料庫名稱: mysql> select database(); ,結果為null說明沒有選擇資料庫
* 顯示當前資料庫的狀態 : mysql> status;
* 顯示當前資料庫中某表的表結構 (DESCRIBE ): mysql> desc user;
* 顯示所支援的字符集: show character set;
* 顯示系統變數:mysql> show variables;
* 顯示執行內容系統變數,顯示與字符集有關的系統變數:mysql> show variables like '%char%';
mysql賬號管理
* 查詢賬號:mysql > select * from user; 或 mysql > select host,user,password from user;
* 建立賬號:mysql > create user 賬號 [ identified by '密碼']
* 賬號:
* 格式:'user'@'host'
* 預設賬號,'賬號',表示建立一個賬號,host欄位為%,%表示允許所有人訪問
* 例如:'itcast'@'192.168.1.100',只允許指定IP的主機進行訪問
* 修改密碼:set password for 賬號 = password('密碼');
* 刪除賬號:drop user 賬號;
* 授權:grant 許可權 on 資料庫.表 to 賬號 [with grant option]
* 許可權:all表示所有許可權
* 資料庫.表 : *.* 所有資料庫的所有表
* with grant option,當前賬號是否具有將自己的許可權授予其他人
root賬號密碼丟失
* 使用跳過許可權驗證啟動mysql服務:cmd > mysqld --console --skip-grant-tables
* 修改密碼,只能使用update語句
mysql> update user set password = password('123456') where host='localhost' and user='root';
mysql異常
* 密碼不正確
* ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
* 沒有使用資料庫
* ERROR 1046 (3D000): No database selected
* 沒有許可權
* ERROR 1044 (42000): Access denied for user 'itcast'@'%' to database 'mysql'
* 如果mysql啟動中,將移除服務時
* Failed to remove the service because the service is running
* Stop the service and try again
* 使用net命令啟動錯誤
* C:\Documents and Settings\Administrator>net start mysql
* 發生系統錯誤 3。
* 系統找不到指定的路徑。
* mysql伺服器沒有啟動
* ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
* 表必須具有一個欄位
* ERROR 1113 (42000): A table must have at least 1 column
中文亂碼
* 在my.ini檔案沒有設定預設編碼
* 在建立資料庫時,指定資料的編碼
* 表的建立,預設使用資料庫的編碼
* character_set_database | utf8
* 在my.ini檔案設定預設編碼
* 查詢當前資料庫設定的編碼:mysql > show variables like '%char%';
* 結果:
character_set_client | gbk --客戶端
character_set_connection | gbk --連結
character_set_results | gbk --返回結果
* 如果3項為UTF-8,使用cmd(預設編碼GBK)進行操作,將出現亂碼
* 解決辦法
* 設定編碼:set names gbk;
新增主鍵:
1.建立表,定義欄位時,給欄位新增約束mySQL 語法介紹
create table a(
id varchar(32) primary key,
);
2.建立表,定義欄位之後,在約束區域新增
create table b(
id varchar(32),
constraint primary key(id)
);
3.建立表之後,修改表結構,設定主鍵
create table c(
id varchar(32),
);
alter table primarykey_3 add constraint primary key(id);
* 結構:建立create,修改alter,刪除drop
* 資料:錄入insert,更新update,刪除delete
* 查詢資料:select
DDL: 資料定義語言
* 資料庫databaseDML:資料操縱語言
* 建立資料庫:mysql > create database 資料庫名稱;
* mysql > create database 名稱 character set 字符集; -- 注意:UTF-8書寫為UTF8
* 刪除資料庫:mysql > drop database 資料庫名稱
* 表table
* 建立表:mysql > create table 表名(欄位的描述);
* 顯示當前表的sql語句:mysql > show create table 表名;
* 修改表名:mysql > alter table 表名 rename 新名稱;
* 刪除表:mysql > drop table 表名;
* 欄位column
* 新增欄位:mysql > alter table 表名 add column 欄位描述
* 修改欄位:
* 修改欄位名稱:mysql> alter table 表名 change 舊欄位名 新欄位名+型別;
* 修改欄位型別:mysql> alter table 表名 modify column 欄位名稱 型別;
* 刪除欄位:mysql > alter table 表名 drop column 欄位名稱
* 插入資料:mysql > insert into 表名[(欄位名稱,...)] values(欄位值,...)* 修改資料:mysql > update 表名 set 欄位名稱 = 欄位值 , 欄位名稱 = 欄位值 ... [ where 欄位名稱=欄位值]
* 刪除資料:mysql > delete from 表名 [ where 條件]
DQL: 資料查詢語言
* 查詢所有
sql > select * from users;
mysql > select id,firstname,secondname,age,count from users;
* 查詢部分資訊
mysql > select id,age from users;
* 查詢使用者編號、姓名,及格(60)
mysql > select id,firstname,secondname,count from users;
mysql > select id,concat(firstname,secondname),count from users;
mysql > select id,concat(firstname,secondname),count - 60 from users;
* 修改上面查詢顯示欄位名稱,用"姓名"表示姓名,用"及格"表示及格
* 別名格式:欄位 [AS] 別名
mysql > select id,concat(firstname,secondname) as 姓名,count - 60 及格 from users;
* 注意:別名名稱中不能包含空格,如果必須使用空格,需要將別名使用引號括住
mysql > select id,concat(firstname,secondname) as '姓 名',count - 60 '及 格' from users;
資料庫的備份
cmd > mysqldump -uroot -p1234 ebookstore > d:/1.sql
格式:mysqldump -u賬號 -p密碼 資料庫名稱 > 位置
資料庫的還原
* 注意:必須手動建立資料庫
cmd > mysql -uroot -p1234 back < d:/1.sql
格式:mysql -u賬號 -p密碼 資料庫名稱 < 位置