MySQL的基础语法

MySQL基础语法
DDL定义
 

MySQL的基础语法

文章插图
 
 
创建数据库CREATR DATABASE 数据库名; --直接创建数据库CREATE DATABASE IF NOT EXISTS 数据库名; --判断是否存在并创建CREATE DATABASE 数据库名 CHARACTER SET `GBK`; --创建指定格式数据库 查看数据库SHOW DATABASES; --查看所有数据库SHOW CREATE DATABASE 数据库名; --查看某个库的定义信息SELECT DATABASE(); -- 查看正在使用的数据库Use 数据库名; -- 使用/切换数据库 修改和删除数据库ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 新字符集; --修改数据库字符集DROP DATABASE 数据库名; --删除数据库 创建表CREATE TABLE 表名(字段名 数据类型,字段名 数据类型); -- 创建表CREATE TABLE 表名 LIKE 新表名; -- 快速创建爱你一个表结构相同的表 查看表SHOW TABLES; --查看数据库中所有表DESC 表名; -- 查看表结构SHOW CREATE TABLE 表名; --查看创建表的SQL语句 删除表DROP TABLE 表名; -- 直接删除表DROP TABLE IF EXISTS 表名; -- 判断表是否存在并删除表 修改表结构ALTER TABLE 表名 ADD 字段名 字段类型; --添加列ALTER TABLE 表名 MODIFY 字段名 新的类型; --修改列类型ALTER TABLE 表名 CHANGE 老字段名 新字段名 类型; --修改列名ALTER TABLE 表名 DROP 字段名; --删除列RENAME TABLE 旧表名 TO新表名; --修改表名ALTER TABLE 表名 DEFAULT CHARACTER SET 新字符集; --修改表的字符集 DML插入记录INSERT INTO 表名(字段名1,字段名2...) VALUES (字段值1,字段值2); --插入全部字段省略写法: INSERT INTO 表名 VALUES (字段值1,字段值2);没有添加数据的字段可以使用NULL插入多条数据:INSERT INTO 表名(字段名1,字段名2...) VALUES (字段值1,字段值2),(字段值1,字段值2)...; DML更新表记录UPDATE 表名 SET 字段名=新的值; --不带条件修改数据UPDATE 表名 SET 字段名=新的值 WHERE 条件; --带条件修改数据 DML删除表记录DELETE FROM 表名 WHERE 字段名=值; --带条件删除数据DELETE FROM 表名; --不带条件删除数据,删除所有数据 数据库约束PRIMARY KEY 主键约束 UNIQUE 唯一约束NOT NULL 不为空DEFAULT 默认约束FOREIGH KEY 外键约束ALTER TABLE 表名 ADD PRIMARY KEY(字段名); --已有表添加主键ALTER TABLE 表名 DROP PRIMARY KEY; --删除主键主键自增AUTO_INCREMENT 主键自增(整数类型自动增长)ALTER TABLE 表名 AUTO_INCREMENT=起始值; 修改自增起始值DELETE和TRUNCATE/ 前者只删除表中数据,后者删除数据的同时,重置主键自增的值为1 蠕虫复制CREATE TABLE 表2 LIKE 表1; --创建表2结构和表1结构一样INSERT INTO 表名2 SELECT * FROM 表名1; --表1的数据复制到表2 DQL查询语句语法格式:SELECT 字段 FROM 表名 WHERE 条件; 比较运算符>`大于`<`小于`<=`小于等于`>=`大于等于`=`等于`<>`、`!=`不等于 逻辑运算符AND(&&) 多个条件同时满足OR(||) 多个条件其中一个满足NOT(!) 不满足关键字in:in() in里面每个数据都会作为一次条件,只要满足的就会显示 模糊查询likeLIKE 像 像什么什么一样SELECT * FROM 表名 WHERE 字段名 LIKE ‘通配符字符串’;--满足通配符字符串的数据就会显示MySQL通配符有两个:%:表示任意多个字符_:表示一个字符 DQL查询语句-排序关键字:ORDER BY 字段名 [ASC|DESC]ASC:升序 DESC:降序单列排序:使用字段数据排序SELECT * FROM 表名 ORDER BY 字段名 DESC;组合排序:当字段1数据有相同时,再用字段2数据进行排序SELECT * FROM 表名 WHERE 条件 ORDER BY 字段名1 ASC, 字段名2 ASC; DQL查询语句-聚合函数COUNT: 统计记录数,记录为NULL的不统计SUM: 计算指定列数值的和,如果不是数值类型,那么结果为0MAX: 计算指定列最大值MIN: 计算指定列最小值AVG: 计算指定列平均值聚合函数的使用: 写在SQL语句SELECT后SELECT 聚合函数(字段名) FROM 表名; DQL查询语句-分组分组一般和聚合函数一起使用,单独分组没卵用关键字: GROUP BY 将字段中相同值作为一组,返回第一条数据SELECT * FROM 表名 GROUP BY 字段名;SELECT * FROM 表名 WHERE 条件 GROUP BY 字段名; DQL查询语句-limit语句LIMIT语句格式:SELECT * FROM 表名 WHERE 条件 LIMIT offset, length;offset 指偏移量,可以认为是跳过的记录数量,不写则默认为0length 指需要显示的总记录数使用:SELECT * FROM 表名 LIMIT offset,length; 外键约束新建表时增加外键:CREATE TABLE 表名(字段名 字段类型,字段名 字段类型,-- 外键约束[CONSTRAINT 外键约束名] FOREIGN KEY(外键字段名) REFERENCES 主表名(主键));已有表时增加外键:ALTER TABLE 从表 ADD [CONSTRAINT 外键约束名] FOREIGN KEY(外键字段名)REFERENCES 主表(主键字段名);删除外键:ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名; 外键级联操作级联更新: ON UPDATE CASCADE主表更新时,从表跟着更新级联删除: ON DELETE CASCADE 主表删除时,从表跟着删除 内连接隐式内连接:看不到JOIN关键字,条件使用WHERE指定SELECT 字段 FROM 表1,表2 WHERE 条件;显式内连接:使用INNER JOIN ... ON语句,可以省略INNERSELECT 字段 FROM 左表 


推荐阅读