mysql与其他数据库_Mysql与其他数据库一些不同地方

1.Insert Set语句

mysql> create table wison_test1(id int,name varchar(10));

Query OK, 0 rows affected (0.10 sec)

mysql> insert into wison_test1 set id=1,name='wison';-------相对于后一条insert语句,返回的提示信息少了一行

Query OK, 1 row affected (0.08 sec)

mysql> select * from wison_test1;

+------+-------+

| id | name |

+------+-------+

| 1 | wison |

+------+-------+

1 row in set (0.00 sec)

mysql> insert into wison_test1 select 2,'Wison';

Query OK, 1 row affected (0.10 sec)

Records: 1 Duplicates: 0 Warnings: 0

mysql> select * from wison_test1;

+------+-------+

| id | name |

+------+-------+

| 1 | wison |

| 2 | Wison |

+------+-------+

2 rows in set (0.00 sec)

2.数据类型带长度

mysql> create table wison_test2(id int(5));

Query OK, 0 rows affected (0.12 sec)

mysql> insert into wison_test2 select 1;

Query OK, 1 row affected (0.10 sec)

Records: 1 Duplicates: 0 Warnings: 0

mysql> select * from wison_test2;

+------+

| id |

+------+

| 1 |

+------+

1 row in set (0.00 sec)

mysql> alter table wison_test2 modify id int(5) zerofill;

Query OK, 1 row affected (0.58 sec)

Records: 1 Duplicates: 0 Warnings: 0

mysql> select * from wison_test2;

+-------+

| id |

+-------+

| 00001 |

+-------+

1 row in set (0.00 sec)

mysql> insert into wison_test2 select 1111111;

Query OK, 1 row affected (0.10 sec)

Records: 1 Duplicates: 0 Warnings: 0

mysql> select * from wison_test2;

+---------+

| id |

+---------+

| 00001 |

| 1111111 |

+---------+

2 rows in set (0.00 sec)

3.BIT类型---直接读取会查询不出结果,需要使用hex()或者bin()

mysql> create table wison_test3(id bit(2));

Query OK, 0 rows affected (0.11 sec)

mysql> insert into wison_test3 select 1;

Query OK, 1 row affected (0.07 sec)

Records: 1 Duplicates: 0 Warnings: 0

mysql> select * from wison_test3;

+------+

| id |

+------+

| |

+------+

1 row in set (0.00 sec)

mysql> select hex(id) from wison_test3;

+---------+

| hex(id) |

+---------+

| 1 |

+---------+

1 row in set (0.00 sec)

mysql> select bin(id) from wison_test3;

+---------+

| bin(id) |

+---------+

| 1 |

+---------+

1 row in set (0.00 sec)

4.TIMESTAMP类型--在Mysql中会根据当前时区不同返回不同的值

mysql> create table wison_test4(id1 timestamp,id2 datetime);

Query OK, 0 rows affected (0.09 sec)

mysql> show variables like 'time_zone';

+---------------+--------+

| Variable_name | Value |

+---------------+--------+

| time_zone | SYSTEM |

+---------------+--------+

1 row in set (0.00 sec)

mysql> insert into wison_test4 select now(),now();

Query OK, 1 row affected (0.07 sec)

Records: 1 Duplicates: 0 Warnings: 0

mysql> select * from wison_test4;

+---------------------+---------------------+

| id1 | id2 |

+---------------------+---------------------+

| 2014-04-29 23:05:03 | 2014-04-29 23:05:03 |

+---------------------+---------------------+

1 row in set (0.00 sec)

mysql> set time_zone='+9:00';

Query OK, 0 rows affected (0.00 sec)

mysql> select * from wison_test4;

+---------------------+---------------------+

| id1 | id2 |

+---------------------+---------------------+

| 2014-04-30 15:05:03 | 2014-04-29 23:05:03 |

+---------------------+---------------------+

1 row in set (0.00 sec)

mysql> set time_zone='-7:00';

Query OK, 0 rows affected (0.00 sec)

mysql> select * from wison_test4;

+---------------------+---------------------+

| id1 | id2 |

+---------------------+---------------------+

| 2014-04-29 23:05:03 | 2014-04-29 23:05:03 |

+---------------------+---------------------+

1 row in set (0.00 sec)

5.CHAR数据类型---CHAR会自动将后面的空格截断,VARCHAR会保留空格

mysql> create table wison_test5(c1 char(5),c2 varchar(5));

Query OK, 0 rows affected (0.11 sec)

mysql> insert into wison_test5 select 'a ','a ';

Query OK, 1 row affected (0.08 sec)

Records: 1 Duplicates: 0 Warnings: 0

mysql> select * from wison_test5;

+------+------+

| c1 | c2 |

+------+------+

| a | a |

+------+------+

1 row in set (0.00 sec)

mysql> select length(c1),length(c2) from wison_test5;

+------------+------------+

| length(c1) | length(c2) |

+------------+------------+

| 1 | 3 |

+------------+------------+

1 row in set (0.00 sec)

mysql> select concat(c1,'+'),concat(c2,'+') from wison_test5;

+----------------+----------------+

| concat(c1,'+') | concat(c2,'+') |

+----------------+----------------+

| a+ | a + |

+----------------+----------------+

1 row in set (0.00 sec)

6.ENUM类型---插入的值可以是在枚举的列表中,可以写明值,或者对应的顺序编号(比如3的意思就是第三个值),NULL(插入之后仍为NULL),传入不存在的值插入的是空格

mysql> create table wison_test6(country ENUM('CN','US','TW','RU','BR'));

Query OK, 0 rows affected (0.09 sec)

mysql> insert into wison_test6 values ('CN'),('US'),('1'),('3'),('4'),(2),(NULL);

Query OK, 7 rows affected (0.06 sec)

Records: 7 Duplicates: 0 Warnings: 0

mysql> select * from wison_test6;

+---------+

| country |

+---------+

| CN |

| US |

| CN |

| TW |

| RU |

| US |

| NULL |

+---------+

7 rows in set (0.00 sec)

mysql> insert into wison_test6 select 'CA';

Query OK, 1 row affected, 1 warning (0.06 sec)

Records: 1 Duplicates: 0 Warnings: 1

mysql> show warnings;

+---------+------+----------------------------------------------+

| Level | Code | Message |

+---------+------+----------------------------------------------+

| Warning | 1265 | Data truncated for column 'country' at row 1 |

+---------+------+----------------------------------------------+

1 row in set (0.00 sec)

mysql> select * from wison_test6;

+---------+

| country |

+---------+

| CN |

| US |

| CN |

| TW |

| RU |

| US |

| NULL |

| |

+---------+

8 rows in set (0.00 sec)

另一个例子----可以看到当枚举值背身为数字时,当insert的value没包含'',则表示是第几个枚举值,否则插入的值为insert的对应值.

mysql> create table wison_test7(id ENUM('1','2','4','3','5'));

Query OK, 0 rows affected (0.07 sec)

mysql> insert into wison_test7 values('1'),('3'),(3),('4'),(4);

Query OK, 5 rows affected (0.07 sec)

Records: 5 Duplicates: 0 Warnings: 0

mysql> select * from wison_test7;

+------+

| id |

+------+

| 1 |

| 3 |

| 4 |

| 4 |

| 3 |

+------+

5 rows in set (0.00 sec)

7.在Mysql中,如果列上有索引,无需先Drop Index,可直接修改列。这点与MSSQL不一致。如下:

mysql> create table test1(id int,name char(5));

Query OK, 0 rows affected (0.30 sec)

mysql> create index ix_test1_name on test1(name);

Query OK, 0 rows affected (0.21 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> show create table test1;

+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------+

| Table | Create Table |

+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------+

| test1 | CREATE TABLE `test1` (

`id` int(11) DEFAULT NULL,

`name` char(5) DEFAULT NULL,

KEY `ix_test1_name` (`name`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 |

+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------+

1 row in set (0.00 sec)

mysql> alter table test1 modify name char(10);

Query OK, 0 rows affected (0.54 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> show create table test1;

+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------+

| Table | Create Table |

+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------+

| test1 | CREATE TABLE `test1` (

`id` int(11) DEFAULT NULL,

`name` char(10) DEFAULT NULL,

KEY `ix_test1_name` (`name`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 |

+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------+

1 row in set (0.00 sec)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值