MySql学习笔记----一些小知识点

本文介绍了MySQL数据库的基础配置,包括数据库文件存放位置、启动进程及连接文件的位置。详细讲解了如何通过LOAD DATA LOCAL INFILE导入本地文件的方法及注意事项,并概述了MySQL支持的主要数据类型及其特点。此外还涉及了SQL_MODE的设置与作用以及SQL操作符的使用。
摘要由CSDN通过智能技术生成

mysql 的数据库存放目录默认是 /var/lib/mysql,这个目录也被定义为 mysql 的根目录,
/usr/bin/mysqld_safe 负责启动进程
/usr/libexec/mysqld 执行文件负责连接 mysql

1.关于从本地导入表

load data local infile ‘路径’ into table 表名;

报错:ERROR 1148 (42000): The used command is not allowed with this MySQL version;
1.检查一下mysql版本号:mysql> select version();
mysql5.1或者以上的都支持load data local infile操作
2.登录是加 –local-infile 可解决问题
例: mysql –local-infile -u test -p
3.在安装时加上–enable-local-infile
例:
./configure –prefix=/usr/local/mysql –enable-local-infilemakemake install

ps:在本地的*.txt表中(要导入的),\N表示NULL.

如果用Windows中的编辑器(使用\r\n做为行的结束符)创建文件,应使用:

load data local infile ‘路径’ into table 表名
lines terminated by ‘\r\n’;

2.数据类型

MySQL有三大类数据类型, 分别为数字、日期\时间、字符串, 这三大类中又更细致的划分了许多子类型:

数字类型
整数: tinyint、smallint、mediumint、int、bigint
浮点数: float、double、real、decimal
日期和时间: date、time、datetime、timestamp、year

字符串类型
字符串: char、varchar
文本: tinytext、text、mediumtext、longtext
二进制(可用来存储图片、音乐等): tinyblob、blob、mediumblob、longblob

char是一种固定长度的类型,varchar则是一种可变长度的类型
  char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于M,MySQL就会在它
的右边用空格字符补足.(在检索操作中那些填补出来的空格字符将被去掉)在varchar(M)类型的数据列里,每个值只占用刚好够用的字节再加上一个用来记录其长度的字节(即总长度为L+1字节).

自定义变量 @varname

SET @var_name = expr [, @var_name = expr] …
(ps:用户变量(@)和系统变量(@@))

binary保存二进制字符串,它保存的是字节而不是字符,没有字符集限制

BLOB类型的字段用于存储二进制数据

十六进制值的默认类型是字符串。如果想要确保该值能作为数字处理,可以使用CAST(…AS UNSIGNED):

可以使用b’value’符号表达位域型。value是一个用0和1写成的二进制值。位域型数值可以方便指定分配给BIT列的值

ENUM 是一个字符串对象,其值通常选自一个允许值列表中,该列表在表创建时的列规格说>明中被明确地列举

3.sql_mode

mysql数据库的中有一个环境变量sql_mode,定义了mysql应该支持的sql语法,数据校验等
查看

select @@sql_mode;

查看系统变量

show variables like ‘sql_mode%’;

mysql5.0以上版本支持三种sql_mode模式:ANSI、TRADITIONAL和STRICT_TRANS_TABLES。
ANSI模式:宽松模式,对插入数据进行校验,如果不符合定义类型或长度,对数据类型调整
或截断保存,报warning警告。
TRADITIONAL模式:严格模式,当向mysql数据库插入数据时,进行数据的严格校验,保证错
误数据不能插入,报error错误。用于事物时,会进行事物的回滚。
STRICT_TRANS_TABLES模式:严格模式,进行数据的严格校验,错误数据不能插入,报error错误。

4.操作符

<> 与!=都是不等于的意思,但是一般都是用<>来代码不等于因为<>在任何SQL中都起作用>但是!=在sql2000中用到,则是语法错误,不兼容的

<=> 于 = 类似 ,<=> 可严格比较两个NULL值是否相等: ‘a’ <=> NULL 得0 NULL<=> NULL 得出 1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值