MySQL相關知識

轉載連接:https://blog.csdn.net/cool_easy/article/details/43231123

Java數據類型和MySql數據類型對應表

java mysql 數據類型對照

類型名稱 顯示長度 數據庫類型 JAVA類型 JDBC類型索引(int) 描述
           
VARCHAR L+N VARCHAR java.lang.String 12  
CHAR N CHAR java.lang.String 1  
BLOB L+N BLOB java.lang.byte[] -4  
TEXT 65535 VARCHAR java.lang.String -1  
           
INTEGER 4 INTEGER UNSIGNED java.lang.Long 4  
TINYINT 3 TINYINT UNSIGNED java.lang.Integer -6  
SMALLINT 5 SMALLINT UNSIGNED java.lang.Integer 5  
MEDIUMINT 8 MEDIUMINT UNSIGNED java.lang.Integer 4  
BIT 1 BIT java.lang.Boolean -7  
BIGINT 20 BIGINT UNSIGNED java.math.BigInteger -5  
FLOAT 4+8 FLOAT java.lang.Float 7  
DOUBLE 22 DOUBLE java.lang.Double 8  
DECIMAL 11 DECIMAL java.math.BigDecimal 3  
BOOLEAN 1 同TINYINT      
           
ID 11 PK (INTEGER UNSIGNED) java.lang.Long 4  
           
DATE 10 DATE java.sql.Date 91  
TIME 8 TIME java.sql.Time 92  
DATETIME 19 DATETIME java.sql.Timestamp 93  
TIMESTAMP 19 TIMESTAMP java.sql.Timestamp 93  
YEAR 4 YEAR java.sql.Date 91


對於bolb,通常用於對圖片的數據庫存儲,原理是把圖片打成二進制,而後進行的一種存儲方式,在java中對應byte[]數組。

對於boolen類型,在mysql數據庫中,我的認爲用int類型代替較好,對bit操做不是很方便,尤爲是在具備web頁面開發的項目中,表示0/1,對應java類型的Integer較好。
 
 

MySQL 數據庫經常使用命令php

 

一、MySQL經常使用命令html

create database name; 建立數據庫java

use databasename; 選擇數據庫mysql

drop database name 直接刪除數據庫,不提醒web

show tables; 顯示錶sql

describe tablename; 表的詳細描述shell

select 中加上distinct去除重複字段數據庫

mysqladmin drop databasename 刪除數據庫前,有提示。windows

顯示當前mysql版本和當前日期數組

select version(),current_date;

 

二、修改mysql中root的密碼:

shell>mysql -u root -p

mysql> update user set password=password(」xueok654123″) where user=’root’;

mysql> flush privileges //刷新數據庫

mysql>use dbname; 打開數據庫:

mysql>show databases; 顯示全部數據庫

mysql>show tables; 顯示數據庫mysql中全部的表:先use mysql;而後

mysql>describe user; 顯示錶mysql數據庫中user表的列信息);

 

三、grant

建立一個能夠從任何地方鏈接服務器的一個徹底的超級用戶,可是必須使用一個口令something作這個

mysql> grant all privileges on *.* to user@localhost identified by ’something’ with

增長新用戶

格式:grant select on 數據庫.* to 用戶名@登陸主機 identified by 「密碼」

GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY ’something’ WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON *.* TO monty@」%」 IDENTIFIED BY ’something’ WITH GRANT OPTION;

刪除受權:

mysql> revoke all privileges on *.* from root@」%」;

mysql> delete from user where user=」root」 and host=」%」;

mysql> flush privileges;

建立一個用戶custom在特定客戶端it363.com登陸,可訪問特定數據庫fangchandb

mysql >grant select, insert, update, delete, create,drop on fangchandb.* to custom@ it363.com identified by ‘ passwd’

重命名錶:

mysql > alter table t1 rename t2;

 

四、mysqldump

備份數據庫

shell> mysqldump -h host -u root -p dbname >dbname_backup.sql

恢復數據庫

shell> mysqladmin -h myhost -u root -p create dbname

shell> mysqldump -h host -u root -p dbname < dbname_backup.sql

若是隻想卸出建表指令,則命令以下:

shell> mysqladmin -u root -p -d databasename > a.sql

若是隻想卸出插入數據的sql命令,而不須要建表命令,則命令以下:

shell> mysqladmin -u root -p -t databasename > a.sql

那麼若是我只想要數據,而不想要什麼sql命令時,應該如何操做呢?

   mysqldump -T./ phptest driver

其中,只有指定了-T參數才能夠卸出純文本文件,表示卸出數據的目錄,./表示當前目錄,即與mysqldump同一目錄。若是不指定driver 表,則將卸出整個數據庫的數據。每一個表會生成兩個文件,一個爲.sql文件,包含建表執行。另外一個爲.txt文件,只包含數據,且沒有sql指令。

 

五、可將查詢存儲在一個文件中並告訴mysql從文件中讀取查詢而不是等待鍵盤輸入。可利用外殼程序鍵入重定向實用程序來完成這項工做。

例如,若是在文件my_file.sql 中存放有查

詢,可以下執行這些查詢:

例如,若是您想將建表語句提早寫在sql.txt中:

mysql > mysql -h myhost -u root -p database < sql.txt

 

 

 轉 mysql命令

 

 

       一 . 安裝與配置MYSQL 
  二 . 經常使用mysql命令行命令 
  1 .mysql的啓動與中止 
  啓動MYSQL服務 net start mysql 
  中止MYSQL服務 net stop mysql


  2 . netstat –na | findstr 3306 查看被監聽的端口 , findstr用於查找後面的端口是否存在


  3 . 在命令行中登錄MYSQL控制檯 , 即便用 MYSQL COMMEND LINE TOOL 
   語法格式 mysql –user=root –password=123456 db_name 
   或 mysql –u root –p123456 db_name


  4 . 進入MYSQL命令行工具後 , 使用status; 或/s 查看運行環境信息


  5 . 切換鏈接數據庫的語法 : use new_dbname; 
     
  6 . 顯示全部數據庫 : show databases; 
   
  7 . 顯示數據庫中的全部表 : show tables; 
   
  8 . 顯示某個表建立時的所有信息 : show create table table_name; 
   
  9 . 查看錶的具體屬性信息及表中各字段的描述 
   Describe table_name; 縮寫形式 : desc table_name;


  三 。 MySql中的SQL語句 
  1 . 數據庫建立 : Create database db_name; 
  數據庫刪除 : Drop database db_name; 刪除時可先判斷是否存在,寫成 : drop database if exits db_name 
   
  2 . 建表 : 建立數據表的語法 : create table table_name (字段1 數據類型 , 字段2 數據類型); 
   例 : create table mytable (id int , username char(20)); 
   刪表 : drop table table_name; 例 : drop table mytable; 
   
  8 . 添加數據 : Insert into 表名 [(字段1 , 字段2 , ….)] values (值1 , 值2 , …..); 
  若是向表中的每一個字段都插入一個值,那麼前面 [ ] 括號內字段名可寫也可不寫 
   例 : insert into mytable (id,username) values (1,’zhangsan’); 
   
  9 . 查詢 : 查詢全部數據 : select * from table_name; 
  查詢指定字段的數據 : select 字段1 , 字段2 from table_name; 
  例 : select id,username from mytable where id=1 order by desc;多表查詢語句------------參照第17條實例 
   
  10 . 更新指定數據 , 更新某一個字段的數據(注意,不是更新字段的名字) 
  Update table_name set 字段名=’新值’ [, 字段2 =’新值’ , …..][where id=id_num] [order by 字段 順序] 
  例 : update mytable set username=’lisi’ where id=1; 
  Order語句是查詢的順序 , 如 : order by id desc(或asc) , 順序有兩種 : desc倒序(100—1,即從最新數據日後查詢),asc(從1-100),Where和order語句也可用於查詢select 與刪除delete 
   
  11 . 刪除表中的信息 : 
   刪除整個表中的信息 : delete from table_name; 
   刪除表中指定條件的語句 : delete from table_name where 條件語句 ; 條件語句如 : id=3; 
   
  12 . 建立數據庫用戶 
  一次能夠建立多個數據庫用戶如: 
  CREATE USER username1 identified BY ‘password’ , username2 IDENTIFIED BY ‘password’…. 
   
  13 . 用戶的權限控制:grant 
   庫,表級的權限控制 : 將某個庫中的某個表的控制權賦予某個用戶 
   Grant all ON db_name.table_name TO user_name [ indentified by ‘password’ ]; 
   
  14 . 表結構的修改 
  (1)增長一個字段格式: 
  alter table table_name add column (字段名 字段類型); ----此方法帶括號 
  (2)指定字段插入的位置: 
  alter table table_name add column 字段名 字段類型 after 某字段; 
  刪除一個字段: 
  alter table table_name drop字段名; 
  (3)修改字段名稱/類型 
  alter table table_name change 舊字段名 新字段名 新字段的類型; 
  (4)改表的名字 
  alter table table_name rename to new_table_name; 
  (5)一次性清空表中的全部數據 
  truncate table table_name; 此方法也會使表中的取號器(ID)從1開始 
   
  15 . 增長主鍵,外鍵,約束,索引。。。。(使用方法見17實例) 
  ① 約束(主鍵Primary key、惟一性Unique、非空Not Null) 
  ② 自動增張 auto_increment 
  ③外鍵Foreign key-----與reference table_name(col_name列名)配合使用,建表時單獨使用 
  ④ 刪除多個表中有關聯的數據----設置foreign key 爲set null ---具體設置參考幫助文檔 
   
  16 . 查看數據庫當前引擎 
   SHOW CREATE TABLE table_name; 
   修改數據庫引擎 
   ALTER TABLE table_name ENGINE=MyISAM | InnoDB; 
   
  17 . SQL語句運用實例: 
  --1 建users表 
  create table users (id int primary key auto_increment,nikename varchar(20) not null unique,password varchar(100) not null,address varchar(200), reg_date timestamp not null default CURRENT_TIMESTAMP); 
   
  --2 建articles表,在建表時設置外鍵 
  create table articles (id int primary key auto_increment,content longtext not null,userid int,constraint foreign key (userid) references users(id) on delete set null); 
   
  ----------------------------------------------------------------------- 
  --2.1 建articles表,建表時不設置外鍵 
   create table articles (id int primary key auto_increment,content longtext not null,userid int); 
  --2.2 給articles表設置外鍵 
   alter table articles add constraint foreign key (userid) references users(id) on delete set null; 
  ------------------------------------------------------------------------ 
   
  --3. 向users表中插入數據,同時插入多條 
  insert into users (id,nikename,password,address) values (1,'lyh1','1234',null),(10,'lyh22','4321','湖北武漢'),(null,'lyh333','5678', '北京海淀'); 
   
  --4. 向article中插入三條數據 
  insert into articles (id,content,userid) values (2,'hahahahahaha',11),(null,'xixixixixix',10),(13,'aiaiaiaiaiaiaiaiaiaiaiaia',1),(14,'hohoahaoaoooooooooo',10); 
   
  --5. 進行多表查詢,選擇users表中ID=10的用戶發佈的全部留言及該用戶的全部信息 
  select articles.id,articles.content,users.* from users,articles where users.id=10 and articles.userid=users.id order by articles.id desc; 
   
  --6. 查看數據庫引擎類型 
  show create table users; 
   
  --7. 修改數據庫引擎類型 
  alter table users engine=MyISAM; ---由於users表中ID被設置成外鍵,執行此句會出錯 
   
  --8. 同表查詢,已知一個條件的狀況下.查詢ID號大於用戶lyh1的ID號的全部用戶 
  select a.id,a.nikename,a.address from users a,users b where b.nikename='lyh1' and a.id>b.id; 
  ------也可寫成 
  select id,nikename,address from users where id>(select id from users where nikename='lyh1'); 
   
  9. 顯示年齡比領導還大的員工: 
  select a.name from users a,users b where a.managerid=b.id and a.age>b.age; 
   
  查詢編號爲2的發帖人: 先查articles表,獲得發帖人的編號,再根據編號查users獲得的用戶名。 
  接着用關聯查詢. 
  select * from articles,users獲得笛卡兒積,再加order by articles.id以便觀察 
   
  使用select * from articles,users where articles.id=2 篩選出2號帖子與每一個用戶的組合記錄 
   
  再使用select * from articles,users where articles.id=2 and articles.userid=users.id選出users.id等於2號帖的發帖人id的記錄. 
   
  只取用戶名:select user where user.id=(select userid from articles where article.id =2) 
   
  找出年齡比小王還大的人:假設小王是28歲,先想找出年齡大於28的人 
  select * from users where age>(select age from users where name='xiaowang'); 
  *****要查詢的記錄須要參照表裏面的其餘記錄: 
  select a.name from users a,users b where b.name='xiaowang' and a.age>b.age 
   
  表裏的每一個用戶都想pk一下.select a.nickname,b.nickname from users a,users b where a.id>b.id ; 
   
  更保險的語句:select a.nickname,b.nickname from (select * from users order by id) a,(se 
  lect * from users order by id) b where a.id>b.id ; 
   
  再查詢某我的發的全部帖子. 
  select b.* from articles a , articles b where a.id=2 and a.userid=b.userid 
   
  說明: 表之間存在着關係,ER概念的解釋,用access中的示例數據庫演示表之間的關係.只有innodb引擎才支持foreign key,mysql的任何引擎目前都不支持check約束。 
  4、字符集出現錯誤解決辦法 
  出現的問題: 
  mysql> update users 
  -> set username='關羽' 
  -> where userid=2; 
  ERROR 1366 (HY000): Incorrect string value: '/xB9/xD8/xD3/xF0' for column 'usern 
  ame' at row 1 
  向表中插入中文字符時,出現錯誤。 
   
  mysql> select * from users; 
  +--------+----------+ 
  | userid | username | 
  +--------+----------+ 
  | 2 | ???? | 
  | 3 | ???? | 
  | 4 | ?í?ù | 
  +--------+----------+ 
  3 rows in set (0.00 sec) 
  表中的中文字符位亂碼。 
  解決辦法: 
  使用命令: 
  mysql> status; 
  -------------- 
  mysql Ver 14.12 Distrib 5.0.45, for Win32 (ia32) 
   
  Connection id: 8 
  Current database: test 
  Current user: root@localhost 
  SSL: Not in use 
  Using delimiter: ; 
  Server version: 5.0.45-community-nt MySQL Community Edition (GPL) 
  Protocol version: 10 
  Connection: localhost via TCP/IP 
  Server characterset: latin1 
  Db characterset: latin1 
  Client characterset: gbk 
  Conn. characterset: gbk 
  TCP port: 3306 
  Uptime: 7 hours 39 min 19 sec 
  Threads: 2 Questions: 174 Slow queries: 0 Opens: 57 Flush tables: 1 Open ta 
  bles: 1 Queries per second avg: 0.006 
  -------------- 
  查看mysql發現Server characterset,Db characterset的字符集設成了latin1,因此出現中文亂碼。 
   
  mysql> show tables; 
  +----------------+ 
  | Tables_in_test | 
  +----------------+ 
  | users | 
  +----------------+ 
  1 row in set (0.00 sec) 
   
  更改表的字符集。 
  mysql> alter table users character set GBK; 
  Query OK, 3 rows affected (0.08 sec) 
  Records: 3 Duplicates: 0 Warnings: 0 
   
  查看錶的結構: 
  mysql> show create users; 
  ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that 
  corresponds to your MySQL server version for the right syntax to use near 'users 
  ' at line 1 
  mysql> show create table users; 
  +-------+----------------------------------------------------------------------- 
  ------------------------------------------------------------------------------+ 
  | Table | Create Table 
  | 
  +-------+----------------------------------------------------------------------- 
  ------------------------------------------------------------------------------+ 
  | users | CREATE TABLE `users` ( 
  `userid` int(11) default NULL, 
  `username` char(20) character set latin1 default NULL 
  ) ENGINE=InnoDB DEFAULT CHARSET=gbk | 
  +-------+----------------------------------------------------------------------- 
  ------------------------------------------------------------------------------+ 
  1 row in set (0.00 sec) 
   
  mysql> desc users; 
  +----------+----------+------+-----+---------+-------+ 
  | Field | Type | Null | Key | Default | Extra | 
  +----------+----------+------+-----+---------+-------+ 
  | userid | int(11) | YES | | NULL | | 
  | username | char(20) | YES | | NULL | | 
  +----------+----------+------+-----+---------+-------+ 
  2 rows in set (0.02 sec) 
   
  這時向表中插入中文而後有錯誤。 
  mysql> insert into users values(88,'中文'); 
  ERROR 1366 (HY000): Incorrect string value: '/xD6/xD0/xCE/xC4' for column 'usern 
  ame' at row 1 
  mysql> insert into users values(88,'中文'); 
  ERROR 1366 (HY000): Incorrect string value: '/xD6/xD0/xCE/xC4' for column 'usern 
  ame' at row 1 
   
  還要更改users表的username的字符集。 
  mysql> alter table users modify username char(20) character set gbk; 
  ERROR 1366 (HY000): Incorrect string value: '/xC0/xEE/xCB/xC4' for column 'usern 
  ame' at row 1 
  mysql> alter table users modify username char(20) character set gbk; 
  ERROR 1366 (HY000): Incorrect string value: '/xC0/xEE/xCB/xC4' for column 'usern 
  ame' at row 1 
   
  由於表中已經有數據,因此更改username字符集的操做沒有成*** 
  清空users表中的數據 
  mysql> truncate table users; 
  Query OK, 3 rows affected (0.01 sec) 
   
  重新更改user表中username的字符集 
  mysql> alter table users modify username char(20) character set gbk; 
  Query OK, 0 rows affected (0.06 sec) 
  Records: 0 Duplicates: 0 Warnings: 0 
   
  這時再插入中文字符,插入成***。 
  mysql> insert into users values(88,'中文'); 
  Query OK, 1 row affected (0.01 sec) 
   
  mysql> select * from users; 
  +--------+----------+ 
  | userid | username | 
  +--------+----------+ 
  | 88 | 中文 | 
  +--------+----------+ 
  1 row in set (0.00 sec) 
  mysql>

 

學習MySQL經常使用操做命令

 

一、啓動MySQL服務器

實際上上篇已講到如何啓動MySQL。兩種方法: 一是用winmysqladmin,若是機器啓動時已自動運行,則可直接進入下一步操做。 二是在DOS方式下運行 d:mysqlbinmysqld

 

二、進入mysql交互操做界面

在DOS方式下,運行: d:mysqlbinmysql

出現: mysql 的提示符,此時已進入mysql的交互操做方式。

若是出現 "ERROR 2003: Can′t connect to MySQL server on ′localhost′ (10061)「,

說明你的MySQL尚未啓動。

 

三、退出MySQL操做界面

在mysql>提示符下輸入quit能夠隨時退出交互操做界面: 
mysql> quit 
Bye 
你也能夠用control-D退出。

 

四、第一條命令

mysql> select version(),current_date(); 
+----------------+-----------------+ 
| version() | current_date() | 
+----------------+-----------------+ 
| 3.23.25a-debug | 2001-05-17 | 
+----------------+-----------------+ 
1 row in set (0.01 sec) 
mysql>


此命令要求mysql服務器告訴你它的版本號和當前日期。嘗試用不一樣大小寫操做上述命令,看結果如何。結果說明mysql命令的大小寫結果是一致的。

練習以下操做:

mysql>Select (20+5)*4; 
mysql>Select (20+5)*4,sin(pi()/3); 
mysql>Select (20+5)*4 AS Result,sin(pi()/3); (AS: 指定假名爲Result) 

 

五、多行語句
    一條命令能夠分紅多行輸入,直到出現分號「;」爲止: 
<ccid_nobr>
<table width="400" border="1" cellspacing="0" cellpadding="2" 
bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center">
<tr>
<td bgcolor="e6e6e6" class="code" style="font-size:9pt">
<pre><ccid_code> mysql> select 
-> USER() 
-> , 
-> now() 
->; 
+--------------------+---------------------+ 
| USER() | now() | 
+--------------------+---------------------+ 
| ODBC@localhost | 2001-05-17 22:59:15 | 
+--------------------+---------------------+ 
1 row in set (0.06 sec) 
mysql>


注意中間的逗號和最後的分號的使用方法。

 

六、一行多命令

輸入以下命令:

mysql> SELECT USER(); SELECT NOW(); 
+------------------+ 
| USER() | 
+------------------+ 
| ODBC@localhost | 
+------------------+ 
1 row in set (0.00 sec)

+---------------------+ 
| NOW() | 
+---------------------+ 
| 2001-05-17 23:06:15 | 
+---------------------+ 
1 row in set (0.00 sec) 
mysql>


注意中間的分號,命令之間用分號隔開。

 

七、顯示當前存在的數據庫

mysql> show databases; 
+----------+ 
| Database | 
+----------+ 
| mysql | 
| test | 
+----------+ 
2 row in set (0.06 sec) 
mysql>


八、選擇數據庫並顯示當前選擇的數據庫

mysql> USE mysql 
Database changed 
mysql> 
(USE 和 QUIT 命令不須要分號結束。) 
mysql> select database(); 
+---------------+ 
| database() | 
+---------------+ 
| mysql | 
+---------------+ 
1 row in set (0.00 sec)

九、顯示當前數據庫中存在的表 
mysql> SHOW TABLES;

 

十、顯示錶(db)的內容 
mysql>select * from db;

 

十一、命令的取消

當命令輸入錯誤而又沒法改變(多行語句情形)時,只要在分號出現前就能夠用 c來取消該條命令

mysql> select 
-> user() 
-> c 
mysql>

這是一些最經常使用的最基本的操做命令,經過屢次練習就能夠緊緊掌捂了

 

==========================================================================

 

mysql命令

 

測試環境:mysql 5.0.45
【注:能夠在mysql中經過mysql> SELECT VERSION();來查看數據庫版本】
整理:leo


1、鏈接MYSQL。
格式: mysql -h主機地址 -u用戶名 -p用戶密碼


一、鏈接到本機上的MYSQL。
首先打開DOS窗口,而後進入目錄mysql/bin,再鍵入命令mysql -u root -p,回車後提示你輸密碼.注意用戶名前能夠有空格也能夠沒有空格,可是密碼前必須沒有空格,不然讓你從新輸入密碼.
若是剛安裝好MYSQL,超級用戶root是沒有密碼的,故直接回車便可進入到MYSQL中了,MYSQL的提示符是: mysql>
二、鏈接到遠程主機上的MYSQL。假設遠程主機的IP爲:110.110.110.110,用戶名爲root,密碼爲abcd123。則鍵入如下命令:
mysql -h110.110.110.110 -u root -p 123; (注:u與root之間能夠不用加空格,其它也同樣)
三、退出MYSQL命令: exit (回車)


2、修改密碼。
格式:mysqladmin -u用戶名 -p舊密碼 password 新密碼
一、給root加個密碼ab12。首先在DOS下進入目錄mysql/bin,而後鍵入如下命令
mysqladmin -u root -password ab12
注:由於開始時root沒有密碼,因此-p舊密碼一項就能夠省略了。
二、再將root的密碼改成djg345。
mysqladmin -u root -p ab12 password djg345

3、增長新用戶。
(注意:和上面不一樣,下面的由於是MYSQL環境中的命令,因此後面都帶一個分號做爲命令結束符)
格式:grant select on 數據庫.* to 用戶名@登陸主機 identified by 「密碼」
一、增長一個用戶test1密碼爲abc,讓他能夠在任何主機上登陸,並對全部數據庫有查詢、插入、修改、刪除的權限。首先用root用戶連入MYSQL,而後鍵入如下命令:
grant select,insert,update,delete on *.* to [email=test1@」%]test1@」%[/email]」 Identified by 「abc」;
但增長的用戶是十分危險的,你想如某我的知道test1的密碼,那麼他就能夠在internet上的任何一臺電腦上登陸你的mysql數據庫並對你的數據能夠隨心所欲了,解決辦法見2。


二、增長一個用戶test2密碼爲abc,讓他只能夠在localhost上登陸,並能夠對數據庫mydb進行查詢、插入、修改、刪除的操做(localhost指本地主機,即MYSQL數據庫所在的那臺主機),
這樣用戶即便用知道test2的密碼,他也沒法從internet上直接訪問數據庫,只能經過MYSQL主機上的web頁來訪問了。
grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by 「abc」;
若是你不想test2有密碼,能夠再打一個命令將密碼消掉。
grant select,insert,update,delete on mydb.* to [email=test2@localhost]test2@localhost[/email] identified by 「」;
下篇我是MYSQL中有關數據庫方面的操做。注意:你必須首先登陸到MYSQL中,如下操做都是在MYSQL的提示符下進行的,並且每一個命令以分號結束。

1、操做技巧
一、若是你打命令時,回車後發現忘記加分號,你無須重打一遍命令,只要打個分號回車就能夠了。
也就是說你能夠把一個完整的命令分紅幾行來打,完後用分號做結束標誌就OK。
二、你可使用光標上下鍵調出之前的命令。

2、顯示命令
一、顯示當前數據庫服務器中的數據庫列表:
mysql> SHOW DATABASES;
注意:mysql庫裏面有MYSQL的系統信息,咱們改密碼和新增用戶,實際上就是用這個庫進行操做。


二、顯示數據庫中的數據表:
mysql> USE 庫名;
mysql> SHOW TABLES;


三、顯示數據表的結構:
mysql> DESCRIBE 表名;


四、創建數據庫:
mysql> CREATE DATABASE 庫名;


五、創建數據表:
mysql> USE 庫名;
mysql> CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));


六、刪除數據庫:
mysql> DROP DATABASE 庫名;


七、刪除數據表:
mysql> DROP TABLE 表名;


八、將表中記錄清空:
mysql> DELETE FROM 表名;


九、顯示錶中的記錄:
mysql> SELECT * FROM 表名;


十、往表中插入記錄:
mysql> INSERT INTO 表名 VALUES (」hyq」,」M」);


十一、更新表中數據:
mysql-> UPDATE 表名 SET 字段名1=’a',字段名2=’b’ WHERE 字段名3=’c';


十二、用文本方式將數據裝入數據表中:
mysql> LOAD DATA LOCAL INFILE 「D:/mysql.txt」 INTO TABLE 表名;


1三、導入.sql文件命令:
mysql> USE 數據庫名;
mysql> SOURCE d:/mysql.sql;


1四、命令行修改root密碼:
mysql> UPDATE mysql.user SET password=PASSWORD(’新密碼’) WHERE User=’root’;
mysql> FLUSH PRIVILEGES;


1五、顯示use的數據庫名:
mysql> SELECT DATABASE();


1六、顯示當前的user:
mysql> SELECT USER();

3、一個建庫和建表以及插入數據的實例
drop database if exists school; //若是存在SCHOOL則刪除
create database school;           //創建庫SCHOOL
use school;   //打開庫SCHOOL
create table teacher //創建表TEACHER
(
id int(3) auto_increment not null primary key,
name char(10) not null,
address varchar(50) default ‘深圳’,
year date
); //建表結束

//如下爲插入字段
insert into teacher values(」,’allen’,'大連一中’,'1976-10-10′);
insert into teacher values(」,’jack’,'大連二中’,'1975-12-23′);


若是你在mysql提示符鍵入上面的命令也能夠,但不方便調試。
(1)你能夠將以上命令原樣寫入一個文本文件中,假設爲school.sql,而後複製到c://下,並在DOS狀態進入目錄[url=file:////mysql//bin]//mysql//bin[/url],而後鍵入如下命令:
mysql -uroot -p密碼 < c://school.sql
若是成功,空出一行無任何顯示;若有錯誤,會有提示。(以上命令已經調試,你只要將//的註釋去掉便可使用)。
(2)或者進入命令行後使用 mysql> source c://school.sql; 也能夠將school.sql文件導入數據庫中。

4、將文本數據轉到數據庫中
一、文本數據應符合的格式:字段數據之間用tab鍵隔開,null值用[url=file:////n]//n[/url]來代替.例:
3 rose 大連二中 1976-10-10
4 mike 大連一中 1975-12-23
假設你把這兩組數據存爲school.txt文件,放在c盤根目錄下。
二、數據傳入命令 load data local infile 「c://school.txt」 into table 表名;
注意:你最好將文件複製到[url=file:////mysql//bin]//mysql//bin[/url]目錄下,而且要先用use命令打表所在的庫。

5、備份數據庫
1.導出整個數據庫
導出文件默認是存在mysql/bin目錄下
mysqldump -u 用戶名 -p 數據庫名 > 導出的文件名
mysqldump -u user_name -p123456 database_name > outfile_name.sql

2.導出一個表
mysqldump -u 用戶名 -p 數據庫名 表名> 導出的文件名
mysqldump -u user_name -p database_name table_name > outfile_name.sql

3.導出一個數據庫結構
mysqldump -u user_name -p -d –add-drop-table database_name > outfile_name.sql
-d 沒有數據 –add-drop-table 在每一個create語句以前增長一個drop table

4.帶語言參數導出
mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk –skip-opt database_name > outfile_name.sql

6、導入數據庫

例如:數據庫名爲 dbTest

首先,進入mysql

mysql -uroot -p123456

而後,建立數據庫

create dbTest

exit

最後,導入數據庫

mysql -uroot -p123456 dbTest < dbTest_bk.sql

 

數據庫及表導出導入示例:

導出數據庫
mysqldump -u root -p123456 gameTop > gameTop_db.sql

導出數據庫的表
mysqldump -u -p123456 root gameTop gametop800 > gameTop_table.sql

導出數據庫的特定表
mysqldump -u root -p123456  gameTop --table gametop800  > gameTop_table.sql



導出數據庫(只導結構,不要數據)
mysqldump -u root -p123456 --opt -d gameTop > gameTop_db.sql

或者

mysqldump -u root -p123456  -d gameTop > gameTop_db.sql

導出數據庫(只導數據,不要結構)
mysqldump -u root -p123456  -t gameTop > gameTop_db.sql

注:不加 -d 和 -t 則既導出結構,也導出數據

 

mysqldump導出拋出異常:

mysqldump: Got error: 1044: Access denied for user 'username'@'%' to database 'dbname' when using LOCK TABLES

解決辦法,添加參數 --skip-lock-tables:

mysqldump --skip-lock-tables -h172.88.12.102 -username-pAnJnVs3C2tYXyTwV dbname> dbname_bk.sql


--------------------------
導入數據庫:

登陸MySQL:      mysql -uroot -p123456
建立數據庫:    create database gameTop;


導入數據庫:    

mysql -uroot -p123456 gameTop < gameTop_db.sql

 

導入數據庫表:

mysql -uroot -p123456 gameTop  gametop800 <  gameTop_table.sql


導入數據庫表:
mysql -uroot -p123456 gameTop  < gameTop_table.sql   (不指定表名)

 

轉載聲明:本文轉自http://blog.csdn.net/networld2002/archive/2009/04/23/4103407.aspx

==================================================================================

 

 

 

1:使用SHOW語句找出在服務器上當前存在什麼數據庫:
mysql> SHOW DATABASES;


2:建立一個數據庫MYSQLDATA
mysql> CREATE DATABASE MYSQLDATA;

3:選擇你所建立的數據庫
mysql> USE MYSQLDATA; (按回車鍵出現Database changed 時說明操做成功!)


4:查看如今的數據庫中存在什麼表
mysql> SHOW TABLES;


5:建立一個數據庫表
mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));

6:顯示錶的結構:
mysql> DESCRIBE MYTABLE;


7:往表中加入記錄
mysql> insert into MYTABLE values (」hyq」,」M」);

8:用文本方式將數據裝入數據庫表中(例如D:/mysql.txt)
mysql> LOAD DATA LOCAL INFILE 「D:/mysql.txt」 INTO TABLE MYTABLE;

9:導入.sql文件命令(例如D:/mysql.sql)
mysql>use database;
mysql>source d:/mysql.sql;


10:刪除表
mysql>drop TABLE MYTABLE;

11:清空表
mysql>delete from MYTABLE;


12:更新表中數據
mysql>update MYTABLE set sex=」f」 where name=’hyq’;

 

如下是無心中在網絡看到的使用MySql的管理心得,
在windows中MySql以服務形式存在,在使用前應確保此服務已經啓動,未啓動可用net start mysql命令啓動。而Linux中啓動時可用「/etc/rc.d/init.d/mysqld start」命令,注意啓動者應具備管理員權限。
剛安裝好的MySql包含一個含空密碼的root賬戶和一個匿名賬戶,這是很大的安全隱患,對於一些重要的應用咱們應將安全性儘量提升,在這裏應把匿名賬戶刪除、 root賬戶設置密碼,可用以下命令進行:
use mysql;
delete from User where User=」";
update User set Password=PASSWORD(’newpassword’) where User=’root’;

若是要對用戶所用的登陸終端進行限制,能夠更新User表中相應用戶的Host字段,在進行了以上更改後應從新啓動數據庫服務,此時登陸時可用以下相似命令:
mysql -uroot -p;
mysql -uroot -pnewpassword;
mysql mydb -uroot -p;
mysql mydb -uroot -pnewpassword;

上面命令參數是經常使用參數的一部分,詳細狀況可參考文檔。此處的mydb是要登陸的數據庫的名稱。
在 進行開發和實際應用中,用戶不該該只用root用戶進行鏈接數據庫,雖然使用root用戶進行測試時很方便,但會給系統帶來重大安全隱患,也不利於管理技 術的提升。咱們給一個應用中使用的用戶賦予最恰當的數據庫權限。如一個只進行數據插入的用戶不該賦予其刪除數據的權限。

MySql的用戶管理是經過 User表來實現的,添加新用戶經常使用的方法有兩個,一是在User表插入相應的數據行,同時設置相應的權限;二是經過GRANT命令建立具備某種權限的用 戶。其中GRANT的經常使用用法以下:
grant all on mydb.* to NewUserName@HostName identified by 「password」 ;
grant usage on *.* to NewUserName@HostName identified by 「password」;
grant select,insert,update on mydb.* to NewUserName@HostName identified by 「password」;
grant update,delete on mydb.TestTable to NewUserName@HostName identified by 「password」;


若 要給此用戶賦予他在相應對象上的權限的管理能力,可在GRANT後面添加WITH GRANT OPTION選項。而對於用插入User表添加的用戶,Password字段應用PASSWORD 函數進行更新加密,以防不軌之人竊看密碼。對於那些已經不用的用戶應給予清除,權限過界的用戶應及時回收權限,回收權限能夠經過更新User表相應字段, 也可使用REVOKE操做。
下面給出本人從其它資料(www.cn-java.com)得到的對經常使用權限的解釋:
全局管理權限:
FILE: 在MySQL服務器上讀寫文件。
PROCESS: 顯示或殺死屬於其它用戶的服務線程。
RELOAD: 重載訪問控制表,刷新日誌等。
SHUTDOWN: 關閉MySQL服務。
數據庫/數據表/數據列權限:
ALTER: 修改已存在的數據表(例如增長/刪除列)和索引。
CREATE: 創建新的數據庫或數據表。
DELETE: 刪除表的記錄。
DROP: 刪除數據表或數據庫。
INDEX: 創建或刪除索引。
INSERT: 增長表的記錄。
SELECT: 顯示/搜索表的記錄。
UPDATE: 修改表中已存在的記錄。
特別的權限:
ALL: 容許作任何事(和root同樣)。
USAGE: 只容許登陸–其它什麼也不容許作。

 

CREATE TABLE oc_fund_order(         buyerUserId INTEGER(10) NOT NULL,         buyerIdCard VARCHAR(18) NOT NULL,         fundItemId INTEGER(10) NOT NULL,         used VARCHAR(20) NOT NULL,         amount INTEGER(10) NOT NULL,         deliveryDate DATE NOT NULL,         repayInstalment INT,         repayDate DATE,         lastRepayDate DATE,         currentRepayDate DATE,         delayTimes INT,         contractStatus INT,         couponsId INTEGER,         couponsDiscount INTEGER,         loanRate INTEGER);
CREATE TABLE oc_fund_user(        userId INTEGER(10) NOT NULL,        userName VARCHAR(20) NOT NULL,        PASSWORD VARCHAR(20) NOT NULL,        enabled  TINYINT(2) NOT NULL,        integral INTEGER(20),        nick VARCHAR(20) NOT NULL,        realName VARCHAR(20) NOT NULL,        gender VARCHAR(10),        cardId VARCHAR(20),        mobile VARCHAR(11),        universityId INTEGER              );
相關文章
相關標籤/搜索