SQL 語法分類:
- DDL 數(shù)據(jù)定義語句
- CREATE DATABASE - 創(chuàng)建數(shù)據(jù)庫
- ALTER DATABASE - 修改數(shù)據(jù)庫
- CREATE TABLE - 創(chuàng)建表
- ALTER TABEL - 修改表舵揭,表更表
- DROP TABLE - 刪除表
- CREATE INDEX - 創(chuàng)建索引(搜索鍵)
- DROP INDEX - 刪除索引
- DML 數(shù)據(jù)操作語句
- SELECT - 從數(shù)據(jù)庫表中獲取數(shù)據(jù)
- UPDATE - 從數(shù)據(jù)庫表中修改數(shù)據(jù)
- DELETE - 從數(shù)據(jù)庫表中刪除某條數(shù)據(jù)
- INSERT INTO - 從數(shù)據(jù)庫表中插入某條數(shù)據(jù)
- DCL 數(shù)據(jù)控制語句 ?授權(quán)/取消授權(quán)
- DQL 數(shù)據(jù)查詢語句 SELECT
WHERE 語句
WHERE 語句 SQL條件語句
操作符 描述 = 等于 <> 不等于 > 大于 < 小于 >= 大于等于 <= 小于等于 BETWEEN 在某個(gè)范圍內(nèi) LIKE 搜索某種模式
AND & OR 語句
AND 和 OR 可在 WHERE 子語句中把兩個(gè)或多個(gè)條件結(jié)合起來蓄喇。
如果第一個(gè)條件和第二個(gè)條件都成立蔚晨,則 AND 運(yùn)算符顯示一條記錄揭绑。
如果第一個(gè)條件和第二個(gè)條件中只要有一個(gè)成立秕衙,則 OR 運(yùn)算符顯示一條記錄限书。
示例:
SELECT * FROM user WHERE age>15 AND age<20; #查詢 user 表中年齡大于15 并且小于 20的數(shù)據(jù)
OR語句與AND 語法一致 - 且滿足一個(gè)條件用OR
ORDER BY
ORDER BY 語句用于根據(jù)指定的列對結(jié)果集進(jìn)行排序戏羽。
ORDER BY 語句默認(rèn)按照升序?qū)τ涗涍M(jìn)行排序婆芦。
如果您希望按照降序?qū)τ涗涍M(jìn)行排序蜂怎,可以使用 DESC 關(guān)鍵字(默認(rèn)ASC)穆刻。
Orders 表 ?
Company orderNumber IBM 3532 W3School 2356 Apple 4698 #ORDER BY 查詢 SELECT Company,orderNumber FROM Orders ORDER BY Company; #根據(jù)字母降序 Apple IBM W3School 展示給我們 SELECT Company,orderNumber FROM Orders ORDER BY Company DESC; #根據(jù)字母升序 W3School IBM Apple 展示給我們
創(chuàng)建一個(gè)庫
CREATE
? CREATE DATABASE "NAME" #創(chuàng)建一個(gè)庫
? DROP DATABASE IF EXISTS "NAME" #如果有這個(gè)庫名字就刪除
? DROP DATABASE 庫名 #刪除一個(gè)數(shù)據(jù)庫
? CREATE DATABAS "NAME" CHARSET=UTF8 #創(chuàng)建一個(gè)庫 UTF8編碼
? 建議: 庫名/表名/列名 全部小寫,只有英文不用其他字符示例: ==>
CREATE DATABASE school CHARSET=UTF8; USE school; CREATE TABLE user( uid INT PRIMARY KEY AUTO_INCREMENT, #主鍵自動增加c uname VARCHAR(16) NOT NULL DEFAULT '', #16個(gè)字符 #NOT NULL DEFAULT 表示必填字段 upwd VARCHAR(32) NOT NULL DEFAULT '', #密碼加密32個(gè)字符 iphone VARCHAR(32) NOT NULL DEFAULT '', #創(chuàng)建手機(jī)號 32個(gè)字符 email VARCHAR(50) NOT NULL DEFAULT '', #電子郵箱 50個(gè)字符 sal DECIMAL(10,2) NOT NULL DEFAULT 0 #貨幣 高精度的浮點(diǎn)數(shù) ); #大型項(xiàng)目 INT 單位為分 # 外鍵 FOREIGN KEY(uid本表) references user(uid外表)
增加操作
INSERT INTO
INSERT INTO 表名(插入對應(yīng)的值) <u>#值跟創(chuàng)建表相互對應(yīng)</u>
INSERT INTO user VALUE (null,'cm',md5('123456'),'13551339644','13551339644@163.com',20000.50)
INSERT INTO 表名(插入的對應(yīng)字段)VALUES(插入相對應(yīng)的值) <u>#值跟對應(yīng)字段相互對應(yīng)</u>
#根據(jù)上面的表創(chuàng)插入一條數(shù)據(jù) INSERT INTO user(uid,uname,upwd,iphone,email,sal) VALUES(null,'lx',md5('123456'),'18523320148','512153241@qq.com',2000.50);
修改操作
UPADATE
UPDATE 表名 SET 對應(yīng)字段 = 新值 WHERE(對應(yīng)條件)
UPDATE user SET sal=200000.00 WHERE uname='lx'
修改某一行若干個(gè)數(shù)據(jù)
UPDATE 表名 SET 對應(yīng)字段 = 新值杠步,對應(yīng)字段 = 新值 WHERE (對應(yīng)條件)
UPDATE user SET iphone="18523320038",sal=500000.00 WHERE uname='lx'
查找操作
SELECT
SELECT (查詢的字段) FROM 表名 WHERE (查詢對應(yīng)的條件)
SELECT * FROM user WHERE uname='lx'; #查找數(shù)據(jù)庫的方式 在實(shí)際操作中禁止用*來代替查找全部 SELECT uid,uname,phone,email,upwd,sal FROM user WHERE iphone='lx';
SELECT DISTINCT 用于返回唯一不同的值氢伟。[^表中有多個(gè)相同,查詢其中唯一不同的值用此語法]
SELECT DISTINCT 列名稱 FROM 表名稱
刪除操作
DELETE
DELETE FROM 表名 WHERE (刪除對應(yīng)的條件)
#插入一條數(shù)據(jù) INSET INFO user (uid,uname,upwd,iphone,email,sal) VALUES(null,'lcm',md5('123456'),'13551339644','13551339644@163.com',20000.50); #刪除一條數(shù)據(jù) DELETE FROM user WHERE uname='lcm' #刪除所有行 DELETE FROM user #或者 DELETE * FROM user
示例
CREATE TABLE emps_task(
eid INT PRIMARY KEY AUTO_INCREMENT,
uid INT,
emp_task INT,
emp_task_money INT,
mon VARCHAR(6),
FOREIGN KEY(uid) references user(uid)
);
INSERT INTO emps_task(eid,uid,emp_task,emp_task_money,mon) VALUES(null,3,12,10000,1);
#mysqli_affected_rows 被影響的條數(shù)
var uname = "or 1=1;delete from mysql.user"; //注入 or/或 and/與
var sql = "SELECT * FROM xz_admin `WHERE uname=$(uname)` and upwd=md5('$upwd')";