2018-04-25 MySQL
1、where语句:还可以和between、in、not in 、LIKE(通配符是 _ 和 %:SQL模式时,不能使用=或!=,而应使用LIKE或NOT LIKE比较操作符)、连用。
限制条件 age>25 AND age<30 ,如果需要包含25和30这两个数字的话,可以替换为 age BETWEEN 25 AND 30
2、COUNT 函数可用于任何数据类型(因为它只是计数),而 SUM 、AVG 函数都只能对数字类数据类型做计算,MAX 和 MIN 可用于数值、字符串或是日期时间数据类型。
3、修改值:UPDATE 表名字 SET 列1=值1,列2=值2 WHERE 条件;
重命名:ALTER TABLE 表名字 CHANGE 原列名 新列名 数据类型 约束;
增加列:ALTER TABLE 表名字 ADD COLUMN 列名字 数据类型 约束;
ALTER TABLE employee ADD test INT(10) DEFAULT 11 FIRST;
导入:LOAD DATA INFILE '文件路径和文件名' INTO TABLE 表名字;
导出:SELECT 列1,列2 INTO OUTFILE '文件路径和文件名' FROM 表名字;
备份与导出的区别:导出的文件只是保存数据库中的数据;而备份,则是把数据库的结构,包括数据、约束、索引、视图等全部另存为一个文件。
使用 mysqldump 备份的语句:mysqldump-u root 数据库名>备份文件名 ; #备份整个数据库mysqldump-u root 数据库名 表名字>备份文件名;#备份整个表
恢复:把刚才备份的 bak.sql 恢复到 test 数据库: mysql -u root test< bak.sql
4、索引:SHOW INDEX FROM tbl_name生成有关索引的信息
ALTER TABLE employee ADD INDEX idx_id (id); #在employee表的id列上建立名为idx_id的索引CREATE INDEX idx_name ON employee (name); #在employee表的name列上建立名为idx_name的索引
5、视图:
CREATE VIEW 视图名(列a,列b,列c) AS SELECT 列1,列2,列3 FROM 表名字;
6、取消执行:如果你决定不想执行正在输入过程中的一个命令,输入\c取消它
7、 DESCRIBE pet;
8、请注意如果用Windows中的编辑器(使用\r\n做为行的结束符)创建文件,应使用:
mysql> LOAD DATA INFILE '文件路径' INTO TABLE pet LINES TERMINATED BY'\r\n';
9、查询使用death IS NOT NULL而非death != NULL,因为NULL是特殊的值,不能使用普通比较符来比较。
10、如果你想强制使REGEXP比较区分大小写,使用BINARY关键字使其中一个字符串变为二进制字符串。该查询只匹配名称首字母的小写‘b’。
mysql>SELECT * FROM pet WHERE name REGEXP BINARY '^b';
为了找出包含一个“w”的名字,使用以下查询:
mysql > SELECT * FROM pet WHERE name REGEXP 'w';
11、通过使用用户变量找出价格最高或者最低的物品:
mysql>SELECT@min_price:=MIN(price),@max_price:=MAX(price)FROMshop;
mysql>SELECT * FROM shop WHERE price=@min_price OR price=@max_price;
12、在定义列属性的时候添加AUTO_INCREMENT语句可以使得每条记录都能被唯一标识;