登錄注冊數據庫建立


學習前端的時候Ajax學習的時候主要練習講解的就是登錄注冊問題,從最開始的源生代碼到后來的JQuery再到后面的AngularJS。講了這三種登錄注冊問題。

我先講一下后台數據庫的建立,因為不管是哪一種后台都是一樣的,只有前台js的時候才有差別。

要登錄和注冊,首先就要先建立數據庫,我們設計數據庫表的時候就要先考慮清楚數據庫表需要有哪些內容,我們給表格命名user,用戶表首先要包括用戶表id,這一欄設為這個表的主鍵,為了提高查詢時的效率我們需要給表格設置一個主鍵。這樣就算人名有重復的時候我們根據主鍵也可以找到我們需要找到的,因為主鍵是不能重復的是唯一的。當然我們設計的這個登錄注冊功能注冊時會先判斷用戶名是否存在,如果用戶名存在就不能注冊,需要重新輸入一個用戶名。主鍵設計好了我們給主鍵取個名字id,在SQL SERVER中,主鍵是一個表中的約束。這個約束,一張表只能有一個,一般作為ID使用,這個約束一般給別人外鍵引用。這個約束的功能就是,不可重復,保證了唯一性,正是這種特性,使得大多數人都把他作為表中ID的字段使用。

用戶要登錄我們需要設計一個登錄名,命名name,在命名的時候大家盡量用英文單詞來命名,這樣在后期寫sql語句的時候容易看懂,能夠看到名字就知道大概是什么了。要登錄當然還有一個不可少的就是用戶密碼了,平時大家在各種網站平台還有qq等軟件使用時一般都是需要用戶名和密碼來登錄的。

但是注冊的時候郵箱email還有性別sex

具體表格設計如下:

create table user(

    id  int( 10 ) not null auto_increment primary key,/*主鍵不為空自增長*/

    name varchar(20 ) not null,

    pass varchar(20 ) not null,

    email varchar(20 ) not null,

    sex varchar(5 ) not null   

)charset=utf8;

 

我們可以看到上表中我們用了varchar而沒有用char ,下面我簡單講一下char和varchar有什么區別,還有什么情況下用char什么時候用varchar。

一.數據存儲開銷

1.char(n) 是定長的,也就是當你輸入的字符小於你指定的數目時,char(8),你輸入的字符小於8時,它會再后面補空值。當你輸入的字符大於指定的數時,它會截取超出的字符。

在程序中,會返回給你8位,后面的用空格補上;

數據庫中,char(8),占用16個字節(1個字符=2個字節);

2.varchar(n) 是長度為 n 個字節的可變長度且非 Unicode 的字符數據。n必須是一個介於1和 8000之間的數值。存儲大小為輸入數據的字節的實際長度,而不是 n 個字節。所輸入的數據字符長度可以為零。

二.插入數據

1.char列的NULL值占用存儲空間。

2. varchar列的NULL值不占用存儲空間。

插入同樣數量的NULL值,varchar列的插入效率明顯高出char列。

插入不為null的數據時,無論插入數據涉及的列是否建立索引,varchar列的插入效率也是明顯高出char列。

三.更新數據

如果更新的列上未建立索引,則char的效率低於varchar,但效率差異不大。

如果更新的列上建立索引,則char的效率低於varchar,並且效率差異很大。

四.修改結構

無論增加或刪除的列的類型是char還是varchar,操作都能較快的完成,而且效率上沒有什么差異。

對於增加列的寬度而言,char與varchar有非常明顯的效率差異,varchar列基本上不花費時間,而修改char列需要花費很長的時間。

五.數據檢索

無論是否通過索引,varchar類型的數據檢索略優於char的掃描。

那實際開發中,我們使用哪種呢?

當確定字符串為定長、數據變更頻繁、數據檢索需求少時,使用char;

當不確定字符串長度、對數據的變更少、查詢頻繁時,使用varchar。

 

如下圖所示我們可以看見建好的表如下:

 

表建好了我們需要寫sql語句了。

首先如果我們登錄的話沒有賬戶就要注冊,注冊就是往數據庫表里面增加數據,我先簡單寫一句增加數據的例子;

假如用戶名為susan1,密碼是123456,郵箱123@qq.com,性別女

語句如下:

Insert into user(name,pass,email,sex) values ("susan1",123456,"123@qq.com","女");

  

可以查看一下表數據已經加進去了,如下圖所示:

 

我們要注冊的時候輸入了用戶名要先查看用戶名是否存在,思路如下:

select * from user where u_name="+name+";"+name+"表示輸入的名字,先查詢表里面的用戶名有沒有等於輸入名的,如果沒有的話查到的數據長度為零,就是可以用這個名字來注冊,如果長度大於零的話就是用戶名存在,需要重新輸入用戶名注冊。

當然也有的需要做出刪除用戶的功能,刪除用戶例子如下,比如我想刪除用戶名是張三的用戶,可以這樣寫:

delete  from user where u_name="susan1";

表格里面用戶名是susan1的已經刪除了。

我們要求的還有把所有的用戶打印出來,如果數據庫里面的用戶名有很多的話我們就還需要做用戶分頁的。用戶分頁可以有兩種方法,一種是把所有用戶查詢出來然后在前台來分頁,這樣的工作量比較大,我們用第二種,假設一頁加載五項,就是第一頁的時候先加載查詢出的數據前五項,第二頁的時候找出第6項到第十項。

Sql語句如下:

select * from user limit 5;/*第一頁*/

查詢結果如下:

 

select * from user limit 5,5;/*第二頁*/

查詢結果如下:

需要注意的是我們查詢時從第幾項時是從0開始計的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM