SQL 语法分类:
- DDL 数据定义语句
- CREATE DATABASE - 创建数据库
- ALTER DATABASE - 修改数据库
- CREATE TABLE - 创建表
- ALTER TABEL - 修改表,表更表
- DROP TABLE - 删除表
- CREATE INDEX - 创建索引(搜索键)
- DROP INDEX - 删除索引
- DML 数据操作语句
- SELECT - 从数据库表中获取数据
- UPDATE - 从数据库表中修改数据
- DELETE - 从数据库表中删除某条数据
- INSERT INTO - 从数据库表中插入某条数据
- DCL 数据控制语句 ?授权/取消授权
- DQL 数据查询语句 SELECT
WHERE 语句
WHERE 语句 SQL条件语句
操作符 描述 = 等于 <> 不等于 > 大于 < 小于 >= 大于等于 <= 小于等于 BETWEEN 在某个范围内 LIKE 搜索某种模式
AND & OR 语句
AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。
如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。
如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。
示例:
SELECT * FROM user WHERE age>15 AND age<20; #查询 user 表中年龄大于15 并且小于 20的数据
OR语句与AND 语法一致 - 且满足一个条件用OR
ORDER BY
ORDER BY 语句用于根据指定的列对结果集进行排序。
ORDER BY 语句默认按照升序对记录进行排序。
如果您希望按照降序对记录进行排序,可以使用 DESC 关键字(默认ASC)。
Orders 表 ⬇
Company orderNumber IBM 3532 W3School 2356 Apple 4698 #ORDER BY 查询 SELECT Company,orderNumber FROM Orders ORDER BY Company; #根据字母降序 Apple IBM W3School 展示给我们 SELECT Company,orderNumber FROM Orders ORDER BY Company DESC; #根据字母升序 W3School IBM Apple 展示给我们
创建一个库
CREATE
CREATE DATABASE "NAME" #创建一个库
DROP DATABASE IF EXISTS "NAME" #如果有这个库名字就删除
DROP DATABASE 库名 #删除一个数据库
CREATE DATABAS "NAME" CHARSET=UTF8 #创建一个库 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个字符 #NOT NULL DEFAULT 表示必填字段 upwd VARCHAR(32) NOT NULL DEFAULT '', #密码加密32个字符 iphone VARCHAR(32) NOT NULL DEFAULT '', #创建手机号 32个字符 email VARCHAR(50) NOT NULL DEFAULT '', #电子邮箱 50个字符 sal DECIMAL(10,2) NOT NULL DEFAULT 0 #货币 高精度的浮点数 ); #大型项目 INT 单位为分 # 外键 FOREIGN KEY(uid本表) references user(uid外表)
增加操作
INSERT INTO
INSERT INTO 表名(插入对应的值) <u>#值跟创建表相互对应</u>
INSERT INTO user VALUE (null,'cm',md5('123456'),'13551339644','13551339644@163.com',20000.50)
INSERT INTO 表名(插入的对应字段)VALUES(插入相对应的值) <u>#值跟对应字段相互对应</u>
#根据上面的表创插入一条数据 INSERT INTO user(uid,uname,upwd,iphone,email,sal) VALUES(null,'lx',md5('123456'),'18523320148','512153241@qq.com',2000.50);
修改操作
UPADATE
UPDATE 表名 SET 对应字段 = 新值 WHERE(对应条件)
UPDATE user SET sal=200000.00 WHERE uname='lx'
修改某一行若干个数据
UPDATE 表名 SET 对应字段 = 新值,对应字段 = 新值 WHERE (对应条件)
UPDATE user SET iphone="18523320038",sal=500000.00 WHERE uname='lx'
查找操作
SELECT
SELECT (查询的字段) FROM 表名 WHERE (查询对应的条件)
SELECT * FROM user WHERE uname='lx'; #查找数据库的方式 在实际操作中禁止用*来代替查找全部 SELECT uid,uname,phone,email,upwd,sal FROM user WHERE iphone='lx';
SELECT DISTINCT 用于返回唯一不同的值。[^表中有多个相同,查询其中唯一不同的值用此语法]
SELECT DISTINCT 列名称 FROM 表名称
删除操作
DELETE
DELETE FROM 表名 WHERE (删除对应的条件)
#插入一条数据 INSET INFO user (uid,uname,upwd,iphone,email,sal) VALUES(null,'lcm',md5('123456'),'13551339644','13551339644@163.com',20000.50); #删除一条数据 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 被影响的条数
var uname = "or 1=1;delete from mysql.user"; //注入 or/或 and/与
var sql = "SELECT * FROM xz_admin `WHERE uname=$(uname)` and upwd=md5('$upwd')";