1. 程式人生 > >簡單的資料庫 查詢 增刪改查 -----

簡單的資料庫 查詢 增刪改查 -----

CREATE DATABASE mydb2;
SHOW DATABASES ;
ALTER DATABASE mydb2 CHARACTER SET utf8;
SHOW TABLES ;
SELECT database();
USE mydb2;

CREATE TABLE stu(
   sid CHAR(6),
  sname VARCHAR(50),
  age INT,
  gender VARCHAR(50)
);

INSERT INTO stu VALUES
  ('S_1001','liuYi',35,'male'),
  ('S_1002','chenEr',15,'female'),
('S_1003','zhangSan','95','male'), ('S_1004','liSi',65,'female'), ('S_1005','wangWu',55,'male'), ('S_1006','zhaoLiu',75,'female'), ('S_1007','sunQi',25,'male'), ('S_1008','zhouBa',45,'female'), ('S_1009','wuJiu',85,'male'), ('S_1010','zhengShi',5,'female'), ('S_1011','xxx',NULL ,NULL ); #1 基礎查詢 #1.1 查詢所有列
SELECT *FROM stu; #1.2 查詢指定列 SELECT sid, age FROM stu; #2 條件查詢 #2.2 查詢性別為女,並且年齡50的記錄 SELECT *FROM stu WHERE gender='male' AND age=50; #2.3 查詢學號為S_1001,或者姓名為liSi的記錄 SELECT *FROM stu WHERE sid='S_1001' OR sname='liSi'; #2.4 查詢學號為S_1001,S_1002,S_1003的記錄 SELECT *FROM stu WHERE sid IN ('S_1001','S_1002','S_1003'); #2.5 查詢學號不是S_1001,S_1002,S_1003的記錄
SELECT *FROM stu WHERE sid NOT IN ('S_1001','S_1002','S_1003'); #2.6 查詢年齡為null的記錄 SELECT *FROM stu WHERE age IS NULL ; #2.7 查詢年齡在20到40之間的學生記錄 SELECT *FROM stu WHERE age BETWEEN 20 AND 40; #2.8 查詢性別非男的學生記錄 SELECT *FROM stu WHERE gender != 'female'; SELECT *FROM stu WHERE NOT gender = 'female'; #2.9 查詢姓名不為null的學生記錄 SELECT *FROM stu WHERE sname IS NOT NULL ; #3 模糊查詢 #3.1 查詢姓名由5個字母構成的學生記錄 SELECT *FROM stu WHERE sname LIKE '_____'; #3.2 查詢姓名由5個字母構成,並且第5個字母為“i”的學生記錄 SELECT *FROM stu WHERE sname LIKE '____i' ; #3.3 查詢姓名以“z”開頭的學生記錄 SELECT *FROM stu WHERE sname LIKE 'z_____'; #3.4 查詢姓名中第2個字母為“i”的學生記錄 SELECT *FROM stu WHERE sname LIKE '_i___'; #3.5 查詢姓名中包含“a”字母的學生記錄 SELECT *FROM stu WHERE sname LIKE '%a'; CREATE TABLE emp( empno INT, ename VARCHAR(50), job VARCHAR(50), mgr INT, hiredate DATE, sal DECIMAL(7,2), comm DECIMAL(7,2), deptno INT ); INSERT INTO emp VALUES (7369,'SMITH','CLERK',7902,'1980-12-17',800,NULL ,20), (7499,'ALLEN','SALESMAN',7698,'1981-02-20',1600,300,30), (7521,'WARD','SALESMAN',7698,'1981-02-22',1250,500,30), (7566,'JONES','MANAGER',7839,'1981-04-02',2975,NULL,20), (7654,'MARTIN','SALESMAN',7698,'1981-09-28',1250,1400,30), (7698,'BLAKE','MANAGER',7839,'1981-05-01',2850,NULL,30), (7782,'CLARK','MANAGER',7839,'1981-06-09',2450,NULL,10), (7788,'SCOTT','ANALYST',7566,'1987-04-19',3000,NULL,20), (7839,'KING','PRESIDENT',NULL,'1981-11-17',5000,NULL,10), (7844,'TURNER','SALESMAN',7698,'1981-09-08',1500,0,30), (7876,'ADAMS','CLERK',7788,'1987-05-23',1100,NULL,20), (7900,'JAMES','CLERK',7698,'1981-12-03',950,NULL,30), (7902,'FORD','ANALYST',7566,'1981-12-03',3000,NULL,20), (7934,'MILLER','CLERK',7782,'1982-01-23',1300,NULL,10); SELECT *FROM emp; #4 欄位控制查詢 #4.1 去除重複記錄 # 去重複查詢薪水 SELECT DISTINCT sal FROM emp; #4.2 檢視僱員的月薪與佣金之和 SELECT *,ifnull(sal,0) + ifnull(comm,0) FROM emp; #4.3 給列名新增別名 SELECT *,ifnull(sal,0) + ifnull(comm,0) AS total FROM emp; #5 排序 #5.1 查詢所有學生記錄,按年齡升序排序 SELECT *FROM stu ORDER BY age ASC ; #5.2 查詢所有學生記錄,按年齡降序排序 SELECT *FROM stu ORDER BY age DESC ; #5.3 查詢所有僱員,按月薪降序排序,如果月薪相同時,按編號升序排序 SELECT *FROM emp ORDER BY sal DESC, empno ASC ; #6 聚合函式 #6.1 COUNT #查詢emp表中記錄數 SELECT count(*) AS cnt FROM emp; #查詢emp表中有佣金的人數 SELECT count(comm)AS cnt FROM emp; #查詢emp表中月薪大於2500的人數 SELECT count(*)FROM emp WHERE sal > 2500; #統計月薪與佣金之和大於2500元的人數 SELECT count(*)AS cnt FROM emp WHERE ifnull(sal,0) + ifnull(comm,0) > 2500; #查詢有佣金的人數,以及有領導的人數 SELECT count(comm),count(mgr)FROM emp; #6.2 SUM和AVG #查詢所有僱員月薪和 SELECT sum(sal)FROM emp; #查詢所有僱員月薪和,以及所有僱員佣金和 SELECT sum(sal),sum(comm)FROM emp; #查詢所有僱員月薪+佣金和 SELECT sum(ifnull(sal,0) + ifnull(comm,0)) FROM emp ; #統計所有員工平均工資 SELECT avg(sal)FROM emp; #6.3 MAX和MIN #查詢最高工資和最低工資 SELECT max(sal), min(sal)FROM emp; #查詢各部門的人數 SELECT deptno, count(*)FROM emp GROUP BY deptno; -- 查詢每個部門的部門編號和每個部門的工資和: SELECT deptno,sum(sal)FROM emp GROUP BY deptno; -- 查詢每個部門的部門編號以及每個部門的人數: SELECT deptno,count(*)FROM emp GROUP BY deptno; -- 查詢每個部門的部門編號以及每個部門工資大於1500的人數 SELECT deptno,count(*)FROM emp WHERE sal > 1500 GROUP BY deptno; -- 查詢工資總和大於9000的部門編號以及工資和: SELECT deptno,sum(sal)FROM emp GROUP BY deptno HAVING sum(sal) > 9000; -- 查詢工資大於1500的,工資總和大於6000的部門編號以及工資和: SELECT deptno,sum(sal)FROM emp WHERE sal>1500 GROUP BY deptno HAVING sum(sal)>6000; #>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>># #1,建立表,結構如下: # 表名:student use mydb2; drop TABLE student; CREATE TABLE student( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(10) UNIQUE NOT NULL , gender VARCHAR(50) DEFAULT 'man', age INT NOT NULL , chinese DOUBLE NOT NULL , math DOUBLE NOT NULL , english DOUBLE NOT NULL ); INSERT INTO student (name, gender,age, chinese, math, english) VALUES ('zhangSan',DEFAULT,13,90,61.25,40), ('liSi','woman',13,92,71.50,48), ('wangWu',DEFAULT,14,60,66.50,57), ('zhaoLiu',DEFAULT,14,59,0.00,32), ('zhouQ','woman',13,90,85.00,80) ; SELECT * FROM student; DESC student; #2,刪除表中平均分低於60的資料. DELETE FROM hw_stu WHERE sum(math+chinese+english)/3 < 60 ; DELETE FROM hw_stu WHERE avg(math) + avg(chinese) + avg(english) < 60 ; #3,將name列的型別改為varchar(50). ALTER TABLE student CHANGE name name VARCHAR(50); #4,查詢表中資料的平均年齡. SELECT avg(age)FROM student; #5,將age列刪除. ALTER TABLE student DROP age; #6,查詢表中女生中平均分高於80分和男生中平均分高於60分的資料. SELECT name,math,chinese,english,sum(math+chinese+english)/3 > 80,sum(math+chinese+english)/3 > 60 AND gender != 'woman'FROM hw_stu GROUP BY id; #7,將表名修改為hw_stu RENAME TABLE student TO hw_stu; #8,增加列age int ALTER TABLE hw_stu ADD age INT; SELECT *FROM hw_stu; #1,查詢表中語文成績比數學成績高的所有資料的id,並且按照語文成績升序排序,如果語文成績相同,則按照數學成績降序排序. SELECT id,count(*)FROM hw_stu WHERE chinese>math GROUP BY id ORDER BY chinese ASC ,math DESC ; #2,將表中英語成績在40到60之間的,男生的數學成績修改為80; UPDATE hw_stu SET math=80 WHERE english BETWEEN 40 AND 60; #3,練習五個聚合函式的使用,求最值,求數量,求平均值,求和. SELECT max(math),min(chinese)FROM hw_stu; SELECT count(english)FROM hw_stu; SELECT avg(math)FROM hw_stu; SELECT sum(chinese)FROM hw_stu; #4,查詢每人的平均分. SELECT id,sum(math+chinese+english)/3 AS 平均分 FROM hw_stu GROUP BY id; #建立表: #表名:hw_dmt #dmtid:部門編號 為主鍵 #dname:部門名稱 #dloc:部門地址 USE mydb2; DROP TABLE hw_dmt; CREATE TABLE hw_dmt( dmtid INT PRIMARY KEY , dname VARCHAR(10) UNIQUE NOT NULL , dloc VARCHAR(50)NOT NULL ); INSERT INTO hw_dmt (dmtid,dname, dloc) VALUES (10,'董事會','北京'), (20,'財務部','上海'), (30,'銷售部','廣州'), (40,'出題部','大連') ; SELECT *FROM hw_dmt; #建立表: #表名:hw_emp #id:員工編號:為主鍵 #mgrid:上級的id號 #dmtid:部門編號 為外來鍵 reference 表hw_dmt #hiredate:入職日期 型別為date #pay:工資 #prize:獎金 #name: 姓名 #job: 工作 USE mydb2; DROP TABLE hw_emp; CREATE TABLE hw_emp( id INT PRIMARY KEY , name VARCHAR(50)NOT NULL , job VARCHAR(50)NOT NULL , mgrid INT , hiredate DATE NOT NULL , pay DOUBLE NOT NULL , prize DOUBLE, dmtid INT REFERENCES hw_dmt(dmtid) ); INSERT INTO hw_emp (id,name,job, mgrid,hiredate,pay, prize,dmtid) VALUES (1001,'張三瘋','董事長',NULL ,'2000-01-01',88888,88888,10), (1002, '劉備','經理',1001,'2004-03.05',40000,NULL ,20), (1003,'關羽','會計',1002,'2003-07-09',12000,8000,20), (1004,'玉皇大帝','經理',1001,'2000-01-01',40000,40000,30), (1005,'李靜','銷售員',1004,'2002-11-11',8000,20000,30), (1006,'太白金星','銷售員',1004,'2001-05-06',9000,30000,30), (1007,'張飛','會計',1002,'2005-02-27',10000,4000,20), (1008,'蕭炎','清潔工',NULL ,'1995-08-21',99999,99999,40) ; SELECT *FROM hw_emp; #1,查詢每個部門中工資大於部門平均工資的員工的姓名,工資 SELECT A.name,A.dmtid,A.pay,B.AVG FROM hw_emp A, (SELECT dmtid,AVG(pay) AVG FROM hw_emp GROUP BY dmtid) B WHERE A.dmtid = B.dmtid AND A.pay >B.AVG; #2,查詢出名字由四個字組成的管理人員姓名和綜合薪水 SELECT name,pay+prize FROM hw_emp WHERE name LIKE '____' AND mgrid = 1001; #3,找出獎金高於工資90%,有上級,且入職日期在2001年入職的人員的姓名,部門編號 SELECT name,dmtid FROM hw_emp WHERE (pay*0.9) < prize OR mgrid IS NULL OR hiredate LIKE '2001_______'; #4,找出部門編號為20中所有經理,和部門編號為30中所有銷售員的詳細資料 SELECT * FROM hw_emp WHERE dmtid = 20 AND job='經理' OR dmtid = 30 AND job = '銷售員'; #5,查詢有兩個名字的員工的工種個數和兩個名字員工中的最大工資 SELECT job,concat(job),max(pay)FROM hw_emp WHERE name LIKE '__'; #6,查詢每個工種的員工數量,平均工資,按照平均工資降序排序 SELECT job,avg(pay),count(*)FROM hw_emp GROUP BY hw_emp.job ORDER BY avg(pay) DESC ;

相關推薦

簡單資料庫 查詢 刪改 -----

CREATE DATABASE mydb2; SHOW DATABASES ; ALTER DATABASE mydb2 CHARACTER SET utf8; SHOW TABLES ; SELECT database(); USE mydb2; CREAT

Android 簡單資料庫刪改

Android 簡單資料庫(增刪改查)       <Button android:id="@+id/insert_btn" android:layout_width="wrap_content"

Python的Django框架-資料庫查詢(刪改)

建立專案 django-admin startproject django_model 建立應用 python manage.py startapp model 配置應用 model, 編輯 django_model/settings.py

flask連線mysql資料庫操作刪改簡單封裝函式

Y17 1、建立python資料夾,命名為app,建立並返回一個WGSI應用程式物件 from flask import Flask app = Flask(__name__) # 定義函式封裝路由配置 def path(route, fun, *, methods=['GE

Laravel 資料庫例項教程 —— 使用查詢構建器對資料庫進行刪改

上一節我們講了如何使用DB門面對資料庫進行原生查詢,這一節我們使用另外一種方式實現對資料庫的增刪改查——查詢構建器(Query Builder)。 獲取查詢構建器很簡單,還是要依賴DB門面,我們使用DB門面的table方法,傳入表名,即可獲取該表的查詢構建器: $us

Python3.6 連線mysql 資料庫刪改,及多執行緒簡單運用

readme:        匯入 pymysql 連線資料庫,完成資料處理後的增刪改查操作。匯入到其他Python檔案就可以直接呼叫。後面一個檔案是多執行緒操作, 另一個檔案是處理曲線擬合和積分的然後資料和資料庫互動的運用。 aliyunMySQL_test.py im

MyBatis對資料庫刪改操作,簡單示例

之前一直實用Hibernate進行開發,最近公司在使用Mybatis,根據網上的示例,做了一個簡單的Demo,以便日後複習 使用XMl方式對映sql語句 總體結構如下圖 首先是建立一個工程,然後匯入兩個jar包,然後編寫mybatis的jdbc配置檔案Configu

Yii資料庫操作刪改-[增加\查詢\更新\刪除 AR模式]

本人小菜鳥一隻,為了自我學習和交流PHP(jquery,linux,lamp,shell,javascript,伺服器)等一系列的知識,小菜鳥建立了一個群。希望光臨本部落格的人可以進來交流。尋求共同

hibernate簡單程式,實現從頁面對資料庫刪改(主從表關聯)

      前段時期一直使用三層來寫從頁面對資料庫的增刪改查,今天用hibernate框架來實現從頁面對資料庫的增刪改查, 首先介紹下今天我們要實現的功能, 1、使用者能夠註冊,2、註冊成功後直接跳到登入頁面,3、登入成功後直接跳到對公司、人員的增刪改查, 4、要有對人員介

JavaScript/Jsp 實現對資料庫刪改簡單的下載上傳檔案

完成目標:在頁面顯示資料庫的資訊,並且完成對資料庫的增刪改查,並且增加分頁功能。在頁面實現圖片或文字的下載。 1.增刪改查操作 User實體類程式碼: package com.jredu.web.entity; public class User { private

Java的動態數組:ArrayList的簡單運用(刪改

ArrayList的使用 Java的動態數組 ArrayList 小夥伴們!今天做個筆記分享給大家!這個是我創建的QQ交流群:315677448感興趣的歡迎你的加入。廢話不多說直接進入今天的主體ArrayList就是傳說中的動態數組!咱們創建一個Test類,具體代碼如下:package Case0

資料庫刪改 insert delete update select

        新增資料用:關鍵字insert Insert into 表名(屬性列1,屬性列2)values(屬性值,屬性值) 用已有的資料表建立新的資料表 Create table 表名1 as select 屬性列1,屬性列2

php實現資料庫刪改總結

查詢語句的語法: select() * | 欄位列表 from 表列表 where 條件  查詢可以返回一個結果集 select * from mytable select id,name from mytable select * from mytable where id=3

python使用mysql資料庫刪改

需要注意的是: mysql資料建立的表中,欄位名中不能出現key當欄位名。 因為使用python中呼叫插入語句時,不能成功插入。   匯入庫 import MySQLdb   連線資料庫 #開啟資料庫連線 db = MySQLdb.connec

mongoTemplate簡單用法(刪改

分頁時查詢數量: 1 2 3 4

用sql語句操作mysql資料庫刪改(命令提示符和引入mysql模組兩種方式)

1:命令提示符方法: 我的 :mysql.sql檔案。當然首先得開啟本地伺服器(我的是xampp); 少了一步了:首先要在進入mysql -h127.0.0.1 -u root -p;後引入我的mysql.sql 檔案; 我用的是 source方法:  source

安卓使用sql語句實現SQLite資料庫刪改

本篇博文是在上一篇新建了資料庫的基礎上編寫的,上一篇博文連結:https://blog.csdn.net/liyunfu233/article/details/84193368 首先在佈局檔案中新增四個按鍵分別是增刪改查四種方法,在主視窗類中實現四種方法: 第一個點選按鈕增加一條記錄

lua 連線mysql資料庫實現刪改操作(linux下示例)

(1)linux下連線資料庫: mysql -u root -p,-u 指定登入使用者,-p 指定密碼。 [[email protected]18 develop]$ mysql -u root -p Enter password: Welcome to the MySQ

可編輯樹Ztree的使用(包括對後臺資料庫刪改

找了很多網上關於Ztree的例子和程式碼才搞定。 首先,關於Ztree的程式碼不介紹了,網上下載之後,引用下列四個檔案就能使用了。       1.關於配置選項。主要通過回撥函式來實現向後臺傳送資料,實現增刪改查。   1 var setti

springboot jpa 分頁查詢(刪改)總結

springboot  jpa 分頁查詢(增刪改查)總結          jpa 大白話可以把它理解為一個外掛,在開發過程中,目的在於可以提供你更加簡單的程式設計模型,簡單方便 。       &