mysql--平日点滴知识随笔(待续)

(都是平时项目过程中的零碎知识疑惑点,哈哈,现在存放在这,以后笔试复习用!加油!!)
1.      
table表中的id字段设置为int auto_increment时:

insert into table values(null,’**’);添加的记录的id=已有的id+1;

insert into table values(34,’**’);添加的记录的id=34;

是故,当制定了id的具体数值时,则用那个数值,否则就原有的最大id+1

2.       alter table tb_name add column_name column_type;一次只能添加一个字段

3.               mysql中:
    alter table 数据表名 change 原列名 新列名 新列类型;

            oracle中:
    alter table 数据表名 rename 原列名 to 新列名;

4.       外键一定是主表的主关键字,不一定是从表的关键字!

5.       unsigned一般是无符号的意思,比如unsigned int就是无符号整数的意思,一般有符号数的最高位是符号位,表示数据的正负,不表示大小,而无符号数的最高位是表示数据的大小,这样无符号数表示的数据范围要比有符号数大一倍

  这里的id一般表示序号,所以设置为unsigned属性,这样的设计更科学合理。

6.       Blob (Binary large objects)储存二进位资料,且有分大小写

7.       辨別ZeroFill:当宣告关键字ZeroFill为自动填满0,如 000021

8.       Mysql中只有char(n)是固定长度的!

9.     9.         create table test(time datetime);
            insert into test values(1992-01-01 12:00:00);
            为什么第二句错误,手动插不了值

            答案: 改为insert into test values(‘1992-01-01 12:00:00’);

10. 数据库表设计的一个经验:

a. 一定要有个 int 的自增主键。即便当前没有自增的需求,也应当设置,以便在日后的应用场景中使用。

b. 有一个记录插入的时间缀。

c. 有一个记录更新的时间缀。这个字段默认值可以设置为当前时间缀,并且在记录更新时自动刷新时间缀。

11.    mysql中所有的数据库对象的名称都是大写的,虽然我们命名时小写了,但是引擎会自动转换成大写!

12.    使用innoDB引擎建立外键时,要注意除了数据类型,长度要相同外,还要求:无符号,填充零,也要一致!!

13.    注意:存储过程相当于程序,执行到错误或异常之处也会停止,而且已经执行的操作的结果不会回滚!!

14.    DATETIMEDATE允许“不严格”的语法:任何标点符都可以用做日期部分或时间部分之间的间割符。例如,'98-12-31 11:30:45''98.12.31 11+30+45''98/12/31 11*30*45''98@12@31 11^30^45'是等价的。例如,'98-12-31''98.12.31''98/12/31''98@12@31'是等价的。但是注意:1.标点符不包括字母 2.年月日 和 时分秒的间隔符不一定要相同,但两模块中各自内部的间隔符要求一致。

15.    对于一些没有间隔符的数字模式,例如‘19980903122321’就是符合‘YYYYMMDDHHMMSS’模式的,mysql会自动将之识别并按照对应的字段类型解释成对应的形式!!

例如:1.YYYYMMDDHHMMSS-----如果字段类型是dateTime--------à ’ YYYY-MM-DD HH:MM:SS’

      19980903122321’à ‘1998-09-03 12:23:21’

               2. YYYYMMDDHHMMSS-----如果字段类型是date--------à’ YYYY-MM-DD’

               3. YYYYMMDD-----如果字段类型是datetime-------à ‘YYYY-MM-DD 00:00:00 ’

由上面的例子可知,日期类型的使用真的是很灵活!!dbms真的很智能!

16.    尽管可以使用相同的格式指定DATETIMEDATETIMESTAMP值,不同类型的值的范围却不同。例如,TIMESTAMP值不能早于1970或晚于2037。这说明一个日期,例如'1968-01-01',虽然对于DATETIMEDATE值是有效的,但对于TIMESTAMP值却无效,如果分配给这样一个对象将被转换为0

17.    mysql中,有默认值的不允许null的字段和自增长字段,都可以不用在insert 语句中标明字段,因为它们会自己解决掉!

如:表:student(id int primary key auto-increment,name varchar(2) not null default ‘luo’,class varchar(2) not null)

Insert into student(class) values(‘class2’);

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29900383/viewspace-1461593/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29900383/viewspace-1461593/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值