MySQL命令行數據操作使用心得(總結版)
Char 0~255
Varchar 0~65535
text 0~65535(只能保存字符)
www.2cto.com
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()
www.2cto.com
顯示當前數據庫信息
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);
www.2cto.com
獲取表結構
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';
www.2cto.com
用文本方式將數據裝入數據庫表中(例如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 字段名
www.2cto.com
更新字段內容
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
www.2cto.com
字段類型
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%";
.. www.2cto.com
設置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='哄旗飛舞'
www.2cto.com
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)