中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

SQL數據庫基礎語句

SQL語言

1.創建數據庫:

單行注釋 :##

多行注釋:/*

? */

2.創建數據庫表:

create table t_student(

sno int(6) not null,

sname varchar(5),

sex char(1),

age int(3),

enterdate date,

classname varchar(10),

email varchar(15)

);  

3.查看表的結構:展示表的字段的詳細信息

desc t_student;

4.查看表中的數據:

select * from t_student;

5.查看建表語句:

show create table t_student;

6.在t_student數據庫表中插入數據

inster into t_student values (001,'麗麗','女',19,'2019-6-9','軟件二班','1233@com');

inster into t_student values (002,'美美','女',19,'2019-6-10','軟件一班','4555@com');

inster into t_student values (003,'天天','男',19,'2019-6-9','軟件二班','1333@com');

inster into t_student values (004,'飛飛','男',19,'2019-7-9','計科二班','1255@com');

inster into t_student values (005,'彩彩','女',19,now(),'軟件一班','8990@com');

inster into t_student (sno,sanme,email) values (006,'莎莎','9990@com');

7.修改表中數據:

update t_student set sex = '女';  

update t_student set sex = '女' where sno = 004;


8.刪除表中數據:

delete from t_student;

delete from t_student where sno = 001;

9.修改表的結構--->增加一列:

alter table t_student add score double(5,2);  
-- (----->5:總位數   2:小數位)

-- 放在最前面:

alter table t_student add score double(5,2) first;

-- 放在sex列的后面:

alter table t_student add score double(5,2) after sex;

10.修改表的結構--->刪除一列:

alter table t_student drop score;

11.修改表的結構--->修改一列:

alter table t_student modify score float(4,1);   
-- modify修改的是列的類型的定義,但是不會改變列的名字

alter table t_student change score score1 double(5,1);   -- change修改列名和列的類型的定義

12.刪除表:

drop table t_student;

13.完整性約束:


14.外鍵約束:


15.DDL和DML補充:

16.算數運算符:

17.去重操作:

18.排序:

19.where查詢:



20.函數舉例:

除了(le)多(duo)行(xing)函數(shu)(max,min,count,sum,avg),都(dou)是單行(xing)函數(shu)

函數的分類

lower(ename),upper(ename);改變(bian)每(mei)一(yi)條結果(guo),每(mei)一(yi)條數據對應一(yi)條結果(guo) --單行函數

max(sal),min(sal),count(sal),sum(sal),avg(sal);多條數(shu)據,最終展(zhan)示(shi)一個結(jie)果 --多行函數(shu)



其他函數(shu):查(cha)看數(shu)據庫(ku)信(xin)息

select database(),user(),version() from dual;

21.group by 分組


22.多表查詢:

---自(zi)然(ran)連接:natural join

---優點:自動匹配所(suo)有的同名列,同名列只展示一次(ci),簡單

select * 
from emp 
natural join dept;
select empno,ename,sal,dname,loc 
from emp 
natural join dept;
-- 缺點:查詢字段的時候,沒有指定字段所屬的數據庫表,效率低
-- 解決:指定表名
select emp.empno,emp.ename,emp.sal,dept.dname,dept.loc ,emp.deptno
from emp 
natural join dept;
-- 缺點:表明太長
-- 解決:表起別名
select e.empno,e.ename,e.sal,d.dname,d.loc ,d.deptno
from emp e
natural join dept d;

-- 自然連接natural join缺點:自動匹配表中所有的同名列,但是有時候我們希望只匹配部分同名列:
-- 解決:內連接 -- using字句:
select *
from emp e
inner join dept d
using(deptno) -- 這里不能寫natural join了,這里是內連接

-- using 缺點:關聯的字段,必須是同名的
-- 解決:內連接 - on子句:
select * 
from emp e 
inner join dept d
on (e.deptno = d.deptno);

多表(biao)連接查(cha)詢(xun)的類型:

1.交(jiao)叉連接 cross join

2.自然(ran)連(lian)接 natural join

3.內連接 using子句

4.內連接 on子(zi)句

-- 外連接:除了顯示匹配的數據以外,還可以顯示不匹配的數據

-- 左外連接 left outer join --左面的那個表的信息,即使不匹配也可以看出效果
select *
from emp e
left outer join dept d
on e.deptno = d.deptno;

-- 右外連接 right outer join -- 右面的那個表地信息,即使不匹配地也可以查看出效果
select *
from emp e
right outer join dept d
on e.deptno = d.deptno;

-- 全外連接  full outer join --這個語法在mysql中不支持,在oracle中支持   展示左,右表全部不匹配的數據
-- scott , 40號部門都可以看見
select *
from emp e
full outer join dept d
on e.deptno = d.deptno;

--解決mysql中不支持連接的問題:

select *
from emp e
left outer join dept d
on e.deptno = d.deptno
union -- 并集  去重  效率低
select *
from emp e
right outer join dept d
on e.deptno = d.deptno;

-- MySQL 中對集合操作支持比較弱,只支持并集操作,交集,差集不支持(oracle中支持)

多表查詢(三張表)

select e.name,e.sal,e.empno,e.deptno,d.dname,s.*
from emp e
right outer join dept d
on e,deptno = d.deptno
inner join salgrade s
on e.sal between s.losal and s.hisal

23.子查詢:

24.多行子查詢:



25.相關子查詢:

26.事務:


27.視圖:

posted @ 2022-10-13 17:07  進步+吃飯  閱讀(73)  評論(0)    收藏  舉報