【數據庫】10.0 MySQL經常使用語句(一)

顯示數據庫語句:java

SHOW DATABASES    只是顯示數據庫的名字sql

 

顯示數據庫建立語句:數據庫

SHOW CREATE DATABASE db_namejsp

 

數據庫刪除語句:函數

DROP DATABASE  [IF EXISTS]  db_name排序

 

 

 

建立數據庫事務

create database day15       -- 指定默認字符集建立數據庫rem

    -> default character set utf8字符串

    -> ;servlet

 

查看數據庫的默認字符集

show create database day15;

 

刪除數據庫

drop database day15;

 

修改數據庫

alter database day15 default character set gbk;

 

查看全部表

show tables;

 

建立表

create table student[A1] (

    -> sid[A2]  int[A3] ,

    -> sname varchar(20)[A4] ,

    -> sage int

    -> );

 

查看錶結構     

desc student;

 

刪除表

drop table student;

 

修改表

1)添加字段

alter table student add column sgender varchar(2);

 

2)刪除字段

alter table student drop column sgender;

 

3)修改字段類型

alter table student modify column remark varchar(100);

 

4)修改字段名稱

 alter table student change column sgender gender varchar(2);

 

5)修改表名稱

alter table student rename to teacher;

 

增刪改數據

1.1 增長數據

-- 插入全部字段。必定依次按順序插入

INSERT INTO student VALUES(1,'張三','男',20);

 

-- 注意不能少或多字段值

-- INSERT INTO student VALUES(2,'李四','女');

 

-- 插入部分字段

INSERT INTO student(id,NAME) VALUES(2,'李四');

 

-- 1.2 修改數據

-- 修改全部數據(建議少用)

UPDATE student SET gender='女';

 

-- 帶條件的修改(推薦使用)

UPDATE student SET gender='男' WHERE id=1; -- 修改id爲1的學生,修改性別爲男

 

-- 修改多個字段,注意: SET 字段名=值,字段名=值,....

UPDATE student SET gender='男',age=30 WHERE id=2;

 

1.3 刪除數據

-- 刪除全部數據(建議少用)

DELETE FROM student;

 

-- 帶條件的刪除(推薦使用)

DELETE FROM student WHERE id=2;

 

--  另外一種方式

-- delete from: 能夠全表刪除      1)能夠帶條件刪除  2)只能刪除表的數據,不能刪除表的約束     3)使用delete from刪除的數據能夠回滾(事務)

-- truncate table: 能夠全表刪除   1)不能帶條件刪除 2)便可以刪除表的數據,也能夠刪除表的約束 3)使用truncate table刪除的數據不能回滾

 

TRUNCATE TABLE student;

 

查詢數據(重點)

1 查詢全部列

SELECT * FROM student;

 

2 查詢指定列

SELECT id,NAME,gender FROM student;

 

3.查詢時添加常量列

需求: 在查詢student表時添加一個班級列,內容爲「java就業班」

SELECT id,NAME,gender,age,'java就業班' AS '年級'  FROM student;

 

4 查詢時合併列

 查詢每一個學生的servlet和jsp的總成績

SELECT id,NAME,(servlet+jsp) AS '總成績' FROM student;

 

-- 注意:合併列只能合併數值類型的字段

SELECT id,(NAME+servlet) FROM student;

 

5.查詢時去除重複記錄

 查詢時去除重複記錄(DISTINCT)

-- 需求: 查詢學生的性別     男 女

SELECT DISTINCT gender FROM student;

 

-- 另外一種語法

SELECT DISTINCT(gender) FROM student;

 

-- 需求: 查詢學生所在的地區

SELECT DISTINCT address FROM student;

 

6 條件查詢

2.7 條件查詢(where)

-- 2.7.1 邏輯條件: and(與)     or(或)

-- 需求: 查詢id爲2,且姓名爲李四的學生

SELECT * FROM student WHERE id=2 AND NAME='李四'; -- 交集

 

-- 需求: 查詢id爲2,或姓名爲張三的學生

SELECT * FROM student WHERE id=2 OR NAME='張三'; -- 並集

 

-- 2.7.2 比較條件: >   <   >=  <=  =  <>(不等於)     between and (等價於>= 且 <=)

-- 需求: 查詢servlet成績大於70分的學生

SELECT * FROM student WHERE servlet>70;

-- 需求: 查詢jsp成績大於等於75,且小於等於90分的學生

SELECT * FROM student WHERE jsp>=75 AND jsp<=90;

 

-- 另外一個語法

SELECT * FROM student WHERE jsp BETWEEN 75 AND 90; -- (包前包後)

SELECT * FROM student WHERE gender<>'男';

 

-- 2.7.3 判空條件(null 空字符串):  is null / is not null / =''  / <>''

-- 需求: 查詢地址爲空的學生(包括null和空字符串)

-- null vs  空字符串

-- null:表示沒有值

-- 空字符串:有值的!

-- 判斷null

SELECT * FROM student WHERE address IS NULL ;

 

-- 判斷空字符串

SELECT * FROM student WHERE address='';

SELECT * FROM student WHERE address IS NULL OR address=''; -- (包括null和空字符串)

 

-- 需求: 查詢有地址的學生(不包括null和空字符串)

SELECT * FROM student WHERE address IS NOT NULL AND address<>'';

 

2.7.4 模糊條件: like

-- 一般使用如下替換標記:

-- % : 表示任意個字符

-- _ : 表示一個字符

-- 需求: 查詢姓‘張’的學生

SELECT * FROM student WHERE NAME LIKE '李%';

 

-- 需求: 查詢姓‘李’,且姓名只有兩個字的學生

SELECT * FROM student WHERE NAME LIKE '李_';

 

7 聚合查詢

 2.8 聚合查詢(使用聚合函數的查詢)

 -- 經常使用的聚合函數: sum()  avg()  max()  min()  count()

-- 需求:查詢學生的servlet的總成績 (sum() :求和函數)

SELECT SUM(servlet) AS 'servlet的總成績' FROM student;

 

-- 需求: 查詢學生的servlet的平均分

SELECT AVG(servlet) AS 'servlet的平均分' FROM student;

 

-- 需求: 查詢當前servlet最高分

SELECT MAX(servlet) AS '最高分' FROM student;

 

-- 需求: 查詢最低分

SELECT MIN(servlet) AS '最低分' FROM student;

 

-- 需求: 統計當前有多少學生(count(字段))

SELECT COUNT(*) FROM student;

SELECT COUNT(id) FROM student;

 

-- 注意:count()函數統計的數量不包含null的數據

-- 使用count統計表的記錄數,要使用不包含null值的字段

SELECT COUNT(age) FROM student;

 

8 分頁查詢

 2.9 分頁查詢(limit 起始行,查詢幾行)

-- 起始行從0開始

-- 分頁:當前頁  每頁顯示多少條

-- 分頁查詢當前頁的數據的sql: SELECT * FROM student LIMIT (當前頁-1)*每頁顯示多少條,每頁顯示多少條;

-- 需求: 查詢第1,2條記錄(第1頁的數據)

SELECT * FROM student LIMIT 0,2;

 

-- 查詢第3,4條記錄(第2頁的數據)

SELECT * FROM student LIMIT 2,2;

 

查詢第5,6條記錄(第3頁的數據)

SELECT * FROM student LIMIT 4,2;

 

-- 查詢第7,8條記錄 (沒有記錄不顯示)

SELECT * FROM student LIMIT 6,2;

 

9 查詢排序

 2.10 查詢排序(order by )

-- 語法 :order by 字段 asc/desc

-- asc: 順序,正序。數值:遞增,字母:天然順序(a-z)

-- desc: 倒序,反序。數值:遞減,字母:天然反序(z-a)

-- 默認狀況下,按照插入記錄順序排序

SELECT * FROM student;

 

-- 需求: 按照id順序排序

SELECT * FROM student ORDER BY id ASC;

SELECT * FROM student ORDER BY id; -- 默認正序

SELECT * FROM student ORDER BY id DESC;-- 反序

-- 注意:多個排序條件

-- 需求: 按照servlet正序,按照jsp的倒序

SELECT * FROM student ORDER BY servlet ASC,jsp DESC;

 

10 分組查詢

 2.11 分組查詢(group by)

-- 需求: 查詢男女的人數

-- 預期結果:

  --  男   3

  --- 女   2

 

  -- 1) 把學生按照性別分組(GROUP BY gender)

  -- 2) 統計每組的人數(COUNT(*))

SELECT gender,COUNT(*) FROM student GROUP BY gender;

 

11 分組查詢後篩選

 2.12 分組查詢後篩選

-- 需求: 查詢總人數大於2的性別

-- 1) 查詢男女的人數

-- 2)篩選出人數大於2的記錄(having)

--- 注意: 分組以前條件使用where關鍵字,分組以前條件使用having關鍵字

SELECT gender,COUNT(*) FROM student WHERE GROUP BY gender HAVING COUNT(*)>2;

相關文章
相關標籤/搜索