1. 程式人生 > >2018-11-21_SQL學習筆記

2018-11-21_SQL學習筆記

distinct選擇不同的內容

select distinct id from tablename;查詢不重複的id

select count(distinct id) from tablename 查詢不重複的id的個數

SQL在文字只周圍使用單引號(大部分也支援雙引號)

數值欄位不實用引號

select id from tablename where name like 'guo*'  查詢名字是guo開頭的id

select * from tablename where not id = '001' 查詢id不為001的資料

select  * from tablename where id='001' and (name='guo' or name = 'chen') 以後通過括號進行套用

order by 關鍵字預設按照升序排列

insert into table (column,column1,column4) values(value,value1,value4)  可以只插入部分值

insert into table values (value,value1,value2....) 插入所有的列,而且要一一對應

NULL代表的是一種狀態,不是一個值,代表這個地方是空的,什麼都沒有

當我們給表中的幾個欄位插入資料以後,剩下的沒有插入資料的欄位是自動插入NULL

判斷是否為null的辦法,   is null  或者 is not  null

在我們建立表的時候,可以設定某些欄位是not null,就是必須插入值

在這裡要提醒一下  not null 和 primary key 都必須插入值 否則報錯

一般情況下 查詢出來的null顯示的是空白  不是NULL

update table set column1 = value1,volumn3 = value3 where condition

注意一定要使用where或者其他限制條件,否則所有的資料都會被update

注意點:主鍵不能直接update,因為主鍵在生成的時候已經校驗過重複了,不允許在修改的時候出現重複

delete from table 刪除表中所有資料

delete * from table 也是刪除所有資料

select * from table limit 5   選擇前五條記錄

select top 5 * from table   選擇前五條記錄  

oracle中使用 rownum <= 3  Oracle中查詢5條資料

select top 50 percent * from table 查詢50%的資料

where name like 'A%'  name是A開頭的資料

where name like '%B'  name是B結尾的資料

where name like '%guo%'  在任何位置包含guo的值

where name like '_r%'  name的第二個欄位是r的值

where name like 'a_%_%'  代表a開頭的最少三個欄位的值

where name like '[a-c]%' a或b或c開頭的值

where name like '%[!bmp]' 不是b或m或p結尾的值

select * from customers where county in ('germany',;Japan;,'Tokoy');

select * from custumoers where county in (select county from user)

between 可以比較數字,文字或日期

where money between 10 and 20

where name between 'guo' and 'chen' name是guo或者chen的人

between在不同的資料庫中不同,不一定代表

Oracle中 number表示數字型別,varchar和varchar2表示字串型別

Mysql中Int Integer表示不帶小數的數字,float doublenumeric表示小數

切記,不同的資料庫的資料型別是有差異的,一定要根據實際情況來使用

alter table t00_user add  (columnname,datatype) 為user表增加一個int型別的id列

alter table t00_user drop column columnname 去掉t00_user表中的某個列

select username as name from t_user    使用as的時候後面的值不需要用引號

只有建立unique index的時候才會限制重複

檢視的有效期:只要引用的原表存在就會一直儲存

臨時表在回話結束的時候系統就會自動刪除

inner join (內連線,就是兩個表的公共部分) 表示至少兩個表中要有一個匹配,則返回行

left join 即使右表中沒有匹配,也返回左邊所有行

full join 只要其中一個表中存在匹配,則返回行

full outer join 返回兩個表中的所有資料

union 是列出兩個表中不重複的資料

union是列出兩個表中的所有資料

select * into newtable from table where 0=1;  建立一個同樣的新表

select * into newtable from table;

insert into newtable select * from talbe;

alter table table_name drop index index_name;刪除掉目標表的指定索引

drop index index_name 刪除索引

truncate table table_name  清空表中的資料

drop table table_name  刪除掉整張表

create table chen (id int not auto_increment ,name varchar(255) not null,ip varchar(255),primary key (id))

每當使用者查詢view中的資料時,資料庫會預設從表中檢視最新資料