數(shù)據(jù)查詢語言(凡是帶有 select 關(guān)鍵字的都是查詢語句)

創(chuàng)新互聯(lián)公司專注于余姚企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),商城網(wǎng)站建設(shè)。余姚網(wǎng)站建設(shè)公司,為余姚等地區(qū)提供建站服務(wù)。全流程按需定制,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
select...
數(shù)據(jù)操作語言(凡是對(duì)表中的 數(shù)據(jù) 進(jìn)行增刪改的都是 DML)
insert 增 delete 刪 update 改
數(shù)據(jù)定義語言(凡是帶有 create、drop、alter 的都是 DDL)
主要操作的是 表的結(jié)構(gòu) ,不是表的數(shù)據(jù)
事務(wù)控制語言(包括:事務(wù)提交 commit、事務(wù)回滾 rollback)
數(shù)據(jù)控制語言(授權(quán) grant、撤銷權(quán)限 revoke)
select 字段 from 表名 where 條件;
in(具體值,具體值,......) 不是區(qū)間
一個(gè)輸入對(duì)應(yīng)一個(gè)輸出,和其對(duì)應(yīng)的是多行處理函數(shù)(多個(gè)輸入,對(duì)應(yīng)一個(gè)輸出)
輸入多行,最終輸出一行
如果你 沒有對(duì)數(shù)據(jù)進(jìn)行分組,整張表默認(rèn)為一組 。
在實(shí)際的應(yīng)用中,可能需要先進(jìn)行分組,然后對(duì)每一組的數(shù)據(jù)進(jìn)行操作
案例: 查詢每個(gè)員工所在部門的名稱,顯示員工名和部門名?
emp e 和 dept d 表進(jìn)行連接。條件是:e.deptno = d.deptno
SQL92語法:(結(jié)構(gòu)不夠清晰,表的連接條件和后期進(jìn)一步篩選的條件,都放到了 where 子句中)
SQL99語法:(表連接的條件是獨(dú)立的,連接之后,如果還需要進(jìn)一步篩選,再往后繼續(xù)添加 where 子句)
技巧: 把一張表看成兩張表
思考: 外連接的查詢結(jié)果條數(shù) = 內(nèi)連接的查詢結(jié)果條數(shù)
select 語句中 嵌套 select 語句,被嵌套的 select 語句稱為 子查詢。
將查詢結(jié)果集的一部分取出來。(通常使用在分頁查詢當(dāng)中)
將字符串 varchar 類型轉(zhuǎn)換成 date 類型
將日期轉(zhuǎn)換成字符串
可以獲取當(dāng)前系統(tǒng)的時(shí)間,并且獲取的時(shí)間是 datetime 類型的
注意:若沒有條件限制將會(huì)導(dǎo)致所有數(shù)據(jù)全部更新。
注意:若沒有條件,會(huì)刪除整張表的數(shù)據(jù)。
constraint
not null 約束的字段 不能為 NULL (只有列級(jí)約束)
unique 約束的字段 不能重復(fù) ,但是可以為 NULL
primary key
foreign key
transaction
實(shí)現(xiàn)原理 :縮小掃描的范圍(形成樹),避免全表掃描
Database Administrator 數(shù)據(jù)庫管理員
數(shù)據(jù)庫表的設(shè)計(jì)依據(jù)。教你怎么進(jìn)行數(shù)據(jù)庫表的設(shè)計(jì)。
免費(fèi)領(lǐng)取有關(guān)于java面試題材料和講解!
1.建立用戶信息表
create table userinfo(id int(4) not null primary key, name varchar(20) not null unique key)engine=innodb default charset=utf8;
2.建立好友關(guān)系表
create table friend(uid int(4) not null, foreign key(uid) references
userinfo(id),fid int(4) not null, foreign key(fid) references
userinfo(id),unique key(uid,fid))engine=innodb default charset=utf8;
3.追加測(cè)試數(shù)據(jù)(滿足uidfid條件)
insert userinfo values(1111---9999,'namea---namei’);
insert friend values(1111,4444---6666);
insert friend values(5555,6666---9999);
4.查詢好友(5555的好友)
select * from friend where uid=5555 or fid=5555;
+-------+------+
| uid | fid |
+-------+------+
| 1111 | 5555 |
| 5555 | 6666 |
| 5555 | 7777 |
| 5555 | 8888 |
| 5555 | 9999 |
+-------+--------+
5.問題:
5.1.userinfo中的id和name不為null,且不可重復(fù):table設(shè)計(jì)可以做到
5.2.friend中的uid和fid均不為null,且都來自于userinfo的id:table設(shè)計(jì)可以實(shí)現(xiàn)
5.3.(uid,fid)組合不可重復(fù):table設(shè)計(jì)可以完成
5.4.好友關(guān)系的表達(dá)時(shí),(1111,5555)和(5555,1111)有冗余,也會(huì)出現(xiàn)(1111,1111)這樣的數(shù)據(jù):這個(gè)在table設(shè)計(jì)實(shí)現(xiàn)比較麻煩,需要在程序?qū)用鎸?shí)現(xiàn),也即增加限制條件uidfid即可
6.結(jié)果:
table設(shè)計(jì)達(dá)不到要求,或者較難達(dá)到要求時(shí),可以在程序?qū)用嬗枰詮浹a(bǔ)。
選中某個(gè)表,然后右鍵點(diǎn)擊,選擇“設(shè)計(jì)表”即可。
也可以左鍵點(diǎn)擊某個(gè)表(即選中某表),在上面輔助菜單欄里有“打開表”、“設(shè)計(jì)表”、“新建表”等按鈕可點(diǎn)擊,點(diǎn)擊“設(shè)計(jì)表”按鈕即可。
進(jìn)入后,會(huì)彈出新的操作窗口,新窗口的菜單欄里有常用的修改表結(jié)構(gòu)的按鈕,右鍵點(diǎn)擊某列字段也可以彈出相應(yīng)的修改表的操作按鈕。
其它摸索著看提示操作即可,還是很簡(jiǎn)單的。
修改好表后點(diǎn)擊菜單欄上的“保存”按鈕即可。
注:若要查看修改表的sql語句,必須在“保存”之前點(diǎn)擊“SQL預(yù)覽”按鈕。
在JAVA開發(fā)中數(shù)據(jù)庫的學(xué)習(xí)也是我們需要了解的,截下來幾篇文章都是關(guān)于數(shù)據(jù)庫的設(shè)計(jì)和應(yīng)用,那么java課程培訓(xùn)機(jī)構(gòu)廢話不多說開始學(xué)習(xí)吧!??數(shù)據(jù)庫的設(shè)計(jì)??數(shù)據(jù)庫設(shè)計(jì)是基礎(chǔ),數(shù)據(jù)庫優(yōu)化是建立在設(shè)計(jì)基礎(chǔ)之上的。
好的數(shù)據(jù)庫一定擁有好的設(shè)計(jì)。
數(shù)據(jù)庫設(shè)計(jì)的目標(biāo)是為用戶和各種應(yīng)用系統(tǒng)提供一個(gè)信息基礎(chǔ)設(shè)施和高效的運(yùn)行環(huán)境。
數(shù)據(jù)庫的三大范式??第一范式1NF:所有的域都應(yīng)該是原子性的,即數(shù)據(jù)庫表的每一列都是不可分割的原子數(shù)據(jù)項(xiàng),而不能是集合,數(shù)組,記錄等非原子數(shù)據(jù)項(xiàng)。
第二范式2Nf:第二范式在第一范式的基礎(chǔ)之上更進(jìn)一層。
第二范式需要確保數(shù)據(jù)庫表中的每一列都和主鍵相關(guān),而不能只與主鍵的某一部分相關(guān)(主要針對(duì)聯(lián)合主鍵而言)。
也就是說在一個(gè)數(shù)據(jù)庫表中,一個(gè)表中只能保存一種數(shù)據(jù),不可以把多種數(shù)據(jù)保存在同一張數(shù)據(jù)庫表中。
第三范式3Nf:所有字段必須與主鍵直接相關(guān),而不是間接相關(guān)。
也可以理解為字段不要和其他非主鍵字段相關(guān).??注意:這三個(gè)范式盡可能去遵守,不是一定要墨守成規(guī).這只是讓我們?cè)O(shè)計(jì)的表的時(shí)候,越靠近這些范式,可以使字段盡量的減小冗余.但是有時(shí)候也可以根據(jù)實(shí)際需要小小的違背一下.但是第三范式違反一下還可以接受,但是第一范式別違反.??數(shù)據(jù)庫設(shè)計(jì)的步驟??需求分析階段??準(zhǔn)確了解與分析用戶需求(包括數(shù)據(jù)與處理)。
是整個(gè)設(shè)計(jì)過程的基礎(chǔ),是最困難、最耗費(fèi)時(shí)間的一步。
概念結(jié)構(gòu)設(shè)計(jì)階段??是整個(gè)數(shù)據(jù)庫設(shè)計(jì)的關(guān)鍵--設(shè)計(jì)數(shù)據(jù)庫的E-R模型圖,確認(rèn)需求信息的正確和完整??Entity_Relationship---實(shí)體之間的關(guān)系??一對(duì)一??一對(duì)多??多對(duì)一
網(wǎng)頁名稱:mysql庫表怎么設(shè)計(jì) mysql數(shù)據(jù)表的設(shè)計(jì)
標(biāo)題網(wǎng)址:http://chinadenli.net/article46/hjoceg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、用戶體驗(yàn)、企業(yè)建站、網(wǎng)站制作、靜態(tài)網(wǎng)站、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)