SQL小知識點

2022-02-16 03:28:13 字數 2485 閱讀 8549

1:left join 返回左表中的所有行,即使右表中沒有匹配,返回一和虛表(包括兩個表的所有列),沒有匹配的字段為null

2:字串拼接符用concat或是||

因為題目判定系統使用的是sqlite3,所以必須按sqlite3的寫法來做,

insert or ignore into actor

values(3,'ed','chase','2006-02-15 12:34:33');

如果是mysql,那麼把or去掉,像下面這樣:

insert ignore into actor

values(3,'ed','chase','2006-02-15 12:34:33');

兩種資料庫還是有區別的。

4:select ...into table1 from table2(從table2中查取資料並建立乙個新錶table1中)

insert table1 select .. from table2(從table2中查取資料並放入到現有的表table1中)

5:建立表從其它表中查詢資料並插入到新錶中:

first_name varchar(45) not null,

last_name varchar(45) not null

);insert into actor_name select first_name,last_name from actor;

sql資料庫需要去掉as

wasrehpic

sqlite中,使用 indexed by 語句進行強制索引查詢,可參考:

select * from salaries indexed by idx_emp_no where emp_no =10005

mysql中,使用 force index 語句進行強制索引查詢,可參考:

select * from salaries force index idx_emp_no where emp_no =10005

7:修改表(結構):alter table 表名 add column 列名      alter tabel 表名 alter column 列名   alter table 表名 drop column 列名(column可以省略)  alter table 表名1 rename to/as 表名2(修改表名)

8:刪除表:drop table 表名(刪除整個表)        truncate table 表名(刪除表的內容,表結構還在)   delete table 表名 where(一行行刪除,不帶where時與truncate一樣)參考:刪除表

本題運用 replace 有兩種解法

方法一:全欄位更新替換。由於 replace 的新記錄中 id=5,與表中的主鍵 id=5 衝突,故會替換掉表中 id=5 的記錄,否則會插入一條新記錄(例如新插入的記錄 id = 10)。並且要將所有欄位的值寫出,否則將置為空。可參考:

replace into titles_test values (5,10005,'senior engineer','1986-06-26','9999-01-01')

方法二:運用replace(x,y,z)函式。其中x是要處理的字串,y是x中將要被替換的字串,z是用來替換y的字串,最終返回替換後的字串。以下語句用 update和replace 配合完成,用replace函式替換後的新值複製給 id=5 的 emp_no。replace的引數為整型時也可通過。可參考:

update titles_test set emp_no = replace(emp_no,10001,10005) where id =5

10:給已有的表新增外來鍵約束(mysql)   alter table 表名1 add foreign key(列名1)references 表名2(列名2)

sql 小知識點

1.group 用法 很多時候我們需要分組函式來統計資料,在此過程中因為業務問題可能會用到別名,此時sql可能會寫成如下樣子 select a.fee reserveas fee other,count 1 as count no from t expenses bill a group by a....

Hibernate 小知識點

今天比較忙沒怎麼寫 知識一些曉得知識或是經驗吧!1.lazy延遲載入 也可以說是需要的時候再區載入 場景 乙個類如person和address,person可以通過getaddress 來得到address的set集合.有乙個dao控制類operation.方法public person query...

dom 小知識點

1 classname屬性可設定或返回元素的 class 屬性。function getclass document.getelementbyid d1 classname bbb alert document.getelementbyid d1 classname 2 removechild 刪除...