导航:首页 > 操作系统 > 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语句相关的资料

热点内容
做什么app赚钱 浏览:83
博途编译失败联系客户支持部门 浏览:926
金蝶旗舰版编译 浏览:50
万象服务器断电后启动不了怎么办 浏览:356
我的世界苹果版的2b2t服务器地址咋查 浏览:95
xlsx转换pdf 浏览:98
3dmax挤出命令英语 浏览:903
靶心率的定义和算法 浏览:514
3d模术师app哪里下载 浏览:474
php中文api文档 浏览:458
安卓设计怎么加入输入框 浏览:185
主根服务器什么时候开始 浏览:738
奇门遁甲完整版pdf 浏览:904
app软件怎么用的 浏览:802
电子书pdf购买 浏览:194
浪潮服务器如何做系统 浏览:112
冒险岛img格式加密 浏览:598
我的世界手游如何复制命令 浏览:660
天刀自动弹琴脚本源码 浏览:971
打开其它app微信怎么收不到 浏览:447