INSERT INTO studentVALUES(901,'張老大','男',1999,'計算機系', '北京市海淀區');
INSERT INTO studentVALUES(902,'張老二','男',1998,'中文系', '北京市昌平區');
INSERT INTO studentVALUES(903,'張三','女',1997,'中文系', '湖南省永州市');
INSERT INTO studentVALUES(904,'李四','男',1996,'英語系', '遼寧省阜新市');
INSERT INTO studentVALUES(905,'王五','女',1995,'英語系', '福建省廈門市');
INSERT INTO studentVALUES(906,'王六','男',1994,'計算機系', '湖南省衡陽市');
2) 向score表插入記錄:
INSERT INTO scoreVALUES(NULL,901, '計算機',98);
INSERT INTO scoreVALUES(NULL,901, '英語',80);
INSERT INTO scoreVALUES(NULL,902, '計算機',65);
INSERT INTO scoreVALUES(NULL,902, '中文',88);
INSERT INTO scoreVALUES(NULL,903, '中文',95);
INSERT INTO scoreVALUES(NULL,904, '計算機',70);
INSERT INTO scoreVALUES(NULL,904, '英語',92);
INSERT INTO scoreVALUES(NULL,905, '英語',94);
INSERT INTO scoreVALUES(NULL,906, '計算機',90);
INSERT INTO scoreVALUES(NULL,906, '英語',85);
update Student set name='大老張'wherename='張老大'
select*from student
觀察改變
5. 查(重點!!!)
select 查詢字段from表名where查詢條件
舉例說明:
查詢出表student中性別為女的所有學生信息 select * from student where sex=“女”
查詢student表的第2條到4條記錄
SELECT * FROM student LIMIT 1,3;
計算并查詢出院系為中文系的學生的總分數(雙表連接查詢)
selectsum(grade),department from(select score.grade,student.department from score INNER JOIN student ON score.stu_id=student.id) AS a GROUP BY department
select*from score wherec_name="計算機" order by grade desc
統計每個院系學生人數
selectcount(id),department from student groupby department
從student表中查詢年齡18~22歲的學生信息
SELECT id,name,sex,2019-birth AS age,department,addressFROM studentWHERE 2019-birth BETWEEN 18 AND 22;SELECT id,name,sex,2019-birth AS age,department,addressFROM studentWHERE 2019-birth>=18 AND 2019-birth<=22;
6. 數據檢索-多表查詢
查詢李四的考試科目(c_name)和考試成績(grade)
SELECT c_name, grade
FROM score
WHEREstu_id=(SELECT id FROM student WHERE name= '李四' );
SELECT student.id,name,SUM(grade)FROM student,scoreWHERE student.id=score.stu_idGROUP BY id;
查詢計算機成績低于95的學生信息
SELECT * FROM student
WHERE id IN
(SELECT stu_id FROM score
WHERE c_name="計算機"and grade<95);
查詢同時參加計算機和英語考試的學生的信息
SELECT * FROM studentWHEREid =ANY( SELECT stu_id FROM score WHERE stu_id IN (SELECT stu_id FROM
score WHERE c_name= '計算機')AND c_name= '英語' );SELECT a.* FROM student a ,score b ,score c
WHEREa.id=b.stu_id
AND b.c_name='計算機'
AND a.id=c.stu_id
AND c.c_name='英語';
從student表和score表中查詢出學生的學號,然后合并查詢結果
SELECT id FROM student
UNION
SELECT stu_id FROM score;
查詢姓張或者姓王的同學的姓名、院系和考試科目及成績
SELECT student.id, name,sex,birth,department, address, c_name,gradeFROM student,scoreWHERE(name LIKE '張%' OR name LIKE '王%')ANDstudent.id=score.stu_id ;
查詢都是湖南的學生的姓名、年齡、院系和考試科目及成績
SELECT student.id, name,sex,birth,department, address, c_name,gradeFROM student, scoreWHERE address LIKE '湖南%' ANDstudent.id=score.stu_id;
Score、student兩張表內連接
select score.stu_id,score.grade,score.c_name,student.department,student.name from score INNER JOIN student ON score.stu_id=student.id
其他一些補充(與插入記錄無關):
查詢去重單個字段后顯示所有列 select * from 表名where主鍵in(select max(主鍵) from表名group by要去重的字段)
eg:
SELECT * FROM user_bill
wherebill_noin(selectmax(bill_no)from user_bill groupby subsidy_order_no);
查詢不為空
select*from 表名where不為空的字段名isnotnull
查詢在字段=(xx,xx,xx,xx)的數據
SELECTcolumn_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)
having分組過濾條件 按照年齡分組,過濾年齡為空的數據,并且統計分組的條數和現實年齡信息
selectcount(*), age from student groupby age having age isnotnull;
查詢含某字段的所有表
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME = 'cycle'