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這個資料庫裡有...