『MySQL学习』MySQL学习及相关注意点

来源:互联网 发布:三位一体2 mac版 编辑:程序博客网 时间:2024/04/29 20:33

1、给变量赋值时,赋值符号两边不能有空格。如:

set @test:=1;

注:不要忘记 :

2、使用变量时必须要加上 @

3、如果某表存在则删除的语句是:DROP TABLE IF EXISTS table_name

4、mysql常用 时间计算函数

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_2WHERE test_1.a = test_2.aa);


10、连接数据库:use database_name;

11、ENUM和SET的区别: ENUM 类型的数据的值,必须是定义时枚举的值的其中之一,即单选,而 SET 类型的值则可以多选

12、

在MySQL中,通常有这几种约束:

约束类型:主键默认值唯一外键非空关键字:PRIMARY KEYDEFAULTUNIQUEFOREIGN KEYNOT NULL13、在MySQL中违反非空约束,不会报错,只会有警告

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_nameFIELDS 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 列,则插入顺序中的下一个数字


0 0
原创粉丝点击