1,概要說明:
mysql表連線:用在當兩張表或者多張表聯合查詢,共同提供資料
select e.id,d.id,d.name from emp as e
join dep as d
on e.dpid = d.id
2,執行過程:
如果是 a join b則a為主表,b為從表
主表中的任何一條資料,都要試圖和從表中的每一行去連線,是否能夠真正連線,取決於on是否被滿足
on條件滿足後,主從雙方將自己對應的行,放入最終的大表中
3,分類:
內連線 [inner] join(ops : inner
可以省略不寫)
外連線:
左外連線 left [outer] join(ops : outer
可以省略不寫)a
為主表
右外連線 right [outer] join(ops : outer
可以省略不寫)b
為主表
自連線不區分連線方式,只不過是 連線的雙方是同一張表而已
外連線:主表資料全顯,如果沒有對方資料,用null填充
內連線:只有存在匹配資料的資料才會顯示在最終結果中
4,自連線演示:
select
t1.id,t1.level,t1.title,t2.title,t2.level
from
t_cate t1
join
t_cate t2
ont1.id=t2.parent_id
5,多表連線:
select
emp.*,dept.*,loc.*
from
t_employee emp
left join
t_department dept
onemp.dept_id = dept.id
right join
t_location loc
onloc.id = dept.loc_id;
6,聯合約束:
create table t_user(
id int auto_increment,
name varchar(20),
age tinyint,
nick varchar(20),
primary key(id,name), # id 和 name的組合作為聯合主鍵 (表級約束)
unique(age,nick) # age 和 nick 的組合不能重複 (表級約束)
)engine = innodb default charset = utf8;
7,資料庫字段資料型別:
數字tinyint 1 位元組 (-128,127)
smallint 2 位元組(-32 768,32 767)
mediumint 3 位元組(-8 388 608,8 388 607)
int或integer 4 位元組(-2 147 483 648,2 147 483 647)
bigint 8 位元組(-9 233 372 036 854 775 808,9 223 372 036 854 775 807)
float 4 位元組(-3.402 823 466 e+38,-1.175 494 351 e-38)
double 8 位元組(-1.797 693 134 862 315 7 e+308,-2.225 073 858 507 201 4 e-308)
decimal 沒有固定大小 decimal(m, n) 共m位其中小數n位,大小取決於m和n (沒有精度損失)
字元char 0-255位元組 定長字串
varchar 0-65535 位元組變長字串
tinyblob 0-255位元組不超過 255 個字元的二進位制字串
tinytext 0-255位元組短文本字串
blob 0-65 535位元組二進位制形式的長文字資料
text 0-65 535位元組長文字資料
mediumblob 0-16 777 215位元組二進位制形式的中等長度文字資料
mediumtext 0-16 777 215位元組中等長度文字資料
longblob 0-4 294 967 295位元組二進位制形式的極大文字資料
longtext 0-4 294 967 295位元組極大文字資料
日期date 日期值
datetime 日期和時間值
timestamp 日期和時間值
8,資料增刪改:
插入:insert into tabale_name (name,age) values(val1,val2);
插入多條:insert into tabale_name (name,age) values(val1,val2),
(val3,val2), (val3,val2);
可省略列名,但是後邊values必須順序一致:
insert into table_name values(name,age,birth);
更新:
update tables_name set name=』***』,age = 22 where id = 2;
update user9 set age=age+1,name=concat(name,age) where name not like '%j%';
刪除:
delete from tables where name = 『zhangsan』;
delete form users;
Nodejs連線mysql的增 刪 改 查操作
一 準備 nodejs的教程,大多以操作mongodb為示例。但是mongodb有一些侷限性,具體官網上有說。我打算用mysql,因為多少還有點使用經驗。先以研究為主。node mysql,是目前最火的node下的mysql驅動。初步了用了一下,因為非同步 的這種方式,果然好多坑。下面這個專案的pa...
順序表 增刪改操作
1.從鍵盤依次輸入10個整數 彼此以若干空格隔開 在記憶體中建立乙個順序表。然後完成以下操作 查詢 輸入乙個欲查詢的整數,找到則顯示第乙個相匹配的整數在順序表中所處的位置,若不存在,則顯示 not found 刪除 輸入乙個表示欲刪除整數的位置的整數i 注意i的合法性 在順序表中刪除該數,並保證刪除...
MySQL 增刪改查操作
toc 登入資料庫 mysql u root p123456 建立資料庫 creat database test 檢視所有資料庫 show databases 檢視資料庫中所有的資料表 show tables 選中資料庫 usedatabases 建立資料表 create table pet nam...