創(chuàng)建表語(yǔ)句
CREATE TABLE person (id int PRIMARY KEY auto_increment,name VARCHAR(10) NOT NULL,age int NOT NULL);

(XN1UVSN9C%WTFVC)1X@1E3.png
插入語(yǔ)句
INSERT INTO person(name,age) VALUES ('tom',20);
#如果id未定義auto_increment,則需要為id填值
多值插入語(yǔ)句
INSERT INTO person(name,age) VALUES ('lucy',18),('lili',18),('xiaoming',13);
查詢(xún)語(yǔ)句
SELECT * FROM person;
查詢(xún)條件語(yǔ)句
SELECT * FROM person WHERE id>=3;
查詢(xún)包含語(yǔ)句
SELECT * FROM person WHERE name LIKE "l%"; 首字母是l
SELECT * FROM person WHERE name LIKE "%l"; 尾字母是l
SELECT * FROM person WHERE name LIKE "%l%"; 單詞中包含l
范圍查詢(xún)語(yǔ)句
#年齡在13和20之間且包含13和20
SELECT * FROM person WHERE age BETWEEN 13 AND 20;
過(guò)濾查詢(xún)
SELECT DISTINCT name FROM person; 返回不重復(fù)的姓名
更新語(yǔ)句/修改語(yǔ)句
UPDATE person set name='tomplus' WHERE id=2;
刪除語(yǔ)句
DELETE FROM person WHERE id=2;
多條件語(yǔ)句
SELECT * FROM person WHERE name LIKE 'l%' AND age>13;
范圍查詢(xún)
SELECT * FROM person LIMIT 3; 限制數(shù)量 輸出表的前3條數(shù)據(jù)
SELECT * FROM person LIMIT 3 OFFSET 2; 輸出前兩條數(shù)據(jù)后的三條數(shù)據(jù)
范圍查詢(xún)
SELECT * FROM person WHERE age IN (15,18); 符合()內(nèi)某一個(gè)元素的輸出
SELECT * FROM person WHERE age=15 or age=18; 與上一句等作用
顯示表的詳細(xì)信息
DESC person;
創(chuàng)建唯一索引
創(chuàng)建dog表的name字段為唯一索引,索引名(自定義) name_unique
CREATE UNIQUE INDEX name_unique ON dog(name);
多表查詢(xún)
#二表查詢(xún)
SELECT * FROM stu,grade WHERE stu.grade_id=grade.id;
SELECT stu.name,stu.score,grade.name,grade.type FROM stu,grade WHERE stu.grade_id=grade.id;
SELECT stu.name AS 學(xué)生名字,stu.score,grade.name AS 班級(jí),grade.type FROM stu,grade WHERE stu.grade_id=grade.id;
#三表查詢(xún)
select e.deptno,e.ename,e.sal,e.empno,d.deptno,s.* from emp as e right join dept as d on e.deptno=d.deptno inner join salgrade as s on e.sal BETWEEN LOSAL AND HISAL
select username,psw,gname,tel from (t1 left join t2 on t1.t1_id=t2.t1_id) left join t3 on t1.t1_id=t3.t1_id
內(nèi)連接
inner join 只返回符合條件的行
Select A.name,B.name from A inner join B on A.id=B.id
Select A.name,B.name from A join B on A.id=B.id
結(jié)果是一樣的(內(nèi)連接的inner關(guān)鍵字可省略);
外連接(左右查詢(xún) )
左連接
# 返回包括左表中的所有記錄和右表中聯(lián)結(jié)字段相等的記錄
# LEFT JOIN 關(guān)鍵字會(huì)從左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中沒(méi)有匹配的行。
# 左連接A、B表結(jié)果包括A的全部記錄和符合條件的B的記錄
SELECT * FROM stu LEFT JOIN grade ON stu.grade_id=grade.id;
右連接
#反之
SELECT * FROM stu RIGHT JOIN grade ON stu.grade_id=grade.id;
# 也就是說(shuō) 左聯(lián)結(jié)B、A的結(jié)果和右聯(lián)結(jié)A、B表的結(jié)果是一樣的
能夠增加普通索引和UNIQUE索引兩種。其格式如下:
create index index_name on table_name (column_list) ;
create unique index index_name on table_name (column_list) ;
sql語(yǔ)句方法
AVG() 平均值
COUNT() 計(jì)算數(shù)量
MAX() 最大值
MIN() 最小值
SUM() 求和
Group By 通過(guò)某一項(xiàng)分組
Having where的彌補(bǔ),使條件語(yǔ)句可以變得動(dòng)態(tài)