LOAD DATA INFILE语句可以将CSV文件中的数据批量加载到MySQL表中。以下是LOAD DATA INFILE语句的基本语法:
LOAD DATA INFILE 'file_path'
TRUNCATE INTO TABLE table_name
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS
trailing nullcols
file_path:CSV文件的完整路径。
table_name:要将数据加载到其中的目标MySQL表名称。
FIELDS TERMINATED BY ',':指定分隔符。在上面的示例中,我们使用逗号分隔每个字段。
ENCLOSED BY '"':指定字段值用来包含特殊字符的字符。在上面的示例中,我们使用双引号来包含所有字段值。
LINES TERMINATED BY '\n':表示每个记录以换行符结束。
IGNORE 1 ROWS:忽略第一行标题。
trailing nullcols: 表的字段没有对应的值时允许为空?
TRUNCATE说明:在操作类型 TRUNCATE位置, 除了可以用TRUNCATE,还可用以下中的任意一值:
1) insert ? ? --为缺省方式,在数据装载开始时要求表为空
2) append --在表中追加新记录
3) replace --删除旧记录(用 delete from table 语句),替换成新装载的记录
4) truncate --删除旧记录(用 truncate table 语句),替换成新装载的记录
========================================================
通常情况下,在工作中用的最多的有如下几项:
1、$#:表示执行脚本传入参数的个数
2、$*:表示执行脚本传入参数的列表(不包括$0)
3、$$:表示进程的id;Shell本身的PID(ProcessID,即脚本运行的当前 进程ID号)
4、$!:Shell最后运行的后台Process的PID(后台运行的最后一个进程的 进程ID号)
5、$@:表示获取执行脚本传入的所有参数
6、$0:表示执行的脚本名称
7、$1:表示第一个参数
8、$2:表示第二个参数
9、$?:表示脚本执行的状态,0表示正常,其他表示错误
在Shell脚本中,我们经常会看到$0、$1、$2、$3等,看着像是参数,但又不太像,这些究竟表示啥呢?其实非常简单:
$0:你写的shell脚本本身的名字
$1:给你写的shell脚本传的第一个参数
$2:给你写的shell脚本传的第二个参数
================================
echo "Hello, World!" > output.txt ? ?将Hello, World!写入文件output.txt(覆盖)
echo "Hello again, World!" >> output.txt ? ? 将Hello, World!写入文件output.txt(后面追加)
echo "Error: Something went wrong!" 2> error.log ? ? 将错误信息重定向写入文件error.log(覆盖)
echo -e "OK! \n" # -e 开启转义
===========================
# 变量引用示例
name="Alice"
echo "Hello, ${name}!" ?
# 输出:Hello, Alice!
# 变量默认值示例
unset age
default_age=18
echo "Age: ${age:-$default_age}" ?
# 输出:Age: 18,因为变量 age 未设置,默认使用 $default_age 的值
# 变量存在性检查示例
name="Bob"
echo "Welcome, ${name:+$name}" ?
# 输出:Welcome, Bob,因为变量 name 存在且非空
# 变量长度获取示例
message="Hello, World!"
echo "Message length: ${#message}" ?
# 输出:Message length: 13
# 字符串截取示例(从左边截取)
string="abcdefg"
echo "Substring: ${string:1:3}" ?
# 输出:Substring: bcd,从位置 1 开始截取长度为 3 的子字符串
# 字符串截取示例(从右边截取)
string="abcdefg"
echo "Substring: ${string:0-3}" ?或者 ?echo "Substring: ${string: -3}" ? ? 备注:空格-3
# 输出:Substring: bcd,从位置 1 开始截取长度为 3 的子字符串