mysql是一个命令行客户程序,用于交互式或以批处理模式执行SQL语句。
mysqladmin是用于管理功能的客户程序。
mysqlcheck执行表维护操作。
mysqldump和mysqlhotcopy负责数据库备份。
mysqlimport导入数据文件。
mysqlshow显示信息数据库和表的相关信息
myisamchk执行表维护操作
myisampack产生压缩、只读的表。
mysqlbinlog是处理二进制日志文件的实用工具。
perror显示错误代码的含义。
-----------------------------------------------------
关于null:
为了进行NULL处理,可使用IS NULL和IS NOT NULL操作符以及IFNULL()函数。
SELECT NULL, 1+NULL, CONCAT('Invisible',NULL); 都是返回null
如果打算搜索列值为NULL的列,不能使用expr = NULL测试。下述语句不返回任何行,这是因为,对于任何表达式,expr = NULL永远不为“真”:
使用ORDER BY时,首先将显示NULL值,如果指定了DESC按降序排列,NULL值将最后显示。
对于某些列类型,MySQL将对NULL值进行特殊处理。如果将NULL插入TIMESTAMP列,将插入当前日期和时间。如果将NULL插入具有AUTO_INCREMENT属性的整数列,将插入序列中的下一个编号。
----------------------------------------------------------
关于auto_increment:
CREATE TABLE test
(
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(15) NOT NULL
)
AUTO_INCREMENT = 100;
把0插入AUTO_INCREMENT数据列的效果与插入NULL值一样。但不建议这样做,还是以插入NULL值为好。
------------------------------------------------------
mysql中注释:#,--,/*......*/
------------------------------------------------------
常量TRUE等于1,常量FALSE等于0。常量名可以写成大写或小写
mysql> SELECT TRUE,true,FALSE,false; -> 1,1,0,0
------------------------------------------------------
对于SET,可以使用=或:=作为分配符。分配给每个变量的expr可以为整数、实数、字符串或者NULL值。
也可以用语句代替SET来为用户变量分配一个值。在这种情况下,分配符必须为:= 而不能用=, 因为在非SET语句中=被视为一个比较 操作符:
mysql> SET @t1=0, @t2=0, @t3=0;
mysql> SELECT @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3;
执行结果为:5 | 5 | 1 | 4 |
-----------------------------------------------
关于char,varchar
Varchar 对每个英文(ASCII)字符都占用2个字节,对一个汉字也只占用两个字节
char 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节
Varchar 的类型不以空格填满,比如varchar(100),但它的值只是"qian",则它的值就是"qian"而char 不一样,比如char(100),它的值是"qian",而实际上它在数据库中是"qian "(qian后共有96个空格,就是把它填满为100个字节)。
由于char是以固定长度的,所以它的速度会比varchar快得多!但程序处理起来要麻烦一点,要用trim之类的函数把两边的空格去掉!
varchar在存储时,在物理上要先存储该字段的实际长度,然后才是内容。这样读取的时候,就要读取两次,一次读它的长度,然后才是内容。所以它的访问速度会比char慢一些。但它可以节省空间
mysqladmin是用于管理功能的客户程序。
mysqlcheck执行表维护操作。
mysqldump和mysqlhotcopy负责数据库备份。
mysqlimport导入数据文件。
mysqlshow显示信息数据库和表的相关信息
myisamchk执行表维护操作
myisampack产生压缩、只读的表。
mysqlbinlog是处理二进制日志文件的实用工具。
perror显示错误代码的含义。
-----------------------------------------------------
关于null:
为了进行NULL处理,可使用IS NULL和IS NOT NULL操作符以及IFNULL()函数。
SELECT NULL, 1+NULL, CONCAT('Invisible',NULL); 都是返回null
如果打算搜索列值为NULL的列,不能使用expr = NULL测试。下述语句不返回任何行,这是因为,对于任何表达式,expr = NULL永远不为“真”:
使用ORDER BY时,首先将显示NULL值,如果指定了DESC按降序排列,NULL值将最后显示。
对于某些列类型,MySQL将对NULL值进行特殊处理。如果将NULL插入TIMESTAMP列,将插入当前日期和时间。如果将NULL插入具有AUTO_INCREMENT属性的整数列,将插入序列中的下一个编号。
----------------------------------------------------------
关于auto_increment:
CREATE TABLE test
(
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(15) NOT NULL
)
AUTO_INCREMENT = 100;
把0插入AUTO_INCREMENT数据列的效果与插入NULL值一样。但不建议这样做,还是以插入NULL值为好。
------------------------------------------------------
mysql中注释:#,--,/*......*/
------------------------------------------------------
常量TRUE等于1,常量FALSE等于0。常量名可以写成大写或小写
mysql> SELECT TRUE,true,FALSE,false; -> 1,1,0,0
------------------------------------------------------
对于SET,可以使用=或:=作为分配符。分配给每个变量的expr可以为整数、实数、字符串或者NULL值。
也可以用语句代替SET来为用户变量分配一个值。在这种情况下,分配符必须为:= 而不能用=, 因为在非SET语句中=被视为一个比较 操作符:
mysql> SET @t1=0, @t2=0, @t3=0;
mysql> SELECT @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3;
执行结果为:5 | 5 | 1 | 4 |
-----------------------------------------------
关于char,varchar
Varchar 对每个英文(ASCII)字符都占用2个字节,对一个汉字也只占用两个字节
char 对英文(ASCII)字符占用1个字节,对一个汉字占用2个字节
Varchar 的类型不以空格填满,比如varchar(100),但它的值只是"qian",则它的值就是"qian"而char 不一样,比如char(100),它的值是"qian",而实际上它在数据库中是"qian "(qian后共有96个空格,就是把它填满为100个字节)。
由于char是以固定长度的,所以它的速度会比varchar快得多!但程序处理起来要麻烦一点,要用trim之类的函数把两边的空格去掉!
varchar在存储时,在物理上要先存储该字段的实际长度,然后才是内容。这样读取的时候,就要读取两次,一次读它的长度,然后才是内容。所以它的访问速度会比char慢一些。但它可以节省空间