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

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_2

WHERE test_1.a = test_2.aa);


10、连接数据库:use database_name;

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

12、

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

约束类型: 主键 默认值 唯一 外键 非空
关键字:PRIMARY KEYDEFAULTUNIQUEFOREIGN KEYNOT NULL
13、在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_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 列,则插入顺序中的下一个数字


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值