程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> mysql 常用SQL語句

mysql 常用SQL語句

編輯:關於MYSQL數據庫

導出:
1. 導出數據庫
mysql\bin>MySQLdump -u root ivr > ivr.sql 2. 導出一張表。字段以|分隔並用"括起來。
select * from comment into outfile 'D:/working/ttt.txt' fIElds terminated by '|' enclosed by '"';
select * from p_policy into outfile 'c:/a.txt' fIElds terminated by '|'; 3. 如果只想卸出建表指令,則命令如下:
MySQLdump -d PHPtest > a.sql 4. 如果只想卸出插入數據的sql命令,而不需要建表命令,則命令如下:
MySQLdump -t asdb > c:\\a.sql
MySQLdump -t -uxoops_root -p654321 -P 5188 asdb> c:\\a.sql 5. 那麼如果我只想要數據,而不想要什麼sql命令時,應該如何操作呢?
MySQLdump -T./ PHPtest driver 導入:
1. 導入數據庫所有的表
MySQL asdb <"D:/univPlat/asdb.sql" -uroot -p 2. 導入一張表
load data infile "D:/working/ttt.txt" into table comment fIElds terminated by "|" enclosed by """; load data local infile 'D:/_temp/a.txt'
into table t_c_AssItem fIElds
terminated by ',' enclosed by '"'
IGNORE 1 LINES
(AccPackageID,AccID,AssItemID,AssItemName,AssTotalName,ParentAssItemId,IsLeaf,Level,UomUnit,Curr,Property);
如:enclosed by '"' 不能加,只能先替換所有的"號
"AccPackageID","AccID","AssItemID","AssItemName","AssTotalName","ParentAssItemId","IsLeaf","Level","UomUnit","Curr","Property"
"70118012830296","", "1", "部門", , "", 0, , "1", , "1"
"70118012830296","01", "1-01", "管理部門", , "1", 1, , "1", , "1"
"70118012830296","02", "1-02", "制造部門", , "1", 1, , "1", , "1"
"70118012830296", "", "2", "客戶", , "", 0, , "2", , "1" load data infile "c:/a.txt" into table p_policy fIElds terminated by "|";
SET子句中的用戶變量可以采用多種方式使用。以下例子使用數據文件中的第一列,直接用於t1.column1的值。在用戶變量被用於t2.column2值之前,把第二列賦予用戶變量。該變量從屬於一個分割運行。
LOAD DATA INFILE 'file.txt' INTO TABLE t1 (column1, @var1) SET column2 = @var1/100;
SET子句可以被用於提供不是來源於輸入文件的值。以下語句把column3設置為當前的日期和時間:
LOAD DATA INFILE 'file.txt' INTO TABLE t1 (column1, column2) SET column3 = CURRENT_TIMESTAMP; select ReferCount,LawName,Content from law into outfile 'D:/_temp/law.txt' fIElds terminated by '|';
load data LOCAL INFILE 'D:/_temp/law.txt' into table p_policy fIElds terminated by '|' (POLICYTYPE,TITLE,CONTENT); 3. 使用MySQLimport實用程序:
 MySQLimport --fields-terminated-by=, --fIElds-enclosed-by=\" PHPtest driver.txt
0. cmd /C "explorer ." //打開浏覽器 1. 如果你移動MySQL分發到"D:\programs\MySQL",你必須用
D:\programs\mysql\bin\mysqld --basedir D:\programs\mysql來啟動mysqld 2. win9x 啟動mysql服務:C:\mysql\bin\MySQLd
關閉: C:\mysql\bin\MySQLadmin -u root shutdown
winnt/2000啟動服務:NET START mysql    關閉: NET STOP MySQL
MySQLadmin -- user=root -- password=your_passWord shutdown
安裝作為NT服務:C:\mysql\bin\MySQLd-nt --install 4. 測試運行:
C:\mysql\bin\MySQLshow
或: MySQLshow -u root -p
   C:\mysql\bin\mysqlshow -u root MySQL
   C:\mysql\bin\MySQLadmin version status proc
   C:\mysql\bin\MySQL test 5. 為root用戶增加一個口令:(下列例子通過刪除匿名用戶啟動,允許任何人存取"測試"數據庫)
  C:\mysql\bin\mysql MySQL
  MySQL> DELETE FROM user WHERE Host='localhost' AND User='';
  MySQL> QUIT
  C:\mysql\bin\MySQLadmin reload
  C:\mysql\bin\MySQLadmin -u root password your_passWord 對共享軟件版本,你能如下設置root用戶口令:
  C:\mysql\bin\mysql MySQL
  MySQL> UPDATE user SET password=PASSWORD('your passWord') WHERE user='root';
  MySQL> QUIT
  C:\mysql\bin\MySQLadmin reload 6. 登陸數據庫
mysql -u root -p mysql 7. 可以看到 mysql庫中的一些table mysqlshow MySQL 8. 連接遠程。
格式: MySQL -h主機地址 -u用戶名 -p用戶密碼
MySQL -h192.168.1.111 -uxoops_root -p654321 -P 5188
MySQLadmin -h192.168.1.111 -uxoops_root -p654321 -P 5188 processlist 9. 修改密碼。
格式:MySQLadmin -u用戶名 -p舊密碼 passWord 新密碼
1、例1:給root加個密碼ab12。首先在DOS下進入目錄mysqlbin,然後鍵入以下命令 MySQLadmin -uroot -passWord ab12 注:因為開始時root沒有密碼,所以-p舊密碼一項就可以省略了。
2:再將root的密碼改為djg345。mysqladmin -uroot -pab12 passWord djg345 10 增加新用戶。(注意:和上面不同,下面的因為是MySQL環境中的命令,所以後面都帶一個分號作為命令結束符)
格式:grant select on 數據庫.* to 用戶名@登錄主機 identified by "密碼" 例0:增加所有權限:GRANT ALL PRIVILEGES on *.* to "easymis"@"%" IdentifIEd by "easymis";
例1、增加一個用戶test1密碼為abc,讓他可以在任何主機上登錄,並對所有數據庫有查詢、插入、修改、刪除的權限。首先用以root用戶連入MySQL,然後鍵入以下命令:
grant select,insert,update,delete on *.* to "rightuser"@"%" IdentifIEd by "rightuser";
grant select,insert,update,delete on *.* to "xoops_root"@localhost IdentifIEd by "654321";
grant select,insert,update,delete on *.* to "xoops_root"@"%" IdentifIEd by "654321";
但例1增加的用戶是十分危險的,你想如某個人知道test1的密碼,那麼他就可以在internet上的任何一台電腦上登錄你的MySQL數據庫並對你的數據可以為所欲為了,解決辦法見例2。
例2、增加一個用戶test2密碼為abc,讓他只可以在localhost上登錄,並可以對數據庫mydb進行查詢、插入、修改、刪除的操作(localhost指本地主機,即MySQL數據庫所在的那台主機),這樣用戶即使用知道test2的密碼,他也無法從internet上直接訪問數據庫,只能通過MySQL主機上的web頁來訪問了。
grant select,insert,update,delete on easycon.* to "easymis"@localhost identifIEd by "easymis";
如果你不想test2有密碼,可以再打一個命令將密碼消掉。
grant select,insert,update,delete on mydb.* to "test2"@localhost identifIEd by ""; 11. 顯示命令
1、顯示數據庫列表。
show databases;
剛開始時才兩個數據庫:mysql和test。mysql庫很重要它裡面有MySQL的系統信息,我們改密碼和新增用戶,實際上就是用這個庫進行操作。
2、顯示庫中的數據表:
use MySQL; //打開庫,學過FOXBASE的一定不會陌生吧
show tables;
3、顯示數據表的結構:
describe 表名;
4、建庫:
create database 庫名;
5、建表:
use 庫名;
create table 表名 (字段設定列表);
6、刪庫和刪表:
drop database 庫名;
drop table 表名;
7、將表中記錄清空:
delete from 表名;
8、顯示表中的記錄:
select * from 表名;
9 查詢前幾條記錄:MySQL> SELECT * FROM table LIMIT 5; # RetrIEve first 5 rows
10 導出記錄到文件:SELECT * INTO OUTFILE "c:\\right.txt" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY "\n" FROM kuser; 11 union語法:SELECT
foo_col,
bar_col,
zama_col
FROM
tabname
WHERE
1=0
UNION
SELECT
"foo" foo_col,
"bar" bar_col,
"zama" zama_col
UNION ALL
SELECT
foo_col,
bar_col,
zama_col
FROM
12 select語法
SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
[HIGH_PRIORITY]
[DISTINCT | DISTINCTROW | ALL]
select_ausdruck,...
[INTO {OUTFILE | DUMPFILE} 'datei' export_optionen]
[FROM tabellenreferenz
[WHERE where_definition]
[GROUP BY {positive_ganzzahl | spalten_name | formel} [ASC | DESC], ...]
[HAVING where_definition]
[ORDER BY {positive_ganzzahl | spalten_name | formel} [ASC | DESC] ,...]
[LIMIT [offset,] zeilen]
[PROCEDURE prozedur_name]
[FOR UPDATE | LOCK IN SHARE MODE]] //自動加1
create table s_user(
iid int not null PRIMARY KEY AUTO_INCREMENT,
suid varchar(20),
spwd varchar(20), //分頁查詢
select * from s_user where len > 3 limit 1,10 update dg_source_data set handle = handle ,play_time = '2005-06-19 19:37:12.357' ,star_id = '1' ,bless_id = '1' ,submit_reserve = '1' where flow_id = 1;
常用數據類型 create table test(id TINYINT, id1 SMALLINT, id2 MEDIUMINT, id3 INT, id4 BIGINT,
d0 FLOAT, d1 DOUBLE,d2 DECIMAL(10,2),
c1 CHAR(10), c2 VARCHAR(100), c3 TINYTEXT, c4 TEXT, c5 MEDIUMTEXT, c6 LONGTEXT,
b1 blob,
e1 ENUM('user', 'group', 'class', 'all'))
insert into test values(1,1,1,1,1,0.111,0.123456,89.23,'a','b','c','d','e','f',null,1); DATE yyyy-mm-dd格式的日期
TIME hh:mm:ss格式的時間
DATETIME yyyy-mm-ddhh:mm:ss格式結合日期和時間
TIMESTAMP yyyy-mm-ddhh:mm:ss格式結合日期和時間
YEAR yyyy格式的年份常用數據類型
TINYINT
SMALLINT
MEDIUMINT
INT
BIGINT char(1)
char(6)
VARCHAR(20)
VARCHAR(50)
VARCHAR(100)
VARCHAR(250)
TEXT
blob FLOAT
DOUBLE
DECIMAL(10,2) DATE
TIME
DATETIME 譬如表t1, 有字段id,gongxu. 產品號 工序編號 工序名稱 1 1 印花 1 2 車縫1 3 繡花1 4 包裝 能否一個sql,取出來的字符串是:1印花2車縫3繡花4包裝
select id, GROUP_CONCAT( CONCAT(gxid,gxname)) as sumaa from t1
group by id //消除重復行
Delete from k_key where autoid not in (select max(autoid) from k_key group by key1,key2); delete from k_key a, (select autoid from k_key where k_key.autoid not in (select max(autoid) from k_key group by key1,key2)) b where a.autoid=b.autoid

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