1. 程式人生 > >mySQL常用命令、語句

mySQL常用命令、語句

mysql安裝(安裝版)

* mysql預設埠:3306
 * mysql安裝預設賬號:root
 * %mysql%/my.inimysql資料庫的配置檔案
 * 埠號:port=3306
 * mysql預設字符集:default-character-set=utf8

 * mysql資料庫目錄:datadir="C:/java/MySQL/MySQL Server 5.5/Data/"

 * mysql安裝預設賬號:root

 * %mysql%/my.inimysql資料庫的配置檔案

 * 埠號:port=3306

 * mysql預設字符集:default-character-set=utf8

 * mysql
資料庫目錄:datadir="C:/java/MySQL/MySQL Server 5.5/Data/"
 * mysql安裝預設賬號:root
 * %mysql%/my.inimysql資料庫的配置檔案
 * 埠號:port=3306

 * mysql預設字符集:default-character-set=utf8

 * mysql資料庫目錄:datadir="C:/java/MySQL/MySQL Server 5.5/Data/"

mysql啟動

 * windows服務中:啟動/停止
 * cmd > mysqld --console
mysql登入
 * 格式1cmd > mysql -h主機域名/IP  -u
賬號  -p[密碼]
 * 格式2cmd > 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.建立表,定義欄位時,給欄位新增約束
 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);

mySQL  語法介紹
  * 結構:建立create,修改alter,刪除drop

 * 資料:錄入insert,更新update,刪除delete

 * 查詢資料:select

DDL: 資料定義語言

 * 資料庫database
 * 建立資料庫: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 欄位名稱

DML:資料操縱語言
 * 插入資料: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密碼    資料庫名稱 位置