資料庫 SQL基礎語法,關聯查詢

2021-10-11 01:19:02 字數 4472 閱讀 7495

建立、刪除庫:

//建立新資料庫 

create database 資料庫名;

//刪除資料庫

drop database 資料庫名;

增加:

1、新增列名、設定主鍵、設定自動增長列

primary key表示當前列為主鍵列,不能重複,不能為空

out_increment表示當前列為自動增長列,由dbms分配該列的值,可以保證不重複

create table t_user(

id int primary key auto_increment, //編號

username varchar(20),//使用者名稱

birthday date,//生日

tel char(11),//**

//列舉型別,該列的值只能取男和女

*** enum('男','女'),

// 性別 -- 最後一列不能加「,」

money int //賬戶餘額

);

2.新增行(新增記錄)

①如果新增多條資訊,中間用","分割。values只用寫一次,寫在表頭和錶值之間。

②如果列名和列的值不寫,則預設新增為空(null),如果資料庫設計時存在預設值,則為新增預設值。

insert into t_user(表1,表2) values(值1,值2); 

​例如:

insert into t_user(username,pwd,birthday,tel,***,money)

values ('張三','123','1980-05-09','13948577789','男',2000);

​例如:

insert into t_student(username,pwd,birthday,tel,***)

values('李四','111','1998-01-01','13112341234','男');

3.新增列(維護常用)

// t_student:表名;address:表頭 

alter table t_student add address varchar(50);

刪除:

1.刪除表

// t_user:表名 

drop table t_user;

2.刪除列

// t_student:表名;useraddress:列名 

alter table t_student drop column useraddress;

3.刪除行(記錄)

//如果不加where 後面的條件則全部刪除

delete from t_user where id=2;

修改:

1、修改列

修改列的值必須與修改後的型別相符,如果修改列的值為null,則可以改為任意型別。如果修改列的值型別為varchar,最長為20,則修改後的型別必須為char型別,長度不能低於20。

alter table t_student change address useraddress varchar(100);
2、修改值

update t_product set 修改列名=修改後新值 where id=1; 

​//修改,將張三的密碼修改為333,工資修改為2500

update t_user set pwd='333',money='2500' where username='張三';

查詢:

1、查詢表中所有資料

表示顯示所有的列,也可以指定顯示列的列表,中間用","分割。

select * from t_user; 

​// 例如(顯示姓名和工資列):

select username,money from t_user

2、查詢返回限定行

第乙個引數為起始記錄數,從0開始,第二個引數為顯示記錄數

// mysql語法

select * from t_student limit 0,3;

3、查詢空值null

null不能用=,只能用is null 或 is not null

select *from t_student where money is null;
4、查詢多條資訊(or/in)

// 查詢張三和李四的資訊 

select * from t_student where username='張三' or username='李四';

select * from t_student where username in('張三','李四');

5、模糊查詢(_或%)

//查詢姓李的二個字的員工 

select * from t_student where username like '李_';

​// 查詢出所有商品名包括「糕」的商品的資訊

select * from t_product where productname like '%糕%';

6、查詢多條件+顯示部分(limit)

// 查詢前5條**在100-1000的酒類商品 (mysql語法)

select * from t_product where producttype='酒類' and price>=100 and price<=1000 limit 0,5 ;

7、查詢去除重複的類名(distinct)

// 查詢所有的性別,distinct 表示去除重覆記錄 

select distinct *** from t_student;

8、查詢排序顯示(order by)

//按員工工資排序,預設為公升序asc,降序需要加上desc。 

// 工資相同,按年齡大小排序。

select * from t_student order by money desc,birthday;

9、查詢當前日期

select curdate() from 表名
**內連線:**inner join 、cross join

(1)形式一

select 字段列表

from a表 inner join b表

on 關聯條件

【where 其他篩選條件】

說明:如果不寫關聯條件,會出現一種現象:笛卡爾積

關聯條件的個數 = n - 1,n是幾張表關聯

on只能和join一起用

(2) 形式二

select 字段列表

from a表 , b表

where 關聯條件 【and 其他篩選條件】

外連線:左外連線(left outer join)

左連線:

第一種結果:a

select 字段列表

from a表 left join b表

on 關聯條件

第二種結果:a - a∩b

select 字段列表

from a表 left join b表

on 關聯條件

where 從表的關聯字段 is null

右外連線(right outer join)

第一種結果:b

select 字段列表

from a表 right join b表

on 關聯條件

第二種結果:b - a∩b

select 字段列表

from a表 right join b表

on 關聯條件

where 從表的關聯字段 is null

資料庫關聯查詢

使用者授權,我們涉及到了三個物件 1 使用者名稱root 2 密碼 3 主機localhost 建立名字為qq的使用者 create user qq localhost 建立名字為anan使用者並新增密碼 create user anan localhost identified by 123 建立...

資料庫多表查詢關聯查詢SQL語句

left join on 關鍵字會從左表那裡返回所有的行,即使在右表中沒有匹配的行。意思就是向左關聯某個表記錄,以左邊的那個表的記錄為基準,通過關聯條件,將關聯表的相關符合要求的記錄一起找出來,找出來的記錄條數就是左邊表的記錄數 具體用法如下 select column name s from ta...

資料庫多表關聯查詢

本文主要列舉兩張和三張表來講述多表連線查詢。新建兩張表 表1 student 截圖如下 表2 course 截圖如下 此時這樣建表只是為了演示連線sql語句,當然實際開發中我們不會這樣建表,實際開發中這兩個表會有自己不同的主鍵。外連線可分為 左連線 右連線 完全外連線。1 左連線 left join...