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

来源:互联网 发布:重复歌曲删除软件 编辑:程序博客网 时间:2024/06/14 05:53

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

1 0