1、给变量赋值时,赋值符号两边不能有空格。如:
set @test:=1;
注:不要忘记 :
2、使用变量时必须要加上 @
3、如果某表存在则删除的语句是:DROP TABLE IF EXISTS table_name
5、engine=memory是指这张表作为一张内存表.内存表的特点是读写快,但重启后会清空.并且对字段大小和类型有要求
注:在创建表时,engine=memory 需放在 字段 后面
6、time_to_sec()函数仅仅计算了时间部分的秒数,没有把年月日的秒数计算进去
7、UNIX_TIMESTAMP(),这个函数返回的是自1970年以来的秒数
8、协调世界时(英:Coordinated Universal Time ,法:Temps Universel Coordonné),又称世界统一时间,世界标准时间,国际协调时间。英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称UTC
9、利用两个原有的表建立新表
DROP TABLE IF EXISTS test_3;
CREATE TABLE test_3 AS
( SELECT a, b, c FROM test_1, test_2
WHERE test_1.a = test_2.aa);
10、连接数据库:use database_name;
11、ENUM和SET的区别: ENUM 类型的数据的值,必须是定义时枚举的值的其中之一,即单选,而 SET 类型的值则可以多选
12、
在MySQL中,通常有这几种约束:
约束类型: | 主键 | 默认值 | 唯一 | 外键 | 非空 |
---|---|---|---|---|---|
关键字: | PRIMARY KEY | DEFAULT | UNIQUE | FOREIGN KEY | NOT NULL |
14、_ 表示一个未指定字符,%表示不定个未指定字符
15、默认情况下,ORDER BY的结果是升序排列,而使用关键词ASC和DESC可指定升序或降序排序
16、利用 SELECT 结果创建表
USE DATABASE_name;
CREATE TABLE test SELECT a, b, c FROM TABLE_name;
SELECT * FROM test;
注意:如果在数据拷贝进表时发生错误,则表会被自动删除
17、利用空拷贝来创建新表
CREATE TABLE test SELECT * FROM test2 WHERE 0;
注意:可以用在希望建立跟 test2 表的列名和数据类型一样的新表,免去建表的麻烦
18、创建临时表
CREATE TEMPORARY TABLE
19、利用 INSERT INTO ... SELECT 来更新多行数据
# 建立一个空表
CREATE TABLE test_1 SELECT * FROM test2 WHERE 0;
# 利用 INSERT ... SELECT 来插入多行值
INSERT INTO test_1 SELECT * FROM test2;
SELECT * FROM test_1;
注意:查询不能包括一个 ORDER BY 子句
20、使用数据集更新数据到数据库表中
LOAD DATA LOCAL INFILE
file_path
INTO TABLE -- 想导入到哪个表
TABLE_name
FIELDS
ESCAPED BY '\\' -- 字段中使用的转义符为 \\
TERMINATED BY ',' -- 字段间以 , 号分隔
ENCLOSED BY '"' -- 字段用 " 号括起
LINES TERMINATED BY '\r\n' -- 行以 \r\n 结束
(a, b, c);
21、查询语句的关键字必须以以下的顺序给出:
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
LIMIT count
注意:在 MySQL 中除了 SELECT 外其它关键字都是可选的(但有的数据库不允许省略 FROM 关键字)
22、ORDER BY 可以使用多个 字段,排序顺序为从左到右
23、SELECT a, count(a) FROM test_4 GROUP BY a;
先对 a 分组,再按组来统计
GROUP BY 也可以使用多个字段,字段顺序也是从左到右
注意:count() 统计的是非空数据
24、清空整个表
DELETE FROM test_4;
一般都要加上 WHERE 语句来删除某些特定的行
25、count() 统计的是非空数据,且是所有的非空数据的总数。如果加上 DISTINCT 关键字,则会统计不同种类的(不同的数)的总数,即去重后的总数
26、SELECT b, MIN(a) FROM test_4;
返回的结果是字段 a 最小的值(如有相同的数则返回最前的),b 字段返回的是 MIN(a) 所对应的值
27、日期函数
CURDATE() 返回的是当前的日期 如:2017-02-08
CURTIME() 返回的是当前的时间,如:15:11:02
NOW() 返回的是当前的 datetime 格式的时间
28、要想找到 NULL 必须用 IS NULL 而不是 =NULL
29、对某些列类型,NULL 值将被特殊地处理。如果你讲 NULL 插入表的第一个 TIMESTAMP 列,则插入当前的日期和时间。如果你讲 NULL 插入一个 AUTO_INCREMENT 列,则插入顺序中的下一个数字