SQL 基本語句

2021-08-02 05:41:09 字數 4002 閱讀 7020

1 建表,主鍵約束,外來鍵約束。

create table course (

cno int(11) not null auto_increment,

cname char(20) default null,

cteachername char(20) default null,

primary key (cno)

)create table student (

sno int(11) not null auto_increment,

sname char(20) default null,

sxe char(2) default null,

age int(11) default null,

primary key (sno)

)create table sc (

sno int(20) not null,

cno int(20) not null,

primary key (sno,cno),

constraint sc_ibfk_1 foreign key (sno) references student (sno),

constraint sc_ibfk_2 foreign key (cno) references course(cno)

)

說明:進行外來鍵約束時,當主表中記錄刪除時,從表中的記錄將級聯刪除,在外鍵約束的最後新增on delete cascade,例子如下:

foreign key (sno) references s (sno) on delete cascade
另外一種當主表中的記錄刪除時,從表中記錄的外來鍵將會設定為null,在外鍵約束後新增on delete set null,例子如下:

foreign key (sno) references s (sno) on delete set null
2 批量刪除與插入:

批量刪除方法一:

delete from mytable where id in (1,2);
批量插入方法一:

insert into mytable(id,name) values(1,'123');

insert into mytable(id,name) values(2,'456');

insert into mytable(id,name) values(3,'789');

批量插入方法二:使用union all來進行插入操作:

insert into mytable(id,name)

select 4,'000'

union all

select 5,'001'

union all

select 6,'002' ;

據說要比第一種要快!

批量刪除方法三:

insert into mytable(id,name) values(7,'003'),(8,'004'),(9,'005');
3 增刪改查

insert into user(name,password,count) 

value('123','123',1)

update user

set count=count+1

where id=1

delete from user

where id=1

select name,password,

case

when flag=0 then '已刪除'

when flag=1 then '存在'

else '未知狀態'

end as flag

from user

order by createtime desc limit 1,1 第二條記錄

1 sql and & or 運算子

如果第乙個條件和第二個條件都成立,則 and 運算子顯示一條記錄。

如果第乙個條件和第二個條件中只要有乙個成立,則 or 運算子顯示一條記錄。

select * from user where type=『admin』 or type=『root』

2 sql select distinct

列出不重複的值

select distinct type from user

列出所有的使用者型別。

3 sql order by

對結果進行排序,預設為公升序。

4 sql select top, limit, rownum

top返回指定數量的記錄。

limit返回指定區間的記錄

5 sql like

搜尋指定的模式

select * from user where name like 『dema%』

萬用字元說明:

% 替代 0 個或多個字元

_ 替代乙個字元

[charlist] 字元列中的任何單一字元

[^charlist]

或[!charlist] 不在字元列中的任何單一字元

6 sql in

在where中指定多個值。

select * from user where name in(張三,李四)

7 sql between

選擇介於兩者之間的。

select * from user where age between 1 and 10

8 連線方式

inner join:如果表中有至少乙個匹配,則返回行,如果沒有則不會列出這些行。

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

right join:即使左表中沒有匹配,也從右表返回所有的行

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

9 inner join

兩張表內連線後的結果集產生效果圖:

如果沒有一行匹配,則無結果。

10 sql left join

左邊的表與右邊進行匹配,能匹配到的行則返回完整的行,如果右邊匹配沒有,則該行的列為null。

結果集產生的效果圖:

結果:

11 sql right join

right join 關鍵字從右表(table2)返回所有的行,即使左表(table1)中沒有匹配。如果左表中沒有匹配,則結果為 null。

效果圖:

結果集:

左表與右表進行匹配,如果能匹配則返回,不能則為空。full outer join 關鍵字結合了 left join 和 right join 的結果。

效果圖:

如果左表和右表均不能匹配,還是會有該列資料,只不過均為null。

13 sql union

合併多個select操作,必須擁有相同的列和對於的相同的資料型別。可查詢的是不同的表。使用union all是顯示不同的資料。使用union欄位會顯示相同的資料。

部分摘自菜鳥教程。

SQL 基本語句

在查詢分析器中執行如下語句 sp password null,teracypwd sa 把sa的密碼設為 teracypwd 執行成功後有 command s completed successfully.ok insert into 表名稱 values 值1,值2,insert into per...

sql基本語句

sql常用命令 資料的增刪改查 增加資料 插入資料 insert into 表名 字段 字段 values 值,值,值.按需要字段填寫 insert into 表名 values 值,值,值.插入全部字段,自動增長列不寫 刪除資料 記得有外來鍵先刪除主鍵表裡的相應內容 刪除表裡的內容 delete ...

sql基本語句

1 建立表 create table 表名 列名 資料型別 完整性約束條件 create table test id varchar 50 primary key,name varchar 100 varchar 20 addr text 2 新增新的列 新增加的列不能定義為not null alt...