導航:首頁 > 操作系統 > linux執行sql語句

linux執行sql語句

發布時間:2022-08-04 19:49:18

linux下執行sql文件

linux里登錄資料庫後直接執行特定的命令就可以,參數是文件所在位置。比如說mysql:首先登錄資料庫mysql -u用戶名 -p,之後執行source sql文件位置 就可以。

㈡ linux中不能使用sql語句嗎

麻煩把問題描述清楚下,sql語句一般在mysql中使用,linux的默認終端一般是bash,無法直接執行sql語句

㈢ linux下不進入sqlplus執行sql語句

那就可以以調用sql文本的方式來操作。

示例:

#!/bin/bash
sqlplus-S"test/unimas"<<!
setheadingoff
setfeedbackoff
setpagesize0
setverifyoff
setechooff
colcounnew_valuev_coun
selectcount(*)counfromlesson;
exitv_coun
!
VALUE="$?"
echo"showrow:$VALUE"

將以上腳本保存到機器的目錄下,起名為test1.sh

然後執行這個shell即可。

注意:

select count(*) coun from lesson;

以上這句為要執行的sql,一定要以分號結尾。

㈣ linux系統下怎麼在終端運行sql語句

主要有以下幾種方法:
1、將SQL語句直接嵌入到shell腳本文件中
代碼如下:

--演示環境
[root@SZDB ~]# more /etc/issue
CentOS release 5.9 (Final)
Kernel \r on an \m
root@localhost[(none)]> show variables like 'version';
+---------------+------------+
| Variable_name | Value |
+---------------+------------+
| version | 5.6.12-log |
+---------------+------------+

[root@SZDB ~]# more shell_call_sql1.sh
#!/bin/bash
# Define log
TIMESTAMP=`date +%Y%m%d%H%M%S`
LOG=call_sql_${TIMESTAMP}.log
echo "Start execute sql statement at `date`." >>${LOG}

# execute sql stat
mysql -uroot -p123456 -e "
tee /tmp/temp.log
drop database if exists tempdb;
create database tempdb;
use tempdb
create table if not exists tb_tmp(id smallint,val varchar(20));
insert into tb_tmp values (1,'jack'),(2,'robin'),(3,'mark');
select * from tb_tmp;
notee
quit"

echo -e "\n">>${LOG}
echo "below is output result.">>${LOG}
cat /tmp/temp.log>>${LOG}
echo "script executed successful.">>${LOG}
exit;

[root@SZDB ~]# ./shell_call_sql1.sh
Logging to file '/tmp/temp.log'
+------+-------+
| id | val |
+------+-------+
| 1 | jack |
| 2 | robin |
| 3 | mark |
+------+-------+
Outfile disabled.

2、命令行調用單獨的SQL文件

代碼如下:

[root@SZDB ~]# more temp.sql
tee /tmp/temp.log
drop database if exists tempdb;
create database tempdb;
use tempdb
create table if not exists tb_tmp(id smallint,val varchar(20));
insert into tb_tmp values (1,'jack'),(2,'robin'),(3,'mark');
select * from tb_tmp;
notee
[root@SZDB ~]# mysql -uroot -p123456 -e "source /root/temp.sql"
Logging to file '/tmp/temp.log'
+------+-------+
| id | val |
+------+-------+
| 1 | jack |
| 2 | robin |
| 3 | mark |
+------+-------+
Outfile disabled.

3、使用管道符調用SQL文件
代碼如下:

[root@SZDB ~]# mysql -uroot -p123456 </root/temp.sql
Logging to file '/tmp/temp.log'
id val
1 jack
2 robin
3 mark
Outfile disabled.
#使用管道符調用SQL文件以及輸出日誌
[root@SZDB ~]# mysql -uroot -p123456 </root/temp.sql >/tmp/temp.log
[root@SZDB ~]# more /tmp/temp.log
Logging to file '/tmp/temp.log'
id val
1 jack
2 robin
3 mark
Outfile disabled.

4、shell腳本中MySQL提示符下調用SQL

代碼如下:

[root@SZDB ~]# more shell_call_sql2.sh
#!/bin/bash
mysql -uroot -p123456 <<EOF
source /root/temp.sql;
select current_date();
delete from tempdb.tb_tmp where id=3;
select * from tempdb.tb_tmp where id=2;
EOF
exit;
[root@SZDB ~]# ./shell_call_sql2.sh
Logging to file '/tmp/temp.log'
id val
1 jack
2 robin
3 mark
Outfile disabled.
current_date()
2014-10-14
id val
2 robin

5、shell腳本中變數輸入與輸出

代碼如下:

[root@SZDB ~]# more shell_call_sql3.sh
#!/bin/bash
cmd="select count(*) from tempdb.tb_tmp"
cnt=$(mysql -uroot -p123456 -s -e "${cmd}")
echo "Current count is : ${cnt}"
exit
[root@SZDB ~]# ./shell_call_sql3.sh
Warning: Using a password on the command line interface can be insecure.
Current count is : 3

[root@SZDB ~]# echo "select count(*) from tempdb.tb_tmp"|mysql -uroot -p123456 -s
3

[root@SZDB ~]# more shell_call_sql4.sh
#!/bin/bash
id=1
cmd="select count(*) from tempdb.tb_tmp where id=${id}"
cnt=$(mysql -uroot -p123456 -s -e "${cmd}")
echo "Current count is : ${cnt}"
exit

[root@SZDB ~]# ./shell_call_sql4.sh
Current count is : 1

㈤ 在linux命令行中執行sql查詢出現亂碼

select userenv('language') from al;
先確認Oracle的字元集,sqlplus登錄Oracle後執行語句:

select userenv('language') from al;

返回值例如:AMERICAN_AMERICA.ZHS16GBK

export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
修改Linux的NLS_LANG環境變數,修改Oracle指定的Linux用戶下面「.base_profile」文件,加入如下:

export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"

用Linux命令「source ~/.base_profile」或者重啟,使環境變數設置生效;查看環境變數的Linux命令為「echo $NLS_LANG」。

㈥ linux下怎樣能執行sqlite3多條SQL語句,比如一個txt文檔里存放多條語句怎樣來執行

只能循環讀出來執行,還要看 是不是帶參數,
下面是個讀sql 語句的函數
int db_order(sqlite3 *db,char *sql)
{
va_list ap;
int ret = 0;

ret = sqlite3_exec(db, sql, NULL, NULL, NULL);
sqlite3_free(sql);
if(ret != SQLITE_OK) {
fputs("insert error\n",stderr);
}
return ret;
}
int main(void)
{
sqlite3 *db;
char *sql=NULL;
sql = sqlite3_mprintf("select * from datebase;");
db_order(db,sql);
}
你把sqlite3_mprintf()里的語句換做讀出來的字元串

㈦ linux 怎麼執行sql

以下舉個例子,在shell下執行SQL命令然後馬上回到shell.
其中MYSQL密碼和賬號都是www

$ mysql -uwww -pwww -hlocalhost -e "show databases;"
+--------------------+
| Database |
+--------------------+
| information_schema |
+--------------------+
$

如果要執行不止一條命令,則可以先寫到一個文件中,然後再用輸入重定向完成。比如我可以把SQL指令都寫到/tmp/sqltest中然後
$ mysql -uwww -pwww -hlocalhost < /tmp/testsql
Database
information_schema
$
#註:為方便,我 testsql 中還是只有一條命令,還是 show databases;

㈧ linux怎麼執行sql文件命令

Linux上執行SQL命令和Windows的cmd執行SQL命令操作是一樣的
都是mysql -u root -p 輸入密碼 進入資料庫 後其他操作都是一樣的

㈨ Linux資料庫:mysql下如何執行sql腳本_第2頁

同樣,可以手動執行sql文件,具體步驟如下:
1、使用root帳戶登錄到MySQL伺服器;
2、執行source命令:
mysql>
source
c:/test.sql
注意:文件路徑中建議使用「/」,如果使用「\」,要首先進行轉義即「\\」,否則可能會出現錯誤。
另外還有一個load命令可以批量插入數據,但是這個對文件中數據格式的要求比較嚴格,否則容易出現錯誤,很少使用。
mysql
查看所有用戶的語句
輸入指令select
user();
例:(項目來源:尚學堂)struts_training_itemmgr.sql內容如下:
Sql代碼
DROP
TABLE
t_items;
DROP
TABLE
t_data_dict;
CREATE
TABLE
t_items
(
item_no
varchar(20)
not
null
key,
item_name
varchar(20)
not
null,
spec
varchar(20),
pattern
varchar(10),
category
varchar(20),
unit
char(20)
);
CREATE
TABLE
t_data_dict
(
id
varchar(5)
not
null
key,
category
varchar(20),
name
varchar(30)
);
#
t_data_dict的初始化數據
INSERT
INTO
t_data_dict(id,category,name)
values('B01','item_category','精通Spring2.X
Java
Web開發');
INSERT
INTO
t_data_dict(id,category,name)
values('B02','item_category','Java語言與面向對象程序設計');
INSERT
INTO
t_data_dict(id,category,name)
values('B03','item_category','2B鉛筆');
INSERT
INTO
t_data_dict(id,category,name)
values('B04','item_category','HOTROCK
notebook');
INSERT
INTO
t_data_dict(id,category,name)
values('C01','item_unit','本');
INSERT
INTO
t_data_dict(id,category,name)
values('C02','item_unit','支');
INSERT
INTO
t_data_dict(id,category,name)
values('C03','item_unit','箱');

㈩ 如何在linux中執行sql文件

如何在linux中執行sql文件
第一種方法:
在命令行下(未連接資料庫),輸入 mysql -h localhost -u root -p123456 < F:\hello world\niuzi.sql (注意路徑不用加引號的!!) 回車即可.
第二種方法:
在命令行下(已連接資料庫,此時的提示符為 mysql> ),輸入 source F:\hello world\niuzi.sql (注意路徑不用加引號的)
或者 \. F:\hello world\niuzi.sql (注意路徑不用加引號的) 回車即可.

閱讀全文

與linux執行sql語句相關的資料

熱點內容
程序員送女友的相冊 瀏覽:252
壓縮文件怎麼設置打開加密 瀏覽:764
tracert命令結果詳解 瀏覽:357
唯賽思通用什麼APP 瀏覽:371
古玩哪個app好賣 瀏覽:146
u盤內容全部顯示為壓縮包 瀏覽:517
編譯固件時使用00優化 瀏覽:357
速借白條app怎麼樣 瀏覽:756
用紙張做的解壓東西教程 瀏覽:12
求圓的周長最快演算法 瀏覽:190
安卓熱點怎麼減少流量 瀏覽:270
北京代交社保用什麼app 瀏覽:855
第一眼解壓視頻 瀏覽:726
文件夾err是什麼 瀏覽:97
qt4編程pdf 瀏覽:572
區域網伺服器下如何連續看照片 瀏覽:254
經過加密的數字摘要 瀏覽:646
加密鎖9000變列印機 瀏覽:694
程序員的職業發展前途 瀏覽:639
安卓是世界上多少個程序員開發 瀏覽:45