⑴ MySQL的基本命令
啟動:net start mySql;
進入:mysql -u root -p/mysql -h localhost -u root -p databaseName;
列出資料庫:show databases;
選擇資料庫:use databaseName;
列出表格:show tables;
顯示表格列的屬性:show columns from tableName;
建立資料庫:source fileName.txt;
匹配字元:可以用通配符_代表任何一個字元,%代表任何字元串;
增加一個欄位:alter table tabelName add column fieldName dateType;
增加多個欄位:alter table tabelName add column fieldName1 dateType,add columns fieldName2 dateType;
多行命令輸入:注意不能將單詞斷開;當插入或更改數據時,不能將欄位的字元串展開到多行里,否則硬回車將被儲存到數據中;
增加一個管理員帳戶:grant all on *.* to user@localhost identified by "password";
每條語句輸入完畢後要在末尾填加分號';',或者填加'\g'也可以;
查詢時間:select now();
查詢當前用戶:select user();
查詢資料庫版本:select version();
查詢當前使用的資料庫:select database();
1、刪除student_course資料庫中的students數據表:
rm -f student_course/students.*
2、備份資料庫:(將資料庫test備份)
mysqlmp -u root -p test>c:\test.txt
備份表格:(備份test資料庫下的mytable表格)
mysqlmp -u root -p test mytable>c:\test.txt
將備份數據導入到資料庫:(導回test資料庫)
mysql -u root -p test
3、創建臨時表:(建立臨時表zengchao)
create temporary table zengchao(name varchar(10));
4、創建表是先判斷表是否存在
create table if not exists students(……);
5、從已經有的表中復製表的結構
create table table2 select * from table1 where 1<>1;
6、復製表
create table table2 select * from table1;
7、對表重新命名
alter table table1 rename as table2;
8、修改列的類型
alter table table1 modify id int unsigned;//修改列id的類型為int unsigned
alter table table1 change id sid int unsigned;//修改列id的名字為sid,而且把屬性修改為int unsigned
9、創建索引
alter table table1 add index ind_id (id);
create index ind_id on table1 (id);
create unique index ind_id on table1 (id);//建立唯一性索引
10、刪除索引
drop index idx_id on table1;
alter table table1 drop index ind_id;
11、聯合字元或者多個列(將列id與":"和列name和"="連接)
select concat(id,':',name,'=') from students;
12、limit(選出10到20條)<第一個記錄集的編號是0>
select * from students order by id limit 9,10;
13、MySQL不支持的功能
事務,視圖,外鍵和引用完整性,存儲過程和觸發器
14、MySQL會使用索引的操作符號
<,<=,>=,>,=,between,in,不帶%或者_開頭的like
15、使用索引的缺點
1)減慢增刪改數據的速度;
2)佔用磁碟空間;
3)增加查詢優化器的負擔;
當查詢優化器生成執行計劃時,會考慮索引,太多的索引會給查詢優化器增加工作量,導致無法選擇最優的查詢方案;
16、分析索引效率
方法:在一般的SQL語句前加上explain;
分析結果的含義:
1)table:表名;
2)type:連接的類型,(ALL/Range/Ref)。其中ref是最理想的;
3)possible_keys:查詢可以利用的索引名;
4)key:實際使用的索引;
5)key_len:索引中被使用部分的長度(位元組);
6)ref:顯示列名字或者"const"(不明白什麼意思);
7)rows:顯示MySQL認為在找到正確結果之前必須掃描的行數;
8)extra:MySQL的建議;
17、使用較短的定長列
1)盡可能使用較短的數據類型;
2)盡可能使用定長數據類型;
a)用char代替varchar,固定長度的數據處理比變長的快些;
b)對於頻繁修改的表,磁碟容易形成碎片,從而影響資料庫的整體性能;
c)萬一出現數據表崩潰,使用固定長度數據行的表更容易重新構造。使用固定長度的數據行,每個記錄的開始位置都是固定記錄長度的倍數,可以很容易被檢測到,但是使用可變長度的數據行就不一定了;
d)對於MyISAM類型的數據表,雖然轉換成固定長度的數據列可以提高性能,但是占據的空間也大;
18、使用not null和enum
盡量將列定義為not null,這樣可使數據的出來更快,所需的空間更少,而且在查詢時,MySQL不需要檢查是否存在特例,即null值,從而優化查詢;
如果一列只含有有限數目的特定值,如性別,是否有效或者入學年份等,在這種情況下應該考慮將其轉換為enum列的值,MySQL處理的更快,因為所有的enum值在系統內都是以標識數值來表示的;
19、使用optimize table
對於經常修改的表,容易產生碎片,使在查詢資料庫時必須讀取更多的磁碟塊,降低查詢性能。具有可變長的表都存在磁碟碎片問題,這個問題對blob數據類型更為突出,因為其尺寸變化非常大。可以通過使用optimize table來整理碎片,保證資料庫性能不下降,優化那些受碎片影響的數據表。 optimize table可以用於MyISAM和BDB類型的數據表。實際上任何碎片整理方法都是用mysqlmp來轉存數據表,然後使用轉存後的文件並重新建數據表;
20、使用procere analyse()
可以使用procere analyse()顯示最佳類型的建議,使用很簡單,在select語句後面加上procere analyse()就可以了;例如:
select * from students procere analyse();
select * from students procere analyse(16,256);
第二條語句要求procere analyse()不要建議含有多於16個值,或者含有多於256位元組的enum類型,如果沒有限制,輸出可能會很長;
21、使用查詢緩存
1)查詢緩存的工作方式:
第一次執行某條select語句時,伺服器記住該查詢的文本內容和查詢結果,存儲在緩存中,下次碰到這個語句時,直接從緩存中返回結果;當更新數據表後,該數據表的任何緩存查詢都變成無效的,並且會被丟棄。
2)配置緩存參數:
變數:query_cache _type,查詢緩存的操作模式。有3中模式,0:不緩存;1:緩存查詢,除非與 select sql_no_cache開頭;2:根據需要只緩存那些以select sql_cache開頭的查詢; query_cache_size:設置查詢緩存的最大結果集的大小,比這個值大的不會被緩存。
22、調整硬體
1)在機器上裝更多的內存;
2)增加更快的硬碟以減少I/O等待時間;
尋道時間是決定性能的主要因素,逐字地移動磁頭是最慢的,一旦磁頭定位,從磁軌讀則很快;
3)在不同的物理硬碟設備上重新分配磁碟活動;
如果可能,應將最繁忙的資料庫存放在不同的物理設備上,這跟使用同一物理設備的不同分區是不同的,因為它們將爭用相同的物理資源(磁頭)。
⑵ 用命令行方式操作mysql資料庫,為什麼會出現錯誤。Mysql服務已啟動,伺服器名稱為MySQL55
這個錯誤是無法連接到Mysql資料庫,使用mysql命令進行登陸的參數為:
-h主機地址,如:localhost或者127.0.0.1
-u用戶名,如:root
-p登陸密碼,如果你有設置mysql密碼就填
參數與值之間不需要空格,但是不同參數間有空格,
格式如:>mysql-hlocalhost-uroot-pa12346
mysql命令大全參考:http://wenku..com/view/e5f0ab07e87101f69e3195b0.html
如圖:
⑶ 如何通過命令行打開mysql資料庫
使用命令行連接MySQL資料庫:
Windows操作系統下,開始——運行,打開"運行"對話框,輸入cmd,點擊「確定」即可進入DOS窗口。
DOS窗口輸入登錄MySQL資料庫命令
mysql -h 127.0.0.1 -u root -p
命令參數說明:
mysql是登錄資料庫的命令,-h 後面跟伺服器的IP,由於本示例MySql伺服器安裝在本地,因此IP地址為127.0.0.1;-u 後面跟用戶名,本示例採用 root用戶登錄;-p 後面跟登錄密碼。
輸入上述命令後回車,再輸入登錄密碼,在回車即可完成登錄MySQL資料庫服務了。跟著可以運行use databaseName語句操作某個資料庫了
⑷ 如何在Windows下編譯或調試MySQL
用vs code 就可以了。
Visual Studio Code
Visual Studio Code(簡稱VS Code)是由微軟開發的,同時支持Windows、linux和macOS操作系統的開源文本編輯器。它支持調試,內置了Git 版本控制功能,同時也具有開發環境功能,例如代碼補全(類似於IntelliSense)、代碼片段、代碼重構等。該編輯器支持用戶自定義配置,例如改變主題顏色、鍵盤快捷方式、編輯器屬性和其他參數,還支持擴展程序並在編輯器中內置了擴展程序管理的功能。
安裝LLDB
LLDB是LLVM編譯器的一部分,推薦使用Homebrew安裝LLVM工具集,不建議使用系統自帶的LLDB,安裝前必須先創建證書否則無法安裝,步驟如下:
創建完成後,開始安裝LLVM
brew install llvm --with-python@2--with-lldb
安裝插件
VS Code自帶有debug功能,這里我推薦使用LLDB Debugger插件。
接下來,為項目配置調試參數。
配置調試參數
使用VS Code打開MySQL源碼目錄,在側邊欄選擇debug欄目,添加配置,program輸入需要調試的程序路徑,這里選擇你編譯好的mysqld路徑,args輸入程序啟動所需的參數,通常會指定mysqld的配置文件。這樣就配置好了,是不是很簡單。
啟動調試
點擊啟動按鈕,啟動後如果沒有設置斷點會mysqld會正常啟動,如果觸發了斷點會如下圖顯示。
整個調試窗口基本分為六部分,所有的調試操作都在這里完成:
1:顯示變數信息
2:設置重點關注的變數
3:顯示調用棧信息
4:設置斷點信息,在代碼行號前也可以設置斷點
5:代碼顯示區域,上方是調試按鈕,包括 continue/stepover/step in/step out/restart/stop
6:調試終端輸入輸出區
斷點設置
在代碼行號前點擊即可在該行為設置斷點,也可以根據條件設置斷點。以設置ConditionalBreakpoint為例,當程序啟動後會按照你設置的條件表達式判斷是否觸發斷點。
Conditional Breakpoint這種方式用在目標變數達到某條件時觸發斷點,其餘則跳過繼續執行。比如:設置變數等於目標表名時觸發斷點,其餘表則跳過,相對函數名斷點省去很多手工跳過操作。
遠程調試
假如你想調試遠程Linux伺服器上的MySQL上面的方法就不合適了,這時需要遠程調試。lldb和gdb都支持遠程調試,這里以lldb為例。
需要先在遠程主機上安裝lldb,使用yum安裝,源地址在這里http://mirror.centos.org/centos/7/sclo/x86_64/rh
remote$ yum install -y llvm-toolset-7
安裝完成後,啟動lldb-server
remote$ /opt/rh/llvm-toolset-7/root/usr/bin/lldb-serverplatform --listen"*:9191"--server
接下來,在VS Code調試界面中新增配置項。
{
"type":"lldb",
"request":"attach",
"name":"Remote attach",
"program":"~/mysql5626/usr/local/mysql/bin/mysqld",
"pid":"<target_pid>",
"initCommands": [
"platform select remote-linux",
"platform connect connect://<remote_host>:9191"
],
"sourceMap": {
"/export/home/pb2/build/sb_0-15908961-1436910670.17/mysql-5.6.26":"/Users/hongbin/workbench/mysql-server"
}
},
program:本機也要拷貝一份目標程序,載入
pid:填寫遠程主機的mysqld進程id
sourceMap:填寫mysqld編譯的代碼路徑與本機代碼庫路徑的映射,這樣調試時代碼才可以和程序關聯在一起看
注意:記得調試前將代碼切換到與目標程序版本一致的branch
⑸ 查看mysql運行狀態的命令是什麼
一、用phpMyAdmin進行查看
二、用命令行的SHOW 語句
直接在命令行下登陸MySQL運行SHOW STATUS;查詢語句
同樣的語句還有SHOW VARIABLES;,SHOW STATUS是查看MySQL運行情況,和上面那種通過pma查看到的信息基本類似。
SHOW VARIABLES
SHOW VARIABLES是查看MySQL的配置參數,還可以使用類似SHOW VARIABLES LIKE 『Key%』
SHOW PROCESSLIST
SHOW PROCESSLIST是查看當前正在進行的進程,對於有鎖表等情況的排查很有用處。一般情況下,打開MySQL的慢查詢記錄同樣有利於排查。
SHOW OPEN TABLES
SHOW OPEN TABLES是顯示當前已經被打開的表列表。
三、用MySQL自帶工具mysqladmin 查看
使用MySQL自帶的mysqladmin 工具查看status,使用以下命令
mysqladmin -uroot -p密碼 status
顯示的結果如下:
Uptime: 502963 Threads: 2 Questions: 8561820 Slow queries: 734681 Opens: 553
45 Flush tables: 1 Open tables: 85 Queries per second avg: 17.023
另外可以添加 -i 5 參數,讓其每五秒自動刷新之。
mysqladmin -uroot -p密碼 status -i 5
mysqladmin extended-status
同樣的可以使用mysqladmin -uroot -p密碼 extended-status來查看更多的MySQL運行信息,這種方式和第一種查看的信息基本一樣。
⑹ 在linux系統中,mysql 中的命令 -o 怎麼用
MYSQL命令行參數的詳細說明:Usage:mysql [OPTIONS] [database]
-?, --help #顯示幫助信息並退出
-I, --help #顯示幫助信息並退出
--auto-rehash #自動補全功能,就像linux裡面,按Tab鍵出提示差不多
-A, --no-auto-rehash #默認狀態是沒有自動補全功能的。-A就是不要自動補全功能
-B, --batch #mysql不使用歷史文件,禁用交互
--character-sets-dir=name #字體集的安裝目錄
--default-character-set=name #設置資料庫的默認字元集
--column-type-info #結果集返回時,同時顯示欄位的類型等相關信息
-c, --comments #Preserve comments. Send comments to the server. The
default is --skip-comments (discard comments), enable
with –comments
-C, --compress #在客戶端和伺服器端傳遞信息時使用壓縮
-#, --debug[=#] #bug調用功能
-D, --database=name #使用哪個資料庫
--default-character-set=name #設置默認的字元集
--delimiter=name #設置默認命令結束符
-e, --execute=name #執行mysql的sql語句
-E, --vertical #垂直列印查詢輸出
-f, --force #如果有錯誤跳過去,繼續執行下面的
-G, --named-commands #Enable named commands. Named commands mean thisprogram's
internal commands; see mysql> help . When enabled, the named commandscan be used from any line of the query, otherwise only from the first line,before an enter.
Disable with --disable-named-commands. This option is disabled by default.
-g, --no-named-commands
Named commands are disabled. Use * form only, or use named commands onlyin the beginning of a line ending with a semicolon (;) Since version 10.9 theclient now starts with this option ENABLED by default! Disable with '-G'. Longformat commands still work from the first line. WARNING: option deprecated;
use --disable-named-commands instead.
-i, --ignore-spaces #忽視函數名後面的空格.
--local-infile #啟動/禁用LOAD DATA LOCAL INFILE.
-b, --no-beep #sql錯誤時,禁止嘟的一聲
-h, --host=name #設置連接的伺服器名或者Ip
-H, --html #以html的方式輸出
-X, --xml #以xml的方式輸出
--line-numbers #顯示錯誤的行號
-L, --skip-line-numbers #忽略錯誤的行號
-n, --unbuffered #每執行一次sql後,刷新緩存
--column-names #查尋時顯示列信息,默認是加上的
-N, --skip-column-names #不顯示列信息
-O, --set-variable=name #設置變數用法是--set-variable=var_name=var_value
--sigint-ignore #忽視SIGINT符號(登錄退出時Control-C的結果)
-o, --one-database #忽視除了為命令行中命名的默認資料庫的語句。可以幫跳過日誌中的其它資料庫的更新。
--pager[=name] #使用分頁器來顯示查詢輸出,這個要在linux可以用more,less等。
--no-pager #不使用分頁器來顯示查詢輸出。
-p, --password[=name] #輸入密碼
-W, --pipe #Use named pipes to connect to server.
-P, --port=# #設置埠
--prompt=name #設置mysql提示符
--protocol=name #設置使用的協議
-q, --quick #不緩存查詢的結果,順序列印每一行。如果輸出被掛起,伺服器會慢下來,mysql不使用歷史文件。
-r, --raw #寫列的值而不轉義轉換。通常結合--batch選項使用。
--reconnect #如果與伺服器之間的連接斷開,自動嘗試重新連接。禁止重新連接,使用--disable-reconnect。
-s, --silent #一行一行輸出,中間有tab分隔
-S, --socket=name #連接伺服器的sockey文件
--ssl #激活ssl連接,不激活--skip-ssl
--ssl-ca=name #CA file in PEM format (check OpenSSL docs, implies--ssl).
--ssl-capath=name #CA directory (check OpenSSL docs, implies --ssl).
--ssl-cert=name #X509 cert in PEM format (implies --ssl).
--ssl-cipher=name #SSL cipher to use (implies --ssl).
--ssl-key=name #X509 key in PEM format (implies --ssl).
--ssl-verify-server-cert #連接時審核伺服器的證書
-t, --table #以表格的形式輸出
--tee=name #將輸出拷貝添加到給定的文件中,禁時用--disable-tee
--no-tee #根--disable-tee功能一樣
-u, --user=name #用戶名
-U, --safe-updates #Only allow UPDATE and DELETE that uses keys.
-U, --i-am-a-mmy #Synonym for option --safe-updates, -U.
-v, --verbose #輸出mysql執行的語句
-V, --version #版本信息
-w, --wait #伺服器down後,等待到重起的時間
--connect_timeout=# #連接前要等待的時間
--max_allowed_packet=# #伺服器接收/發送包的最大長度
--net_buffer_length=# #TCP/IP和套接字通信緩沖區大小。
--select_limit=# #使用--safe-updates時SELECT語句的自動限制
--max_join_size=# #使用--safe-updates時聯接中的行的自動限制
--secure-auth #拒絕用(pre-4.1.1)的方式連接到資料庫
--server-arg=name #.
--show-warnings #顯示警告
⑺ 在 my.cnf 裡面的 [mysqld] 段增加一個啟動參數 需要輸入什麼命令呢需要先進入資料庫么
如果忘記root密碼可以重新設置,方法如下:
Windows:
1.以系統管理員登陸;
2.停止MySQL服務;
3.進入CMD,進入MySQL的安裝目錄,假設是D:/MySQL/MySQL Server 5.0/;
4.跳過許可權檢查啟動MySQL,
D:/MySQL/MySQL Server 5.0/bin/mysqld-nt –skip-grant-tables
5.重新打開一個CMD,進入D:/MySQL/MySQL Server 5.0/bin/,
重設root密碼
D:/MySQL/MySQL Server 5.0/bin/mysqladmin -uroot flush-privileges password 逗newpassword地
D:/MySQL/MySQL Server 5.0/bin/mysqladmin -u root -p shutdown
將newpassword替換為你的新密碼,第二個命令會讓你重復輸入一次新 密碼。
6. 在cmd里net start mysql
Unix&Linux:
1.用root或者運行mysqld的用戶登錄系統;
2.利用kill命令結束掉mysqld的進程;
3.使用–skip-grant-tables參數啟動MySQL Server
#mysqld_safe –skip-grant-tables &
4.然後用空密碼方式使用root用戶登錄 MySQL;mysql -u root
5.為root@localhost設置新密碼
mysql> update mysql.user set password=PASSWORD('新密碼') where User='root'mysql> flush privileges;mysql> quit
6. 重新啟動MySQL
⑻ 如何動態修改Mysql的配置參數
登入mysql:
mysql -h localhost -u root -p
然後會讓輸入密碼
查看當前配置參數(wait_timeout為例):
show session variables like '%wait_timeout%'; (或去掉session也一樣)這是當前會話配置參數
現在我們來改這個值:
set wait_timeout=90;
然後我們一起再查看下當前配置參數:
show variables like '%wait_timeout%';
這是修改當前會話配置,當退出再新起一個會話時就會恢復原樣。
想在所有會話都有效可以設置全局配置,參數把session改為global就可以了
set global wait_timeout=90;後再查看
show global variables like '%wait_timeout%';
再退出後重新進入看看,值還是在。
⑼ mysql基礎知識——管理和連接
內容簡介
今天主要給大家講解mysql的簡單管理與連接
管理
查看MySQL運行狀態
MySQL安裝好之後,默認是處於啟動狀態,但是要如何確認它是否啟動呢?
可以在運行界面輸入命令:services.msc 進入服務窗口
在服務窗口,我們找到之前安裝時配置的MySQL服務名:MySQL80
我們看到,MySQL的服務處於正在運行狀態。
關閉MySQL
可以在CMD窗口使用命令關閉
也可以在服務窗口直接右鍵關閉
啟動MySQL
可以在CMD窗口使用命令啟動
也可以在服務窗口啟動MySQL
連接MySQL
命令連接
在CMD窗口輸入命令:mysql -uroot -p ,然後輸入你安裝時配置的root命令即可連接MySQL
工具連接
我們使用管理工具Navicat來連接MySQL,只需要配置幾個參數就可以連接了。
我們只需要輸入伺服器的IP,埠號,賬號和密碼即可連接上MySQL了,連接後就可以看到伺服器上的所有數據了。
以上就是今天的全部內容,記得動手嘗試一下加深記憶。
⑽ 那有比較全的MySql命令啊
1. 連接mysql:
mysqlbinmysql -h主機地址 -u 用戶名 -p 用戶密碼
2.退出mysql:exit
3. 修改密碼:
mysqlbinmysqladmin -uroot -p(oldpassword) password newpassword
4.增加用戶:
添加一個用戶test1 密碼為ABC;讓他可以在任何主機上登錄,並對所有資料庫有查詢、插入、修改、刪除的許可權。首先用以root用戶連入
mysql,然後鍵入以下命令:grant select,insert,update,delete on *.* to test1@"%" Identified
by "abc";
增加一個用戶test2密碼為abc,讓其只可以在localhost上登錄,並可以對資料庫mydb進行查詢、插入、修改、刪除的操作(localhost指本地
主機,即mysql資料庫所在的那台主機),這樣用戶即使用知道test2的密碼,也無法從internet上直接訪問資料庫,只能通過mysql主機上的web頁
來訪問了。grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";
增加一個可以從任何地方連接伺服器的一個完全的超級用戶
grant all privileges on *.* to test3@"%" identified by 'password' with grant option;
5.刪除授權
revoke select,insert,update,delete om *.* from test2@localhost ;
--------------------------------------------------------
6.顯示資料庫
show databases;
7.顯示資料庫中的表
use dataname;
show tables;
8.顯示表的結構
describe tablesname;
9.建庫
create database 庫名;
10.建表
use dataname;
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('','glchengang','深圳一中','1976-10-10');
insert into teacher values('','jack','深圳一中','1975-12-23');
註:在建表中
(1) 將ID設為長度為3的數字欄位:int(3),並讓它每個記錄自動加一: auto_increment,
並不能為空:not null,而且讓它成為主欄位primary key
(2) 將NAME設為長度為10的字元欄位
(3) 將ADDRESS設為長度50的字元欄位,而且預設值為深圳。varchar和char有什麼區別
呢,只有等以後的文章再說了。
(4) 將YEAR設為日期欄位。
如果你在mysql提示符鍵入上面的命令也可以,但不方便調試。 你可以將以上命令
原樣寫入一個文本文件中假設為school.sql,然後復制到c:下,並在DOS狀態進入目錄
mysql in,然後鍵入以下命令:
mysql -uroot -p密碼 < c:school.sql
如果成功,空出一行無任何顯示;如有錯誤,會有提示。(以上命令已經調試,你
只要將//的注釋去掉即可使用)。
11.刪除庫和刪除表
drop dataname;
drop tablename;
12.將表中的記錄清空
delete from tablename;
13.顯示表中的記錄
select * from tablename;
14.表重命名
alter table t1 rename t2
---------------------------------------------------------
15. 備份資料庫
mysqlbinmysqlmp -h(ip) -uroot -p(password) databasename > database.sql
16. 恢復資料庫
mysqlbinmysql -h(ip) -uroot -p(password) databasename < database.sql
17.復制資料庫
mysqlmp --all-databases > all-databases.sal
18.備份表
mysqlbinmysqlmp -h(ip) -uroot -p(password) databasename tablename > tablename.sql
19.恢復表(操作前先把原來的表刪除)
mysqlbinmysql -h(ip) -uroot -p(password) databasename tablename < tablename.sql
----------------------------------------------------------
20.為了改變列a,從INTEGER改為TINYINT NOT NULL(名字一樣),
並且改變列b,從CHAR(10)改為CHAR(20),同時重命名它,從b改為c:
ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);
增加一個新TIMESTAMP列,名為d:
ALTER TABLE t2 ADD d TIMESTAMP;
在列d上增加一個索引,並且使列a為主鍵:
ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);
刪除列c:
ALTER TABLE t2 DROP COLUMN c;
增加一個新的AUTO_INCREMENT整數列,命名為c:
ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);
注意,我們索引了c,因為AUTO_INCREMENT柱必須被索引,並且另外我們聲明c為NOT NULL,
因為索引了的列不能是NULL
---------------------------------------------------------------
21.數據的導入導出
A。mysqlimport
語法:mysqlbinmysqlimport database tables.txt( 文件名需要與表名相同)
參數:-d or --delete 新數據導入數據表中之前刪除數據數據表中的所有信息;
-f or --force 不管是否遇到錯誤,mysqlimport將強制繼續插入數據;
-i or --ignore mysqlimport跳過或者忽略那些有相同唯一關鍵字的行, 導入文件中的數據將被忽略;
-l or -lock-tables 數據被插入之前鎖住表,這樣就防止了, 你在更新資料庫時,用戶的查詢和更新受到影響;
--fields-enclosed- by= char
指定文本文件中數據的記錄時以什麼括起的, 很多情況下數據以雙引號括起。 默認的情況下數據是沒有被字元括起的。
--fields-terminated- by=char
指定各個數據的值之間的分隔符,在句號分隔的文件中,分隔符是句號。您可以用此選項指定數據之間的分隔符。默認的分隔符是跳格符
(Tab)
--lines-terminated- by=str
此選項指定文本文件中行與行之間數據的分隔字元串 或者字元。 默認的情況下mysqlimport以newline為行分隔符。 您可以選擇用一個字
符串來替代一個單個的字元: 一個新行或者一個回車。
mysqlimport命令常用的選項還有-v 顯示版本(version), -p 提示輸入密碼(password)等。
--------------------------------------------------------------
22.常用插入、修改、刪除語句
插入記錄:insert into teacher values('','glchengang','深圳一中','1976-10-10');
修改記錄:update mytable set single=′y′ where name=′abccs′;
刪除記錄:delete from mytable where name=′abc′;