1、安裝mysql參考網上鏈接,進入mysql數據庫
mysql -u root -p
2、數據庫操作
2.1、創建數據庫
create database `數據庫名` default character set utf8;
2.2、顯示所有數據庫
show databases;
2.3、選擇數據庫
use elementInfo;
2.4、刪除數據庫
drop database `數據庫名`;
3、表操作
3.1、創建表
CREATE TABLE `class`(
`cid` int(3) NOT NULL AUTO_INCREMENT,
`caption` varchar(32) NOT NULL,
PRIMARY KEY(`cid`)
) ENGINE=INNODB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
在數據庫中創建一個名位class的表。
cid int(3) NOT NULL? AUTO_INCREMENT:定義了一個名為cid的整數類型字段,顯示寬度被指定為3,此字段是自動遞增的(AUTO_INCREMENT),意味著每添加一條新記錄時,如果沒有明確的指定cid值,數據庫會自動為其分配一個唯一的遞增值。此外,由于設置了NOT NULL,所以每一行都必須為此列提供一個值,但由于它是自動遞增的,實際上不需要手動提供。
PRIMARY KEY(cid): 指定cid為主鍵,這表示它在一個表中的每一行中都必須有唯一值,并且用來唯一標識表中的記錄。
ENGINE=INNODB:指定了存儲引擎為InnoDB。
AUTO_INCREMETN=5:設置了自增的起始值為5,剛開始向表中插入新紀錄時,第一條記錄的cid將從5開始計數。
DEFAULT CHARSET=utf8:設置了表的默認字符集為utf8。
備注:實際寫sql語句時,也可以使用Navicat Premium客戶端,操作會方便一些
3.2、查看表相關信息(包括列名、數據類型、是否允許NULL、鍵信息等)
desc 表名
3.3、增加數據
INSERT INTO `class` VALUES ('1', '2021年');
INSERT INTO `class` VALUES ('2', '2021年');
INSERT INTO `class` VALUES ('3', '2022年');
3.4、刪除表
drop table `表名`
3.5、刪除表中數據
delete from `表名` where 條件
3.6、改表中數據
update table_name set field1=new_value1;
4、各種查詢語句
4.1、全部查詢
-- 全部查詢
select * from student;
4.2、只查詢部分字段
-- 只查詢部分字段
select `sname`,`class_id` from student;
4.3、別名、列名(相當于給列起別名)
select `sname` as '姓名',`class_id` as '班級id' from student;
4.4、把查詢出來的結果重復記錄去掉
-- 把查詢出來的結果的重復記錄去掉
select distinct `class_id` from student;
4.5、條件查詢
-- 查詢姓名為 張三 的學生信息select* from `student` where `sname` = '張三';-- 查詢性別為 男 并且班級為2 的學生信息
select* from `student` where `gender` = '男' and `class_id`=2;
4.6、范圍查詢
-- 查詢班級id 1 到 3 的學生信息
select * from student where `class_id` BETWEEN 1 AND 3;
4.7、判空查詢
-- 判斷不為空字符串
select * from student where `gender` <> '';-- 判斷為空字符串
select * from student where `gender` = '';
4.8、模糊查詢
-- 使用like關鍵字,"%"代表任意數量的字符,"_"代表占位符
-- 查詢名字為 李 開頭的學生信息
select * from student where `sname` like '李%';-- 查詢第二個字為 四的學生信息
select * from student where `sname` like '_四%';
4.9、分頁查詢
-- 分頁查詢主要用于查看第N條 到 第M條的信息,通常和查詢一起使用
-- 使用limit關鍵字,第一個參數表示從第幾條開始,第二個參數表示要顯示的數目
select * from student limit 0,3;
4.10、查詢后排序
-- 關鍵字order by field asc:升序 desc:降序
select* from `score` order by `num` asc;-- 按照多個字段排序
select* from `score` order by `course_id` desc, `num` desc;
4.11、聚合查詢
-- 分組加group_cat
-- 按性別分組,并把班級id聚合起來
select `gender`, group_concat(`class_id`) as '班級id' from student group by `gender`;-- 按性別分組,統計男生、女生人數
select `gender`, count(*) as '總數' from student group by 'gender';
4.12、聯表查詢
INNER JOIN:只取倆張表有對應關系的記錄
LEFT JOIN:在內連接的基礎上保留左表沒有對應關系的記錄
RIGHT JOIN:在內連接的基礎上保留右表沒有對應關系的記錄
-- 表course 和 表teacher中id相同,獲取cid信息
select `cid` from `course` INNER JOIN `teacher` on course.teacher_id = teacher.tid
4.13、子查詢/合并查詢
-- 相當于select返回的結果,又作為另一個select語句的輸入
select * from `course` where teacher_id = (select tid from teacher where tname = '謝小二老師');
備注:要多動手練練
學習鏈接:https://github.com/0voice