數據庫:SQL基礎語法,關聯查詢

SQL基礎語法

建立、刪除庫:

//建立新數據庫 
CREATE DATABASE 數據庫名; 
//刪除數據庫 
DROP DATABASE 數據庫名;

增長:

一、添加列名、設置主鍵、設置自動增加列 primary key表示當前列爲主鍵列,不能重複,不能爲空 out_increment表示當前列爲自動增加列,由DBMS分配該列的值,能夠保證不重複java

CREATE TABLE t_user(
    id INT PRIMARY KEY AUTO_INCREMENT, //編號 
    userName VARCHAR(20),//用戶名 
    birthday DATE,//生日 
    tel CHAR(11),//電話
    //枚舉類型,該列的值只能取男和女 
    sex ENUM('男','女'),
    // 性別 -- 最後一列不能加「,」
    money INT //帳戶餘額 
);

2.添加行(新增記錄)數據庫

①若是添加多條信息,中間用","分割。VALUES只用寫一次,寫在表頭和表值之間。 ②若是列名和列的值不寫,則默認添加爲空(null),若是數據庫設計時存在默認值,則爲添加默認值。數據庫設計

INSERT INTO t_user(表1,表2) values(值1,值2); 
​
例如: 
INSERT INTO t_user(userName,pwd,birthday,tel,sex,money) 
VALUES ('張三','123','1980-05-09','13948577789','男',2000); 
​
例如: 
INSERT INTO t_student(userName,pwd,birthday,tel,sex) 
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.刪除列3d

// t_student:表名;userAddress:列名 
ALTER TABLE t_student DROP COLUMN userAddress;

3.刪除行(記錄)code

//若是不加where 後面的條件則所有刪除
DELETE FROM t_user WHERE id=2;

修改:

一、修改列blog

修改列的值必須與修改後的類型相符,若是修改列的值爲null,則能夠改成任意類型。若是修改列的值類型爲varchar,最長爲20,則修改後的類型必須爲char類型,長度不能低於20。排序

ALTER TABLE t_student CHANGE address userAddress VARCHAR(100);

二、修改值rem

UPDATE t_product SET 修改列名=修改後新值 WHERE id=1; 
​
//修改,將張三的密碼修改成333,工資修改成2500 
UPDATE t_user SET pwd='333',money='2500' WHERE userName='張三';

查詢:

一、查詢表中全部數據

表示顯示全部的列,也能夠指定顯示列的列表,中間用","分割。

SELECT * FROM t_user; 
​
// 例如(顯示姓名和工資列): 
select userName,money from t_user

二、查詢返回限定行

第一個參數爲起始記錄數,從0開始,第二個參數爲顯示記錄數

// MySQL語法
SELECT * FROM t_student LIMIT 0,3;

三、查詢空值null

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

SELECT *FROM t_student WHERE money IS NULL;

四、查詢多條信息(or/in)

// 查詢張三和李四的信息 
SELECT * FROM t_student WHERE userName='張三' OR userName='李四'; 
SELECT * FROM t_student WHERE userName IN('張三','李四');

五、模糊查詢(_或%)

//查詢姓李的二個字的員工 
SELECT * FROM t_student WHERE userName LIKE '李_'; 
​
// 查詢出全部商品名包括「糕」的商品的信息 
SELECT * FROM t_product WHERE productName LIKE '%糕%';

六、查詢多條件+顯示部分(LIMIT)

// 查詢前5條價格在100-1000的酒類商品 (MySQL語法)
SELECT * FROM t_product WHERE productType='酒類' AND price>=100 AND price<=1000 LIMIT 0,5 ;

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

// 查詢全部的性別,distinct 表示去除重複記錄 
SELECT DISTINCT sex FROM t_student;

八、查詢排序顯示(ORDER BY)

//按員工工資排序,默認爲升序ASC,降序須要加上DESC。 
// 工資相同,按年齡大小排序。 
SELECT * FROM t_student ORDER BY money DESC,birthday;

九、查詢當前日期

select curdate() from 表名

關聯查詢:

**內鏈接:**INNER JOIN 、CROSS JOIN

img

(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

img

select 字段列表 from A表 left join B表 on 關聯條件

第二種結果:A - A∩B

img

select 字段列表 from A表 left join B表 on 關聯條件 where 從表的關聯字段 is null

右外鏈接(RIGHT OUTER JOIN)

第一種結果:B

img

select 字段列表

from A表 right join B表

on 關聯條件

第二種結果:B - A∩B

img

select 字段列表

from A表 right join B表

on 關聯條件

where 從表的關聯字段 is null

謝謝你們閱讀,若是想要知道更多java基礎知識,能夠戳我一塊兒交流學習!

相關文章
相關標籤/搜索