mysql不支持的語法

1.top不支持,但是可以用limit

2.通配符[]不支持

3.between 'tom' and 'lily' 但是支持日期

4.不支持select into

5.不支持check約束

6.不支持LEN()函數,但是有length

注意:

insert 沒有寫列名的時候,要對應列值,不能省略

join用的時候一定先on  主鍵相等,如果沒有外鍵約束,相同的列值顯示

select into 用以下方法代替

 -- 1.此方法將會把表的索引和結構都複製
 create table user_1 like user;
 -- 2.此方法只複製需要的(表中字段沒有auto_increment,int的default 0)
 create table user1 as select * from user;
 create table user1 as select * from user limit 條數;
-- 3.複製表結構及數據<!-- 沒有auto_increment -->
 create table user1 select * from user;
 create table user1 select * from user where id=1;
 limit where 都行
 -- 4.已有空表插入指定數據 或 常量
 insert into user1(username,sex)select username,sex from user;

對於check約束

MySQL所有的存儲引擎均不支持check約束,MySQL會對check子句進行分析,但是在插入數據時會忽略,因此check並不起作用,因此實現對數據約束有兩種方法:a:在mysql種約束,如使用enum類型或者觸發器等。b:在應用程序裏面對數據進行檢查再插入。 
這裏着重討論在mysql種使用enum和觸發器約束數據。

delete 與 truncate 區別 

         1、事務:truncate是不可以rollback的,但是delete是可以rollback的;

 

              原因:truncate刪除整表數據(ddl語句,隱式提交),delete是一行一行的刪除,可以rollback

 

         2、效果:truncate刪除後將重新水平線和索引(id從零開始) ,delete不會刪除索引    

 

         3、 truncate 不能觸發任何Delete觸發器。

 

         4、delete 刪除可以返回行數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章