MYSQL 学习笔记01

SQL 语法分类:

  1. DDL 数据定义语句
    • CREATE DATABASE - 创建数据库
    • ALTER DATABASE - 修改数据库
    • CREATE TABLE - 创建表
    • ALTER TABEL - 修改表,表更表
    • DROP TABLE - 删除表
    • CREATE INDEX - 创建索引(搜索键)
    • DROP INDEX - 删除索引
  2. DML 数据操作语句
    • SELECT - 从数据库表中获取数据
    • UPDATE - 从数据库表中修改数据
    • DELETE - 从数据库表中删除某条数据
    • INSERT INTO - 从数据库表中插入某条数据
  3. DCL 数据控制语句 ?授权/取消授权
  4. 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')";
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容