MySQL命令行數據操作使用心得(總結版)

ppucd 12年前發布 | 1K 次閱讀 5.2.1版本發布

Char 0~255

Varchar 0~65535

text 0~65535(只能保存字符)

Longtext 0~4294967295(只能保存字符)

CMD登陸mysql

mysql -u root -p

mysql -P 3306 -uroot -p123456  (-P必須大寫表示端口)

1,數據庫操作databases

創建數據庫

create database

顯示數據庫

show databases

刪除數據庫

drop database  <數據庫名>

連接數據庫

Use <數據庫名>

查看當前使用的數據庫

select database()

顯示當前數據庫信息

Show tables

導入sql數據庫

mysql -u root -p creat 數據庫名 //先創建一個同名數據庫

mysql -u root -p 數據庫名 <數據庫本地地址

use 數據庫名 //更新數據庫

show table //顯示新的導入表

導入.sql文件命令(例如d:/mysql.sql)

use database;

source d:/mysql.sql;

 

 

導入導出數據庫(解決編碼問題)

mysql -uroot -p--default-character-set=utf8 joke<c:/joke.sql

mysqldump –uroot –p joke table>joke.sql

 

導出(備份)數據庫

mysqldump -u root -p 數據庫名>c:/文件名.sql

 

2,表操作table

建立表

命令:create table <表名> ( <字段名1> <類型1> [,..<字段名n> <類型n>]);

mysql> create table MyClass(

> id int(4) not null primary key auto_increment,

> name char(20) not null,

> sex int(4) not null default '0',

> degree double(16,2));

 

mysql> create table classify(

    ->title varchar(100) primary key,content longtext,author longtext,board lon

gtext,datatype longtext);

 

獲取表結構

describe myclass

desc MyClass; 

更改表名

rename table 原表名 to 新表名

刪除表

drop table <表名>

清空表

delete from 表名

插入表中記錄

往表 MyClass中插入二條記錄, 這二條記錄表示:

編號為1的名為Tom的成績為96.45

編號為2 的名為Joan的成績為82.99

編號為3 的名為Wang的成績為96.5.

insert into MyClassvalues(1,'Tom',96.45),(2,'Joan',82.99), (2,'Wang', 96.59);

 insertinto 表名 values("hyq","M");

 

更新表中數據

update MYTABLE set sex="f" wherename='hyq';

 

用文本方式將數據裝入數據庫表中(例如d:/mysql.txt)

load data local infile "d:/mysql.txt" intotable mytable;

刪除表中數據

delete from 表名where 表達式

delete from MyClass where id=1;

 

MySQL批量替換指定字段字符串語句

UPDATE 數據表名 SET 字段名 = replace(字段名, '要替換的字符串', '替換為') WHERE 設定條件;

update xxx set column = repalce(column,chr(ascii),''); //oracle

update jo1 set 內容=replace(內容,char(13)+char(10),''); //回車+換行

3,字段操作

在表中增加字段:

alter table 表名add字段 類型 其他; 

例如:在表MyClass中添加了一個字段passtest,類型為int(4),默認值為0 

alter table MyClass add passtest int(4) default '0'  //其中4可以省略,長度默認為11

 

刪除字段

alter table 表名 drop column 字段名

 

更新字段內容

update 表名set 字段名 = 新內容

update 表名set 字段名 = replace(字段名,'舊內容','新內容');

文章前面加入4個空格

update article set content=concat('  ',content);

 

修改字段類型

alter table forum alter column column_name new_data_type

 

4,索引

提高檢索、查詢速度;創建維護費時間,占用物理空間,影響插入記錄的速錄。(解決:先刪除索引再插入記錄)

 

建立索引

Create table index1(index(id));

 

er table forum alter column column_name new_data_type

5,查詢操作

查詢表

select * from MyClass;

查詢前幾行數據

select * from MyClass order by id limit 0,2;

查詢表中數據總數

select count(*) from table

 

字段類型

1.INT[(M)] 型:正常大小整數類型 

2.DOUBLE[(M,D)][ZEROFILL] 型: 正常大小(雙精密)浮點數字類型 

3.DATE 日期類型:支持的范圍是1000-01-01到9999-12-31。MySQL以YYYY-MM-DD格式來顯示DATE值,但是允許你使用字符串或數字把值賦給DATE列 

4.CHAR(M) 型:定長字符串類型,當存儲時,總是是用空格填滿右邊到指定的長度 

5.BLOB TEXT類型,最大長度為65535(2^16-1)個字符。 

6.VARCHAR型:變長字符串類型

 

 

查看mysql版本

Select @@Version

 

查看mysql默認編碼

showvariables like 'character%';

showvariables like "character%";

..

設置MySQL編碼

MySQL(版本是5.1.22)支持多種編碼格式,并且可以在多個級別上設置不同的編碼格式。

  • 服務器級:在安裝MySQL時可以設置服務器的默認編碼格式   
  • 最簡單的修改方法,就是修改mysql的my.ini文件中的字符集鍵值,
    如:default-character-set = utf8
    character_set_server = utf8
    修改完后,重啟mysql的服務,service mysql restart 
  • 數據庫級:在創建數據庫時可以指定數據庫的編碼格式,如果不指定,則默認繼承服務器的編碼格式。示例如下:
CREATEDATABASE db_name DEFAULT CHARACTER SET utf8;
  • 表級:在MySQL中可以對同一個數據庫中表指定不同的編碼格式,如果不指定將繼承數據庫的編碼格式。示例如下:
CREATETABLE  `db_name`.`tb_name`(       id VARCHAR(20)NOTNULL,      name VARCHAR(20) ) ENGINE=InnoDB  DEFAULT CHARSET=utf8;
  • 列級:另外還可以對同一個表中的不同列指定不同的編碼格式,示例如下:
CREATETABLE  `db_name`.`tb_name`(   id varchar(20)NOTNULL,   name varchar(20) CHARACTER SET utf8);

制定編碼方式的一個好處是,增強對中文的處理,可解決表中部分中文字段內容在不同工具下亂碼的問題

 

1.具體查詢

SELECT content FROM forum

WHERE content='縮小貧富差距,是一個糾結的課題,怎么縮?關鍵是收入分配。話語權大的利益群眾,收入分配明顯偏高,導致收入差距拉大'

 

 

2.仔細搜索

SELECT content,

       DATE,

       url,

       id,

       ObjectKey,

       RobotName,

       ExecutionId,

       FirstExtracted,

       LastExtracted,

       ExtractedInLastRun,

       LastUpdated,

       num

       FROM aeolus.forum WHERE id='哄旗飛舞'

 

 

3.模糊查詢

SELECT 字段 FROM 表

WHERE 字段 LIKE'%'

 

 

4.模糊刪除

DELETE FROM aeolus.forum WHEREid LIKE '%' ;

 

CRLF –

Carriage-Return Line-Feed回車換行 回車(CR, ASCII 13, \r) 換行(LF, ASCII 10, \n)

 本文由用戶 ppucd 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!