SQL基本知識

2022-09-12 22:24:24 字數 3709 閱讀 5455

1

.資料庫結構:

以mysql為例,mysql伺服器裡面可以有多個資料庫,乙個資料庫裡面可以有多張表;

一般而言,乙個系統(軟體,專案)就設計乙個資料庫,乙個資料庫裡面設計多張表,每一張表對應乙個實體類;

2.什麼是sql?

structure query language(結構化查詢語言),通過sql語句可以運算元據庫。

sql在windows中不區分大小寫;

3.運算元據庫:

--建立資料庫 create database 資料庫名 [character set 字符集][collate 校對規則]

create

database mywork character

setutf8;

--檢視資料庫

show databases;

show

create

database

mywork;

--刪除資料庫 drop database 資料庫名;

drop

database

mywork;

--修改資料庫 alter database 資料庫名 character set 字符集;

alter

database mywork character

setutf8;

--選中資料庫 use 資料庫名;

usemywork;

--檢視正在使用的資料庫 select database();

select

database

();

4.運算元據表:

說明:可變長度

varchar(n) eg:varchar(20

), 最大能存放20個字元. 『aaa』, 佔3個字元的空間

日期-date 只有日期(年月日)

-datetime

日期和時間(年月日時分秒)

-timestamp

時間戳

約束:notnull: 非空 ; eg: username varchar(40) not

null

username這個列不能有null值

unique:唯一約束, 後面的資料不能和前面重複; eg: cardno char(18) unique

; cardno 列裡面不可以有重複資料

primary

key;主鍵約束(非空+

唯一); 一般用在表的id列上面.

注意:1. 先設定了primary key

才能設定auto_increment

2. 只有當設定了auto_increment 才可以插入null 資料庫自動增加值維護id

1.建立資料表:

create

table

student(

id intprimary

keyauto_increment,

name

varchar(40

), ***

varchar(8

), age

int);

2.檢視表:

1.檢視當前資料庫中的所有表:

show tables;

2.檢視某張資料表的結構:例如:檢視表 student

desc

student;

3.修改表

1.在表中增加一列:例如:在表student增加列名address

alter

table student add address varchar(40) not

null

;

2.修改列的型別約束:

alter

table student modify *** varchar(10

);

3.修改列的名稱,型別,約束:修改表student中列名address為s_address,型別為varchar(20

)

alter

table student change address s_address varchar(20

);

4.刪除列:

alter

table student drop

s_address;

5.修改表名

rename

table student to teacher;

sql基本知識:

1.表與表之間的關係處理:

一對多:在多的一方建立乙個列作為外來鍵,指向一方主鍵;

多對多:新建一張中間表,至少包含兩個列,都作為外來鍵,分別指向各自的主鍵;

一對一:先當做一對多,在外鍵欄位新增唯一約束;

外來鍵新增的語法:

alter table 表 add foreign key(列[外來鍵]) references 表(列[主鍵])

例如:alter table score add foreign key(sid1) references student(sid)

2.sql的連線查詢:

1.內連線查詢:

select *from a inner join b on 連線條件 [where 其它條件]

例如:select * from t_category c inner join t_product p on c.cid =p.cno;

2.外連線查詢:

select *from a left outer join b on 條件

例如:select * from t_category c left outer join t_product p on c.cid =p.cno

內連線查詢與外連線查詢的區別:

-內連線: 查詢的是兩個表的公共部分,滿足連線條件的部分

-左外連線: 以左邊表為主表, 查詢出左邊表的所有的資料. 再通過連線條件匹配出右邊表的資料, 如果滿足連線條件,

展示右邊表的資料; 如果不滿足, 右邊的資料通過null代替;

3.子查詢:

1.子查詢的結果是乙個值的情況:

子查詢結果是單行單列,肯定在where後面作為條件,父查詢使用:比較運算子,如:> 、<、<>、=等

select * from 表 where 列 =(子查詢);

例如: select * from product where cno = (select cid from category where cname ='手機數碼');

2.子查詢的結果是單列多行的情況:

子查詢結果是單例多行,結果集類似於乙個陣列,父查詢使用in運算子;

select *from 表 where 列 in (子查詢);

例如:select * from t_product where cno in (select cid from t_category where cname in('手機數碼','食物'));

3.子查詢的結果是多行多列的情況:

子查詢結果是多行多列,肯定在from後面作為表; 子查詢作為表需要取別名,否則這張表沒有名稱則無法訪問表中的字段;

例如:select max(c1.price) from (select * from product where cno = 1) as c1;

SQL基本知識

什麼是sql資料庫?資料庫是用來存放您的會員資料的地方,而空間是存放您的網頁的地方,資料庫一般有兩種,access 和 mysql 其區別就在於access一般用於會員資料比較小的 而mysql一般用於會員比較多的 我們採用的是mysql資料庫。什麼是mysql?mysql是乙個多使用者 多執行緒的...

SQL語句的基本知識

1.ddl 資料定義語言,用來定義資料庫物件 建立庫,表,列等等。2.dml 資料操作語言,用來定義資料庫記錄 資料 增 刪 改 表記錄 3.dcl 資料控制語言,用來定義訪問許可權和安全級別 4.dql 重要 資料查詢語言,用來查詢記錄 資料 ddl 資料庫或表的結構操作 dml 對錶的記錄進行更...

sql注入的基本知識

我們看到的sql注入類題目經常包含直接在資料庫的系統資料庫類來得到資訊,這個資料庫的名字為information schema這個資料庫便是系統的資料庫,用來儲存我們建立的資料庫和資料表的基本資訊,而我接下來介紹的便是對這個資料庫的認識。我們可以檢視information schema這個資料庫裡有...