程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 我的MySQL使用手記

我的MySQL使用手記

編輯:MySQL綜合教程

我的MySQL使用手記


我的MySQL使用手記

近期在windows下使用MySQL,簡單的記錄下開發中遇到的一些問題

1. char,varchar和text的區別

char(M) varchar(M) text 定長 變長 變長 M個字節,0 <=M<= 255 L+1個字節,其中L<=M且0 <=M<= 65535 L+2個字節,其中L< 216 對英文(ASCII)字符占用1個字節,對一個漢字占用2個字節 對每個英文(ASCII)字符都占用2個字節,對一個漢字也只占用兩個字節 儲存不區分大小寫的字符數據,每個占2字節

2.MySQL數據庫備份

>mysqldump -u user_name - p database_name > D:\backup.sql

然後按照提示輸入密碼即可。

注:愉快地使用mysqldump有兩種方法
1.進入mysql安裝路徑下的bin目錄,找到mysqldump可執行程序,cmd命令行窗口執行
2.[推薦]將mysql的bin目錄加到系統變量path中,任何位置下都能使用該命令

3.數據庫備份的操作步驟

如果table存在,Drop 創建該表,Create 對該表進行加鎖寫保護,Lock 插入原始數據,Insert Done

4.MySQL執行sql腳本

未登錄狀態下
>mysql -h localhost -u user_name -p password < D:\backup.sql
登錄狀態下(兩種)
mysql>source D:\backup.sql
mysql>\. D:\backup.sql

5. 文本中有單引號導致數據插入失敗

mysql用兩個連著的單引號”來標識單引號’,或者使用轉移字符反斜槓\
所以插入數據之前應該先對數據中的特殊字符做轉義處理

6.MySQL輸入密碼後閃退,無法啟動MySQL服務

查看MySQL數據目錄Data下的Computer_name.err日志文件,顯然這是因為端口3306被占用。錯誤信:息如下

[ERROR] Do you already have another mysqld server running on port: 3306 ?
[ERROR] Aborting

找到占用端口的進程Pid,kill掉,再次啟動mysql服務

>netstat -aon|findstr "3306"
>taskkill /f /pid 3306

7.MySQL中Delete,Truncate和Drop的區別

Delete
Delete操作後相應的數據被刪除,但當執行roolback操作後可以恢復數據 這是對數據的一種快速修改、因為在刪除時並不合並索引 Limit,where和Order By可以和delete一起使用 Truncate
Truncate先刪除表結構然後再新建,這比一行一行的刪除數據要快很多。 Truncate執行後不可回滾操作 Truncate會刪除表中的所有數據 Truncate並不會返回刪除數據的行數 Drop
Drop與Delete的區別就在於,Delete刪除了表中的數據但是表的結構還在,而Drop會將表的數據和結構一起刪除

8.數據庫基本操作語法

#創建數據庫
create database database_name;
#使用指定數據庫
use database_name;
#顯示所有表
show tables;
#創建表
create table table_name(id int unsigend not null primary key ,name ……);
#選擇
select * from table_name where id = '1'
#插入
insert into table_name(id,……)values('2',……)
#設置自增字段的初始值
alter table table_name auto_increment =1;
#在列id之後插入新列
alter table table_name add column column_name int after id;
#更新一個字段的多行數據
update tablename
    set field= case other_field
        when 0 then 'value'
        when 1 then 'value'
        when 2 then 'value'
    end
 where other_field in(0,1,2)
#修改字段的屬性
alter table table_name modify id int auto_increment;
#刪除表
drop table table_name;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved