標籤:distinct 區別 修改表 val 去重 .com tin 資料查詢 png
1、建立資料庫和使用者-- 修改密碼 ctrl+shift+c/r 添加/取消 注釋
SET PASSWORD FOR [email protected]=PASSWORD(‘新密碼‘);
-- 查詢所有的資料庫
SHOW DATABASES ;
-- 建立資料庫
CREATE DATABASE IF NOT EXISTS t11;
-- 刪除資料庫
DROP DATABASE t11;
-- 切換到指定的資料庫
USE mysql;
-- 查詢mysql資料庫中user表中所有使用者
SELECT `host`,`user` FROM mysql.user
-- `反引號` 區別關鍵字
-- 建立使用者
CREATE USER bdqn IDENTIFIED BY ‘bdqn‘;
-- 給使用者授權
GRANT ALL ON *.* TO bdqn;
-- 刪除使用者
DELETE FROM mysql.user WHERE USER=‘bdqn‘ 3、建立修改表-- 建立一個學生資訊表
CREATE TABLE student(
stuNo INT(4) NOT NULL PRIMARY KEY,
stuName VARCHAR(20) NOT NULL,
stuAge INT(3) -- 不能加 ,
)
-- 修改表名
ALTER TABLE student RENAME AS stu;
-- 給表中新增欄位
ALTER TABLE stu ADD stuSex VARCHAR(2);
-- 修改表中欄位的類型
ALTER TABLE stu MODIFY stuName VARCHAR(10);
-- 刪除表中指定的欄位
ALTER TABLE stu DROP stuSex;
-- 修改欄位的名稱
ALTER TABLE stu CHANGE stuName `name` VARCHAR(10);4、刪除表-- 刪除表
DROP TABLE IF EXISTS student;
-- 01.新增一條資料
INSERT INTO student(stuNo,`name`,stuAge)
VALUES(1,‘張三‘,50);
-- 02.新增一條資料 必須按照建立表時 欄位的順序依次賦值
INSERT INTO student
VALUES(2,‘李四‘,50)
-- 03.新增一條資料 stuNo不是自增 預設stuNo=0 如果設定了自增 可以不顯示的給stuNo賦值
INSERT INTO student(`name`,stuAge)
VALUES(‘王五‘,50);
-- 04.刪除表中所有資料
DELETE FROM student;
-- 05.同時新增多條資料
INSERT INTO student
VALUES(1,‘張三‘,50),(2,‘李四‘,50),(3,‘王五‘,50);5、資料庫的備份與恢複 6、四種完整性條件約束和六大約束 -- 四種完整性條件約束
-- 01.實體完整性 唯一約束,主鍵約束
-- 指的就是一條記錄!保證每一條記錄都是唯一的,有意義的!
-- 02.值域完整性 檢查約束,外鍵約束
-- 域在這裡指的是欄位!保證欄位的值必須是有效!
-- 03.參考完整性 外鍵約束
-- 一個表中的欄位值來自另一個表中的欄位值!
-- 引用的表就是外鍵表/從表
-- 被引用的表就是主表
-- 04.自訂完整性 檢查約束
-- 6大約束
-- 01.主鍵約束 pk primary key
-- 02.唯一約束 uq unique
ALTER TABLE student
ADD CONSTRAINT uq_student_name UNIQUE(NAME)
-- 03.外鍵約束 fk foreign key
ALTER TABLE student
ADD tid INT(4); -- 在student表中新增欄位CREATE TABLE teacher( -- 建立teacher表
tId INT(4) NOT NULL PRIMARY KEY,
tName VARCHAR(20)
);INSERT INTO teacher -- 給teacher表新增資料
VALUES(1000,‘教師1‘),(1001,‘教師2‘),(1002,‘教師3‘),(1003,‘教師4‘);
ALTER TABLE student -- 在從表中建立外鍵關係
ADD CONSTRAINT fk_teacher
FOREIGN KEY(tid)
REFERENCES teacher(tId)-- 04.預設值約束 df default
-- 05.檢查約束 ck check
-- 06.非空約束 nn not null7、修改和刪除表中的資料-- 修改表中的資料
-- update 表名 set 需要修改的資料 where 條件
-- 01.修改stuNo=5的姓名為 ‘小黑’
UPDATE student SET `name`=‘小黑‘
WHERE stuNo=5;
-- 02.修改所有tid=1001 改成 1003
UPDATE student SET tid=1003
WHERE tid=1001
-- 刪除表中的資料
-- delete from 表名 where 條件
-- 刪除stuAge在20 到100之間的資料
DELETE FROM student
WHERE
stuAge>=20 AND stuAge<=100; DELETE FROM student
WHERE
stuAge BETWEEN 200 AND 500; -- 刪除teacher表中所有的資料
DELETE FROM teacher;8、基本的查詢語句-- DQL(data query language)資料查詢語言
-- 01.查詢所有的學生資訊
SELECT * FROM student;
-- 02.查詢指定的學生資訊
SELECT * FROM student WHERE studentName=‘大凡‘;
-- 03.查詢編號是1009的學生編號,姓名以及住址
SELECT studentNo,studentName,address FROM student
WHERE studentNo=1009;
-- 04.查詢的時候使用別名 as 也可以省略
SELECT studentNo AS 編號,studentName AS 姓名,
address AS 住址 FROM student
WHERE studentNo=1009; SELECT studentNo 編號,studentName 姓名,
address 住址 FROM student
WHERE studentNo=1009; -- 05.查詢student和grade兩個表中的資料
SELECT * FROM student,grade;
-- 上面的結果是一個 笛卡爾積! 兩個表中資料的乘積!
SELECT * FROM student,grade
WHERE student.gradeid=grade.gradeid -- 06.去重 distinct 查詢多列時,必須位於第一個
-- 查詢學產生績在85到95之間的學生編號
SELECT DISTINCT studentNo,studentResult
FROM result
WHERE studentResult BETWEEN 85 AND 95;
-- 07.查詢學產生績在85到95之間的學生姓名
SELECT studentName FROM student
WHERE studentNo IN
(SELECT DISTINCT studentNo FROM result
WHERE studentResult BETWEEN 85 AND 95); -- 驗證我們的輸出是正確的
UPDATE result SET studentResult=80
WHERE studentNo=1000; -- 08.查詢學生表中 地址不為空白的學生姓名和地址
SELECT studentName,address
FROM student
WHERE address!=‘‘; -- 09.查詢學生表中地址為空白的學生姓名和地址
-- null 代表無值 區別於 ‘’Null 字元串 SELECT studentName,address
FROM student
WHERE address=‘‘; SELECT studentName,address
FROM student
WHERE address IS NULL; SELECT studentName,address
FROM student
WHERE address IS NOT NULL; -- 10.查詢姓名是 李東方或者劉奮鬥的 學生資訊
SELECT * FROM student
WHERE studentName=‘李東方‘ OR studentName=‘劉奮鬥‘
-- 11.查詢姓名是 李東方或者劉奮鬥 再或者是json 的 學生資訊
SELECT * FROM student
WHERE
studentName=‘李東方‘ OR studentName=‘劉奮鬥‘
OR studentName=‘json‘; -- 12.使用in 代替 SELECT * FROM student
WHERE studentName IN
(‘李東方‘,‘json‘,‘劉奮鬥‘); -- 13.查詢姓李的學生資訊 _ 代表一個字元 %代表0或者多個字元
SELECT * FROM student
WHERE studentName LIKE ‘李_‘ SELECT * FROM student
WHERE studentName LIKE ‘李%‘ SELECT * FROM student
WHERE studentName LIKE ‘%才‘ SELECT * FROM student
WHERE studentName LIKE ‘%才%‘
Mysql(一)