Mysql表連線 增刪改操作

2021-09-01 05:31:01 字數 2855 閱讀 5029

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...