mysql常用一些CRUD的操作
-
DDL操作数据库:CRUD
-
C(Create):创建
-
创建数据库:CREATE DATABASE 数据库名称;
-
创建数据库且判断是否存在再创建:
CREATE DATABASE IF NO EXISTS 数据库名称;
-
创建数据库并指定字符集:
CREATE DATABASE 数据库名 CHARACTER SET 字符集;
-
-
R(Retrieve):查询
-
查询所有数据库的名称:SHOW DATABASES;
-
查询某个数据库的字符集:查询某个数据库的创建语句:
SHOW CREATE DATABASE 数据库名称;
-
-
U(Update):修改/更新
-
修改数据库默认的字符集:
ALTER DATABASE 数据库名 DEFAULT CHARACTER 字符集;
-
-
D(Delete):删除
- 删除数据库:DROP DATABASE 数据库名;
-
-
使用数据库
- 查看正在使用的数据库:SELECT DATABASE();
- 使用/切换数据库:USE 数据库名;
-
操作数据表:CRUD
-
C(Create):创建
-
创建表的格式:
CREATE TABLE 表名 (
字段名 1 字段类型 1,
字段名 2 字段类型 2
);
-
快速创建一个表结构相同的表:
CREATE TABLE 新表名 LIKE 旧表名;
-
-
R(Retrieve):查询
- 查看某个数据库中的所有表:SHOW TABLES;
- 查看表结构:DESC 表名;
- 查看创建表的SQL语句:SHOW CREATE TABLE 表名;
-
U(Updata):修改
- 添加表列ADD:ALTER TABLE 表名 ADD 列名 类型;
- 修改列类型MODIFY:ALTER TABLE 表名 MODIFY 列名 新的数据类型;
- 修改列名CHANGE:ALTER TABLE 表名 CHANGE 旧列名 新列名 类型;
- 修改表名:RENAME TABLE 表名 TO 新表名;
- 修改字符集:ALTER TABLE 表名 CHARACTER SET 字符集;
-
D(Drop):删除
-
删除表
- 直接删除表:DROP TABLE 表名;
- 判断表是否存在再删除:DROP TABLE IF EXISTS 表名;
-
删除列DROP:ALTER TABLE 表名 DROP 列名;
-
-
-
操作表中的数据:CRUD
-
C(Create):表中添加数据用insert关键字
-
插入全部字段:
-
所有字段名全写:
INSERT INTO 表名 (字段名1, 字段名2 ,字段名3…) VALUES (值1, 值2, 值3…)
-
不写字段名:
INSERT INTO 表名 VALUES (值1, 值2, 值3…)
-
-
插入部分数据:INSERT INTO 表名(字段名1, 字段名2, …) VALUES (值1, 值2, …)
-
蠕虫复制:将一张已存在的表中的数据复制到另外一张表中
-
将表1所有的数据复制到表2:
INSERT INTO 表名1 SELECT * FROM 表名2;
-
复制部分数据:
INSERT INTO 表名1(列1, 列2) SELECT 列1, 列2 FROM 表名2;
-
-
insert注意事项:
- 插入的数据应与字段的数据类型相同;
- 数据的大小应在列的规定范围内;
- 在VALUES中列出的数据位置必须与别加入的列的排列位置相对应(value在mysql中不建议使用);
- 字符和日期型数据应包含在单引号中;
- 不指定列或使用null,表示插入空值。
-
-
R(Retrieve):查询表中行和列的数据
-
查询表中所有的行和列的数据:SELECT * FROM 表名;
-
查询指定列的数据:SELECT 字段名1, 字段名2, 字段名3, … FROM 表名;
-
通过指定列的别名进行查询:
-
对列指定别名:SELECT 字段名1 AS 别名, 字段名2 AS 别名 … FROM 表名;
-
对列和表同时指定别名:
SELECT 字段名1 AS 别名, 字段名2 AS 别名 … FROM 表名 AS 表别名;
-
-
查询指定列且结果中不出现重复数据:
SELECT DISTINCT 字段名 FROM 表名;
-
查询结果参与运算
- 某列数据和固定值运算:SELECT 列名1 + 固定值 FROM 表名;
- 某列数据和其他列数据参与运算:SELECT 列名1 + 列名2 FROM 表名;
-
条件查询:SELECT 字段名 FROM 表名 WHERE 条件;
-
-
U(Updata):修改表中数据
- 不带条件修改数据:UPDATA 表名 SET 字段名=值; 修改所有的行
- 带条件修改数据:UPDATA 表名 SET 字段名=值 WHERE 字段名=值;
-
D(Delete):删除表中数据
-
不带条件删除数据:DELETE FROM 表名;
-
带条件删除数据:DELETE FROM 表名 WHERE 字段名=值;
-
使用TRUNCATE删除表中的所有记录:
TRUNCATE TABLE 表名;
truncate相当于删除了表的结构,再创建一张表
-
注意事项
- DOS 命令窗口操作数据乱码问题
- 主要产生原因:可能是客户端编码和服务器的编码不一样
- 解决方案:
- 查看MySQL内部设置的编码:SHOW VARIABLES LIKE ‘CHARACTER%’;
- 修改编码:
- 修改客户端的字符集:SET character_set_client=编码值;
- 修改连接的字符集:SET character_set_connection=编码值;
- 修改查询的结果的字符集:SET character_set_results=编码值;
- 同时设置上述三个编码情况:SET names 编码值;
- 退出DOS命令行就失效了,需要每次做配置。
-