九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
SQL語句筆記

什么是SQL

SQL:Structure Query Language 結(jié)構(gòu)化查詢語言,它是一種關(guān)系型數(shù)據(jù)庫通用的語言。用來對數(shù)據(jù)庫進行管理,主要分成以下四大類

SQL語句分類

1.Data Definition Language:簡稱為DDL,數(shù)據(jù)定義語言

Definition:n. 定義

用途:創(chuàng)建數(shù)據(jù)庫 創(chuàng)建表 對數(shù)據(jù)庫和表進行操作

2.Data Manipulation Language:簡稱為DML語言,數(shù)據(jù)操作語言

Manipulation:n. 操縱;操作;處理;篡改

用途:對記錄進行增刪改的操作

3.Data Query Language:簡稱為DQL,數(shù)據(jù)查詢語言

用途:對記錄進行查詢的操作,用得最多(重點)

4.Data Control Language:簡稱為DCL,數(shù)據(jù)控制語言

用途:對用戶和權(quán)限進行管理,用得比較少,一般給DBA使用

MySQL的語法

  1. 每一行代碼都以分好結(jié)尾,一行代碼可以拆分多行用一個分好結(jié)尾。
  2. SQL語句不區(qū)分大小寫,行業(yè)的規(guī)范是全部使用大寫
  3. 注釋: # 單行注釋
    -- 單行注釋 規(guī)范寫法,推薦使用my
    /*
    多行注釋
    */

DDL:創(chuàng)建數(shù)據(jù)庫

創(chuàng)建數(shù)據(jù)庫

-- 創(chuàng)建數(shù)據(jù)庫 CREATE DATABASE 數(shù)據(jù)庫名;

創(chuàng)建的數(shù)據(jù)庫默認字符集是安裝數(shù)據(jù)庫指定的字符集格式(通常都是UTF-8)

 -- 創(chuàng)建指定字符集的數(shù)據(jù)庫 CREATE DATABASE 數(shù)據(jù)庫名 CHARACTER SET gbk;
-- 查看創(chuàng)建數(shù)據(jù)庫的腳本 SHOW CREATE DATABASE 數(shù)據(jù)庫名;

SQLyog客戶端返回結(jié)果

可以從中獲取到默認的字符集是utf8

如果數(shù)據(jù)庫的名字被使用,在SQL中使用被使用的名字會報錯,所以在創(chuàng)建數(shù)據(jù)庫前需要判斷數(shù)據(jù)庫是否存在,不存在再創(chuàng)建數(shù)據(jù)庫

 -- 判讀數(shù)據(jù)庫是否存在,不存在則創(chuàng)建數(shù)據(jù)庫 CREATE DATABASE IF NOT EXISTS  數(shù)據(jù)庫名;

刪除數(shù)據(jù)庫

DROP DATABASE 數(shù)據(jù)庫名;
 -- 判讀數(shù)據(jù)庫是否存在,存在則刪除 DROP DATABASE IF EXISTS 數(shù)據(jù)庫名;

查看數(shù)據(jù)庫

-- 查看所有的數(shù)據(jù)庫 SHOW DATABASES;
 -- 查看創(chuàng)建數(shù)據(jù)庫的腳本 SHOW CREATE DATABASE 數(shù)據(jù)庫名;

SQLyog客戶端返回結(jié)果

修改數(shù)據(jù)庫

-- 將數(shù)據(jù)庫的字符集修改為指定字符集 注意在MySQL中不可以是UTF-8只能寫成utf8 ALTER DATABASE 數(shù)據(jù)庫名 CHARACTER SET utf8;
 -- 可以通過查看創(chuàng)建數(shù)據(jù)庫腳本命令 確定字符集是否修改成功 SHOW CREATE DATABASE 數(shù)據(jù)庫名; 

使用數(shù)據(jù)庫

查看當前使用的數(shù)據(jù)庫

SELECT DATABASE();

使用指定的數(shù)據(jù)庫

 USE 數(shù)據(jù)庫名;

DDL:創(chuàng)建表結(jié)構(gòu)(重點)

創(chuàng)建表

創(chuàng)建表之前需要先使用

USE 數(shù)據(jù)庫名;
 -- 創(chuàng)建表  字段名 最好使用 ` `轉(zhuǎn)義包裹起來 防止和數(shù)據(jù)庫關(guān)鍵字沖突 CREATE TABLE 表名(     `字段名` 字段類型,     `字段名` 字段類型 );

MySQL支持的數(shù)據(jù)類型 紅色為常用類型

查看表結(jié)構(gòu)

desc 表名;

查看創(chuàng)建表的SQL語句

 SHOW CREATE TABLE 表名;

創(chuàng)建相同的表結(jié)構(gòu)(復制一個相同結(jié)構(gòu)的表)

-- 創(chuàng)建表1,表1結(jié)構(gòu)和原始表結(jié)構(gòu)相同 CREATE TABLE 表1 LIKE 原始表名;

刪除表

 DROP TABLE 表名;

判斷表是否存在再刪除表

DROP TABLE IF EXISTS 表名;

練習

 /* 表操作練習 */  -- 創(chuàng)建數(shù)據(jù)庫名為mydb的數(shù)據(jù)庫 CREATE DATABASE mydb; -- 使用數(shù)據(jù)庫名為mydb的數(shù)據(jù)庫 USE mydb; --mydb數(shù)據(jù)庫中創(chuàng)建一個student-- 包含id編號 整數(shù), -- name 長字符串長20, -- sex性別 定長型字符串1, -- birthday 字段日期類型 -- 使用反引號 `引起來,可以轉(zhuǎn)義  CREATE TABLE student(      `id` INT COMMENT '編號',  -- 字段的說明 保存在數(shù)據(jù)表中  可以不寫      `name` VARCHAR(20) COMMENT '姓名',  -- 姓名      `sex` CHAR(1),  -- 性別      `birthday` DATE   -- 生日,注:最后一個字段沒有逗號 );  -- 查看表的結(jié)構(gòu) DESC student;

SQLyog客戶端返回結(jié)果

修改表結(jié)構(gòu)

給表添加字段(添加列)ADD

ALTER TABLE 表名 ADD 字段名 字段類型;

修改字段類型(修改列的類型)MODIFY

 ALTER TABLE 表名 MODIFY 字段名 要修改成的字段類型;

修改字段名和字段類型 CHANGE

ALTER TABLE 表名 CHANGE 舊字段名 新字段名 新字段類型;

刪除列 DROP

 ALTER TABLE 表名 DROP 字段名;

修改表名

RENAME TABLE 舊的表名 TO 新的表名;

練習

 -- 如果表中已經(jīng)有數(shù)據(jù),刪除表結(jié)構(gòu)會導致表中所有的數(shù)據(jù)全部丟失 -- 可以修改表結(jié)構(gòu),不會影響數(shù)據(jù),只會影響表結(jié)構(gòu)  -- 查看表結(jié)構(gòu) DESC student; -- 為學生表添加一個新的字段remark,類型為char(20) ALTER TABLE student ADD remark CHAR(20);  --student表中的remark字段的改成varchar(100) ALTER TABLE student MODIFY remark VARCHAR(100);  --student表中的remark字段名改成info,類型varchar(30)  ALTER TABLE student CHANGE remark info VARCHAR(30);  -- 刪除student表中的字段info ALTER TABLE student DROP info;  -- 將學生表student改名成student2 RENAME TABLE student TO student2;

DML:添加數(shù)據(jù)

插入全部字段

增加一條數(shù)據(jù),所有的字段都要給值

INSERT INTO 表名 VALUES(字段1的值,字段2的值,字段3的值....); 1.VALUES關(guān)鍵字也可以替換為VALUE但是不規(guī)范 2.字段的值的類型一定要與字段的類型一致,否則會報錯 3.字符串和日期使用單引號包裹起來 4.如果字段類型是字符串,那么給值的時候不能超出字段類型中字符串限定的長度 如:varchar(5)字符串的長度不能超過5個字符

插入部分字段

 INSERT INTO 表名 (字段1的名,字段2的名....) VALUES (字段1的值,字段2的值....);

插入多條記錄

INSERT INTO 表名 VALUES(字段1的值,字段2的值,字段3的值....),(字段1的值,字段2的值,字段3的值....),(字段1的值,字段2的值,字段3的值....);

練習

 -- 向?qū)W生表中插入所有字段,不寫字段名 INSERT INTO student VALUES (100, '學生1', '男', '1999-02-18');  INSERT INTO student VALUES (200, '學生2', '女', '1999-02-18');  -- 添加的字段補全  錯誤代碼: 1136  Column count doesn't match value count at row 1 INSERT INTO student VALUES ('學生1 ', '', '1999-02-18');  -- 添加的字段超出 字符串長度閑置 錯誤代碼: 1406 Data too long for column 'sex' at row 1 INSERT INTO student VALUES (100, '學生1', '男1號', '1999-02-18');  -- 插入部分數(shù)據(jù),往學生表中添加id, name數(shù)據(jù) INSERT INTO student (id,NAME) VALUES (300,'學生3'); INSERT INTO student (id,NAME) VALUES (300,'學生3'),(400,'學生4');  -- 一條insert語句插入多條記錄 INSERT INTO student VALUES (400, '學生4', '女', '1994-02-18'),(500, '學生5', '男', '1999-02-11'),(600, '學生6', '男', '1993-02-18');

DML:修改記錄

不帶條件修改數(shù)據(jù)

-- 不帶條件修改數(shù)據(jù),表中的所有數(shù)據(jù)都會被修改,一般不適用 UPDATE 表名 SET 字段名=值,字段名=值;

帶條件修改數(shù)據(jù)

 -- 只會更新符合條件的記錄 UPDATE 表名 SET 字段名=值,字段名=值 WHERE 條件;

練習

-- 不帶條件修改數(shù)據(jù),將student表中的所有數(shù)據(jù)的性別改為女 UPDATE student SET sex='女'; -- 帶條件修改數(shù)據(jù),將id號為300的學生性別改成男 UPDATE student SET sex='男' WHERE id=300; -- 一次修改多個列,把id600的學生,修改性別為男,生日:2000-11-11 UPDATE student SET sex='男',birthday='2000-11-11' WHERE id=600;

DML:刪除表記錄

不帶條件刪除

不帶條件刪除會刪除表中所有的數(shù)據(jù)

 -- 基本不用,要記住慎用 DELETE FROM 表名;   -- 刪除表的全部記錄,但是表還在 DROP TABLE 表名;  -- 表會被刪除 表中的數(shù)據(jù)也會隨之刪除  -- 如果是事務(wù) 可以進行回滾

帶條件刪除

-- 在開發(fā)中通長會給數(shù)據(jù)一個刪除標記而不是完全的從數(shù)據(jù)庫中刪除 DELETE FROM 表名 WHERE 條件;

刪除表中所有的記錄

 TRUNCATE 表名;  -- 相當于刪除表 DROP TABLE 表名; -- 再創(chuàng)建表 CREATE DATABASE 表名;  -- 這個操作不可被回滾

總結(jié)

-- 添加記錄 INSERT INTO 表名 VALUES(值,值.....); INSERT INTO 表名 (字段1,字段2....) VALUES(值1,值2....); -- 刪除記錄 DELETE FROM 表名 WHERE 條件; -- 修改記錄 UPDATE 表名 SET 字段1=修改的值,字段2=修改的值 WHERE 條件;

DQL:查詢數(shù)據(jù)

查詢?nèi)?/h1>
 SELECT * FROM 表名;

從所有信息中查詢指定的字段

SELECT 字段1,字段2 FROM 表名;

條件查詢

 SELECT * FROM 表名 WHERE 條件;

指定列的別名

使用關(guān)鍵字AS (也可以省略)

SELECT 字段1 AS 別名1,字段2 AS 別名2 FROM 表名; -- 也可以省略AS SELECT 字段1 別名1,字段2 別名2 FROM 表名;

在查詢結(jié)果中取出重復的記錄

DISTINCT作用:去掉后面所有列都相同的行,如果后面有幾列,必須是這幾列都相同才會被去除

 SELECT DISTINCT 字段 FROM 表名;
-- 查詢學生來自于哪些地方,并且去掉重復行 SELECT * FROM student; -- 修改表結(jié)構(gòu),添加一個名為address的字段,并且添加數(shù)據(jù) ALTER TABLE student ADD address VARCHAR(100); -- 只查詢地址這一列 SELECT address FROM student; -- 去除重復的數(shù)據(jù) -- DISTINCT作用:去掉后面所有列都相同的行,如果后面有幾列,必須是這幾列都相同才會被去除 SELECT DISTINCT address FROM student; -- 查詢學生的姓名和地址,去掉重復行。必須是這幾列都相同才會被去除 SELECT DISTINCT NAME, address FROM student;

列數(shù)據(jù)和固定值運算

 select 列+數(shù)值 from 表名; -- 顯示的結(jié)果是列的值加上數(shù)值以后的結(jié)果,列必須是數(shù)值類型

列數(shù)據(jù)和其他列數(shù)據(jù)參與運算

select1+列2 from 表名; 列1和列2都是表中存在的字段

注意: 參與運算的必須是字段的數(shù)值類型

練習

 -- 修改student表結(jié)構(gòu),添加數(shù)學和英語成績列 ALTER TABLE student ADD math INT, ADD english INT;  -- 查詢姓名、數(shù)學,將數(shù)學每個減10分。查詢的結(jié)果不一定是表中存在的列,也有可能是計算的結(jié)果 SELECT NAME,math, math-10 FROM student;  -- 查詢所有列與math + english的和并使用別名”總成績” SELECT *, math+english 總成績 FROM student;

DQL:包含運算符的查詢條件

創(chuàng)建一個表并插入數(shù)據(jù)

CREATE TABLE student3 ( id int, -- 編號 name varchar(20), -- 姓名 age int, -- 年齡 sex varchar(5), -- 性別 address varchar(100), -- 地址 math int, -- 數(shù)學 english int -- 英語 ); INSERT INTO student3(id,NAME,age,sex,address,math,english) VALUES (1,'馬云',55,'男','杭州',66,78),(2,'馬化騰',45,'女','深圳',98,87),(3,'馬景濤',55,'男','香港',56,77),(4,'柳巖',20,'女','湖南',76,65),(5,'柳青',20,'男','湖南',86,NULL),(6,'劉德華',57,'男','香港',99,99),(7,'馬德',22,'女','香港',99,99),(8,'德瑪西亞',18,'男','南京',56,65);

比較運算符

 >、大于 <、小于 <=、小于等于 >=、大于等于 =、等于 <> 、!=、不等于

邏輯運算符

AND 或 && 與操作 OR 或 || 或操作 NOT 或 ! 非操作
 SELECT * FROM student3 WHERE math > 80;  -- 查詢english分數(shù)小于或等于80分的學生 SELECT * FROM student3 WHERE english <=80;   -- 查詢age等于20歲的學生,注:沒有== SELECT * FROM student3 WHERE age=20;  -- 查詢age不等于20歲的學生,注:不等于有兩種寫法 SELECT * FROM student3 WHERE age<>20;  -- SQL語句中使用<>方式比較多 SELECT * FROM student3 WHERE age!=20;
-- 查詢age大于35且性別為男的學生(兩個條件同時滿足) SELECT * FROM student3 WHERE age>35 AND sex='男'; -- 查詢age大于35或性別為男的學生(兩個條件其中一個滿足) SELECT * FROM student3 WHERE age>35 OR sex='男'; -- 查詢id135的學生 SELECT * FROM student3 WHERE id=1 OR id=3 OR id=5;

DQL:條件中的關(guān)鍵字(重點)

關(guān)鍵字IN

 SELECT * FROM 表名 WHERE 字段名 IN (值1,值2...);

用途:返回滿足括號內(nèi)給定值的記錄

-- 使用in關(guān)鍵字 SELECT * FROM student3 WHERE id IN (2,4,6); -- 刪除多條記錄 SELECT * FROM student; DELETE FROM student WHERE id IN (100,200,300);

BETWEEN...AND... 范圍查詢

 SELECT 列名 FROM 表名 WHERE 列名 BETWEEN 小值 AND 大值

用途:查詢列值在小值和大值之間,相當于 >=小值 而且 <=大值

注:between后面一定是小值, and后面一定是大值包頭又包尾

-- 查詢english成績大于等于77,且小于等于87的學生 SELECT * FROM student3 WHERE english BETWEEN 77 AND 87; -- 注:反過來寫是不行的,查詢不到任何的記錄 SELECT * FROM student3 WHERE english BETWEEN 87 AND 77;

LIKE關(guān)鍵字

 SELECT 列名 FROM表名 WHERE 列名 LIKE 值;

用途:用于模糊查詢

注:如果沒有使用通配符默認是按等于查詢

MySQL通配符

% 匹配多個字符

_ 匹配一個字符

-- 查詢姓馬的學生 SELECT * FROM student3 WHERE NAME LIKE '馬'; -- 注:沒有任何一個學生的名字叫馬 -- 模糊查詢必須使用通配符 SELECT * FROM student3 WHERE NAME LIKE '馬%'; -- 查詢姓名中包含'德'字的學生 SELECT * FROM student3 WHERE NAME LIKE '%德%'; -- 匹配0~n個字符 -- 查詢姓馬,且姓名有2個字的學生 SELECT * FROM student3 WHERE NAME LIKE '馬_'; -- 下劃線是匹配1個字符 SELECT * FROM student3 WHERE NAME LIKE '馬__'; -- 查詢3個字的學生

查詢?yōu)榭盏牧?/h1>
  • 為空:IS NULL
  • 不為空:IS NOT NULL
  • 注:不要寫成 = NULL,這是查詢不出任何記錄的
 -- 查詢英文成績?yōu)?span>NULL的學生 SELECT * FROM student3 WHERE english = NULL;  -- 查詢不到任何的記錄 SELECT * FROM student3 WHERE english IS NULL;   -- 正確寫法  -- 查詢英語成績不為NULL的學生 SELECT * FROM student3 WHERE english IS NOT NULL;  -- 查詢姓名和英語成績,如果英語為null,則顯示為0分 SELECT NAME, english FROM student3;  -- 使用函數(shù):ifnull(字段名, 默認值) 如果這個字段有值就顯示它原來的值,如果為NULL,就顯示后面的默認值 SELECT NAME 姓名, IFNULL(english,0) 英語 FROM student3

DQL:查詢結(jié)果排序

單列排序

SELECT 列名 FROM 表名 ORDER BY 列名 [ASC/DESC], 列名 [ASC/DESC]; -- ASC是升序 默認就是升序 可以不寫 -- DESC是降序 可以多列一同使用排序
 -- 查詢所有數(shù)據(jù),使用年齡降序排序,沒有排序前默認按添加到數(shù)據(jù)庫中記錄的順序顯示 SELECT * FROM student3 ORDER BY age;  -- 默認是按升序 SELECT * FROM student3 ORDER BY age DESC; 

多列排序

-- 查詢所有年齡大于20歲的學生,在年齡降序排序的基礎(chǔ)上,如果年齡相同再以數(shù)學成績升序排序 SELECT * FROM student3 WHERE age >20 ORDER BY age DESC, math ASC;

MySQL筆記(二)

聚合函數(shù)

概述

所有的關(guān)系型數(shù)據(jù)庫都支持聚合函數(shù),使用聚合函數(shù)查詢是列向查詢,它是對一列的值進行計算,并返回結(jié)果。

注:所有的聚合函數(shù)會忽略空值。

練習

 -- 修改表student3student RENAME TABLE student3 TO student;  SELECT * FROM student;  -- 創(chuàng)建表 CREATE TABLE student(     id INT,     `name` VARCHAR(20),     `math` int,     `chinese` int,     `english` int );  -- 查詢學生總數(shù),星號表示所有的列 SELECT COUNT(*) 總?cè)藬?shù) FROM student; -- 也可以使用COUNT(1),效果等同于COUNT(*) SELECT COUNT(1) 總?cè)藬?shù) FROM student; -- 如果某個字段的所有記錄都不存在NULL值 可以使用COUNT(字段名) SELECT COUNT(id) 總?cè)藬?shù) FROM student;  -- 如果這一列中存在空值,聚合函數(shù)會忽略空值 SELECT COUNT(english) 總?cè)藬?shù) FROM student;  -- 查詢年齡大于40的總數(shù)(可以在聚合函數(shù)中使用條件) SELECT COUNT(*) 總?cè)藬?shù) FROM student WHERE age > 40;   -- 查詢數(shù)學成績的總和,針對一列操作 SELECT SUM(math) 數(shù)學總分 FROM student;  -- 對非數(shù)值類型求和沒有含義 不會報錯但是會返回值 SELECT SUM(`name`) 數(shù)學總分 FROM student;  -- 查詢數(shù)學成績平均分,整數(shù)的平均得到的是小數(shù) SELECT AVG(math) 數(shù)據(jù)平均分 FROM student;  -- 查詢數(shù)學成績最高分 SELECT MAX(math) 最高分 FROM student;  -- 查詢數(shù)學成績最低分 SELECT MIN(math) 最低分 FROM student;

分組查詢

SELECT 列名 FROM 表名 GROUP BY 分組列 HAVING 過濾條件;

用途:

  1. 可以指定列根據(jù)列中的內(nèi)用對數(shù)據(jù)進行分組操作
  2. HAVING可以對分組后的內(nèi)容進行過濾

直接分組

將分組字段結(jié)果中相同內(nèi)容作為一組,如按性別將學生分成2組。返回每組的第一條數(shù)據(jù),所以單獨分組沒什么用處。分組的目的就是為了統(tǒng)計,一般分組會跟聚合函數(shù)一起使用。

 -- 刪除已經(jīng)存在的studentDROP TABLE IF EXISTS student ; -- 創(chuàng)建新的studentCREATE TABLE student(     sid INT PRIMARY KEY,     `name` VARCHAR(20),     `sex` CHAR(1) ); --student表中插入數(shù)據(jù) INSERT INTO student VALUES (1,'小明','男'),(2,'小紅','女'),(3,'小剛','男'); --sex字段對studen分組 返回所有字段的值 SELECT * FROM student GROUP BY sex; 

執(zhí)行結(jié)果

只返回了每組的第一條數(shù)據(jù)

結(jié)合聚合函數(shù)使用分組

-- 刪除已經(jīng)存在的studentDROP TABLE IF EXISTS student ; -- 創(chuàng)建新的studentCREATE TABLE student( sid INT PRIMARY KEY, `name` VARCHAR(20), `sex` CHAR(1) ); --student表中插入數(shù)據(jù) INSERT INTO student VALUES (1,'小明','男'),(2,'小紅','女'),(3,'小剛','男'); --sex字段對studen分組 SELECT sex 性別,COUNT(sex) 人數(shù) FROM student GROUP BY sex;

執(zhí)行結(jié)果

結(jié)合聚合函數(shù)與條件使用

查詢數(shù)學成績大于等于60分的學生,按性別分組,統(tǒng)計每組的人數(shù),只顯示性別人數(shù)大于2的數(shù)據(jù)。

 -- 刪除已經(jīng)存在的student表 DROP TABLE IF EXISTS student ; -- 創(chuàng)建新的student表 CREATE TABLE student(     sid INT PRIMARY KEY,     `name` VARCHAR(20),     `sex` CHAR(1),     `math` INT,     `chinese` INT,     `english` INT ); -- 在student表中插入數(shù)據(jù) INSERT INTO student VALUES (1,'小明','男',56,55,88),(2,'小紅','女',66,78,55),(3,'小剛','男',100,99,98),(4,'小黃','男',60,79,88),(5,'小梅','女',60,79,88),(6,'小麗','女',60,79,88);  -- 查詢數(shù)學成績大于等于60分的學生,按性別分組,統(tǒng)計每組的人數(shù),只顯示性別人數(shù)大于2的數(shù)據(jù)。 SELECT sex 性別 , COUNT(*) FROM student WHERE math >= 60 GROUP BY sex HAVING COUNT(*) > 2;

執(zhí)行結(jié)果

HAVING與WHERE的區(qū)別

DQL:LIMIT分頁操作(重點)

用途:限制從表中返回的查詢記錄,通常稱為分頁的操作

使用場景:比如我們登錄京東,淘寶,返回的商品信息可能有幾萬條,不是一次全部顯示出來。是一頁顯示固定的條數(shù)。

語法:

limit 起始行號(從0開始), 返回的數(shù)據(jù)記錄數(shù); -- 使用方式:放在WHERE后面
 -- 刪除已經(jīng)存在的studentDROP TABLE IF EXISTS student ; -- 創(chuàng)建新的studentCREATE TABLE student(     sid INT PRIMARY KEY,     `name` VARCHAR(20),     `sex` CHAR(1),     `math` INT,     `chinese` INT,     `english` INT ); --student表中插入數(shù)據(jù) INSERT INTO student VALUES  (1,'小明','男',56,55,88), (2,'小紅','女',66,78,55), (3,'小剛','男',100,99,98), (4,'小黃','男',60,79,88), (5,'小梅','女',60,79,88), (6,'小麗','女',60,79,88), (7,'小美','女',60,79,88), (8,'小花','女',60,79,88), (9,'小蕾','女',60,79,88); -- 每頁顯示5-- 第一頁:從第0行開始,顯示5SELECT * FROM student LIMIT 0,5; 

執(zhí)行結(jié)果

-- 第二頁:從第5行開始,顯示5條 SELECT * FROM student LIMIT 5,5;

執(zhí)行結(jié)果

小總結(jié):

SELECT中的關(guān)鍵字順序

 SELECT 字段 FROMWHERE 條件 GROUP BY 分組列 HAVING 過濾條件 ORDER BY 排序列 LIMIT 開始行, 返回行的數(shù)量;

增刪改查關(guān)鍵字總結(jié)

DCL:創(chuàng)建用戶,授權(quán),撤銷權(quán)限(了解,用的時候查就可以)

DCL (Data Control Language):數(shù)據(jù)庫安裝后默認使用的是root用戶就是超級管理員,擁有全部的權(quán)限。一個公司里面的數(shù)據(jù)庫服務(wù)器上面可能同時運行著很多個項目的數(shù)據(jù)庫。所以,我們應(yīng)該可以根據(jù)不同的項目建立不同的用戶,分配不同的權(quán)限來管理和維護數(shù)據(jù)庫。

創(chuàng)建用戶:

CREATE USER '用戶名'@'主機名' IDENTIFIED BY '密碼'; CREATE USER '用戶名'@'%' IDENTIFIED BY '密碼'; -- 在任意主機上登陸 CREATE USER '用戶名'@'主機名'; -- 一些版本的數(shù)據(jù)可可以不設(shè)置密碼,使用用戶名直接登陸

用戶名:登錄用戶的名字

主機名:這個用戶可以在哪臺機器上登錄,如果是本機服務(wù)器,使用localhost如果可以在任何一臺主機上登錄可以使用'%'

注:創(chuàng)建的用戶名都在mysql數(shù)據(jù)庫中的user表中可以查看到,密碼經(jīng)過了加密。

給用戶授權(quán)

創(chuàng)建的新用戶默認是沒有任何權(quán)限的,需要使用root賬戶授權(quán)

 GRANT 權(quán)限 ON 數(shù)據(jù)庫.表名 TO '用戶名'@'主機名';

權(quán)限:操作權(quán)限:CREATE, ALTER, INSERT,DELETE,UPDATE,SELECT等,如果要設(shè)置所有的權(quán)限可以使用ALL

數(shù)據(jù)庫.表名:對哪個數(shù)據(jù)庫的哪個表設(shè)置上面的權(quán)限,可以使用通配符,如果要設(shè)置所有的庫所有的表,可以使用*.*

'用戶名'@'主機名':給哪個用戶設(shè)置權(quán)限,名字必須與創(chuàng)建的時候?qū)懛ㄏ嗤?/span>

GRANT CREATE,ALTER,INSERT,UPDATE,SELECT ON test.* to user1'@'localhost'; GRANT ALL ON *.* TO 'user2'@'%';

取消用戶權(quán)限

 REVOKE 權(quán)限 ON 數(shù)據(jù)庫.表名 FROM '用戶名'@'主機名';

權(quán)限:權(quán)限用戶的操作權(quán)限:CREATE, ALTER, INSERT,DELETE,UPDATE,SELECT等,如果要設(shè)置所有的權(quán)限可以使用ALL

數(shù)據(jù)庫名.表名: 對哪個數(shù)據(jù)庫的哪個表設(shè)置上面的權(quán)限,可以使用通配符,如果要設(shè)置所有的庫所有的表,可以使用*.*

'用戶名'@'主機名':給哪個用戶撤銷權(quán)限,名字必須與創(chuàng)建的時候?qū)懛ㄏ嗤?/span>

DCL:刪除用戶,修改密碼(了解,用的時候查就可以)

刪除用戶

DROP USER '用戶名'@'主機名' -- 用戶名必須與創(chuàng)建的時候相同

修改管理員密碼

這條命令不在MySQL中執(zhí)行,要在系統(tǒng)的CMD中執(zhí)行

安裝目錄下:C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqladmin.exe文件

子用戶修改自己的密碼

 SET PASSWORD=PASSWORD('密碼')

注:用戶登錄后操作,在mysql中已經(jīng)登錄的情況下使用這條命令

數(shù)據(jù)庫備份和還原

備份

備份命令是在系統(tǒng)的CMD中執(zhí)行的不是在MySQL中執(zhí)行的

C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqldump.exe 格式:mysqldump -u用戶名 -p密碼 數(shù)據(jù)庫名>文件名 將指定的數(shù)據(jù)庫備份到一個SQL文件中

還原

注:這個操作需要登錄,它是mysql中命令

 USE 數(shù)據(jù)庫名; SOURCE 文件名;
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
mysql筆記
數(shù)據(jù)庫基礎(chǔ)
SQL數(shù)據(jù)庫基本操作語句(張揚課堂筆記)
mysql不被人知的秘密
Mysql :(一)
mysql 實用操作表屬性 數(shù)據(jù)庫屬性 等
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服