MySQL 基本使用

数据库:

CREATE DATABASE 名字;              //创建数据库

SHOW DATABASES;                //查看所有数据库

SHOW CREATE DATABASE bookG;        //查看创建好的数据库的定义

DROP DATABASE IF EXISTS 名字;         //删除数据库

USE 名字;                     //使用数据库

引擎:

SHOW ENGINES;                      //查看引擎

SHOW VARIABLES LIKE 'storage_engine';     //查看默认引擎

数据表:                   【使用前需要USE 数据库名;】 表名不区分大小写

CREATE TABLE SS(id INT(11),nam VARCHAR(25)salary FLOAT);      //创建数据表

SHOW TABLES;                       //查看数据表

DESC SS;                           //查看表的结构

SHOW COLUMNS FROM 表名 FROM 库名;                       //查看表的结构2

SHOW CREATE TABLE 表名G;              //查看表的结构3

ALTER TABLE 旧名 RENAME 新名;              //修改表名

ALTER TABLE 表名 MODIFY 字段名 数据类型;             //修改字段的数据类型

ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新数据类型;             //修改字段名

ALTER TABLE 表名 ADD 新字段名 数据类型;             //添加字段

ALTER TABLE 表名 ADD 新字段名 数据类型(约束条件) [FIRST | AFTER 已存在字段名]    //添加字段   放到第一个  或者已存在字段名之后

ALTER TABLE xx ADD yy VARCHAR(12) not null;           //添加有完整性约束条件的字段

ALTER TABLE 表名 DROP 字段名;         //删除字段

ALTER TABLE 表名 MODIFY 字段1 数据类型 FIRSE | AFTER 字段2;    //修改字段排列位置   数据类型为字段1的  

ALTER TABLE 表名 ENGINE=更改后的引擎名;   //更改表的存储引擎

   #可以为每一张表选不同的存储引擎  但外键约束的表必须一致

ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名;     //删除表的外键约束

 

#外键约束名,定义表时CONSTRAINT后的参数

DROP TABLE IF EXISTS 1,表2....;      //删除没有关联的数据表

ALTER TABLE 子表 DROP FOREIGN KEY 子表中的外键约束名;     //删除有关联的主表

#无法直接删去父表   1.先删去子,再删父     2.取消外键约束,再删父表

删除

DELETE FROM 表名 WHERE 条件;

DELETE FROM 表名;                    //删除所有记录

TRUNCATE TABLE 表名;                   //直接删除表

 DROP TABLE 表名;                    //删除表

更新

UPDATE 表名

SET 指定更新字段名1=更新值1,指定更新字段名2=更新值2

WHERE  条件;

举例:

插入

INSERT INTO 要插入数据的表名 (要插入数据的哪些列) VALUES (每个列对应插入的数据);

 

上方

id,name,age,info) 即要插入数据的列       可以省略

但是,需要为表的每一个字段指定值 且值的顺序和数据表中字段的定义时顺序相同

 

同时插入多条记录时,会返回一些信息:

将查询结果插入到表中:

INSERT INTO 表名1  (列名2)

SELECT (列名2) FROM 表名2 WHERE (条件)

MYSQL不关心返回的列名

根据列的位置进行插入

第一列对应插入表的第一列……

为表和字段取别名

表名字 AS 表别名

SELECT  *   FROM fruits AS O,sports AS S

WHERE O.FRUIT_NUM > 0 AND S.sport_num >2;

   2.字段

列名 AS 列别名

SELECT O.FRUIT_NUM AS A , S.sport_num  AS B

单表查询

SELECT * FROM 表名;            //查询所有字段

SELECT 列名 FROM 表名;        //查询指定字段          

SELECT 列名1,列名2,。。。。;    //查询多个指定字段

SELECT 列名1,列名2

FROM 表名

WHERE 条件;     //查询指定记录

 

SELECT 列名1,列名2

FROM 表名

WHERE 条件 IN (100200);

               

           //查询满足指定范围内的记录  也可以WHERE 条件 NOT  IN (100200);

 

SELECT 列名1,列名2

FROM 表名

WHERE 条件 BETWEEN 100 AND 200;               //查询满足指定范围内的记录  也可以WHERE 条件 NOT  BETWEEN 100 AND 200;

 

需要使用通配符进行匹配查找,通过创建查找模式对表中的数据进行比较   ----LIKE

  1. LIKE的字符匹配查询

SELECT f_id,f_name

FROM  fruits

WHERE f_name LIKE ‘B%’;      //查找所有以b开头的f_name

                           // % 匹配任意长度的字符,甚至零字符

WHERE f_name LIKE ‘_B’;     //_’ 匹配单个字符

 

  1. 查询空值

空值不同于0,也不同于空字符串

空值一般表示 数据未知 不适用 稍后添加数据

WHERE f_name IS NULL; 

WHERE f_name NOT IS NULL; 

 

  1. AND的多条件查询

WHERE f_name=’xx’ AND price>5;

 

  1. OR

WHERE f_name=’xx’ OR price>5;

                                                      AND的优先级高于OR

  1. 查询结果不重复

SELECT DISTINCT 字段名 FROM 表名;               

 

  1. 对结果排序

SELECT f_name FROM fruits ORDER BY f_name;                   //对指定的列数据排序【字母表顺序】

SELECT f_name FROM fruits ORDER BY f_name,f_price;            //多列

多列排序时:首先排序的第一列必须有相同的列值,才会对第二列排序

如果第一列数据中所有值都是唯一的,将不再对第二列进行排序

SELECT f_name FROM fruits ORDER BY f_name DESCf_price ASC;            //ASC升序,默认    DESC降序

 

原文地址:https://www.cnblogs.com/expedition/p/11187285.html