簡單的資料庫 查詢 增刪改查 -----
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 大白話可以把它理解為一個外掛,在開發過程中,目的在於可以提供你更加簡單的程式設計模型,簡單方便 。 &