希望便于理解与查找, 如有错误,还望指正
文章目录
操作 数据库命令
使用数据库
use 数据库名;
C(create)创建
create database 数据库名;
create database if not exists 数据库名;
create database 数据库名 character set 字符集名;
R(retrieve)查询
-- 查询所有数据库
show databases;
-- 查询创建数据库的MySQL语句
show create database 数据库名;
-- 查询正在使用的数据库
select database();
D (delete)删除
drop database 数据库名;
drop database if exists 数据库名
U(update)修改
-- 修改数据库字符集
alter database 数据库名 character set 字符集名;
操作 表命令
C(create)创建
create table 表名(
列名1 数据类型1,
列名2 数据类型2,
···
列名n 数据类型n
);
-- 复制表
create table 新表名 like 表名;
R(retrieve)查询
-- 查询所有表名称
show tables ;
-- 查询表结构(定义)
-- 第一种
desc 表名 ; -- desc ==> [describe]
SHOW COLUMNS FROM 表名;
-- 查询创建表的MySQL语句
show create table 表名 \G; -- \G :使记录竖着排列
D(delete)删除
drop table 表名
drop table if exists 表名
U(update)修改
-- 修改表名
alter table 表名 rename [to] 新表名 ;
-- 修改表字符集
alter table 表名 character set 字符集名称 ;
-- 添加一列
alter table 表名 add 列名 数据类型;
-- 修改列名和类型
alter table 表名 change 列名 新列名 新数据类型 ;
-- 修改类型
alter table 表名 modify 列名 新数据类型;
-- 修改列(主键)自动增长
alter table 表名 modify 列名 int primary key auto_increment
-- 删除列
alter table 表名 drop 列名;
-- 修改字段排列顺序 [放到最前面]/[放在列名x之后]
-- 上面几个alter命令之后的
( add / change / modify)...的 末尾添加 first ;
( add / change / modify)...的 末尾添加 after 列名x;
-- 如下面例子
-- alter table 表名 modify 列名 新数据类型 first;
操作 表中数据命令
添加数据
-- 列名与值一一对应
insert into 表名(列名1,列名2,···,列名n) values(值1,值2,···,值n);
insert into 表名(列名1,列名2,···,列名n) values(v1,v2...vn),(v1,v2...vn)...(v1,v2...vn);
-- 书写所有列对应的值,省去列名
insert into 表名 values(值1,值2,···,值n);
insert into 表名 values(v1,v2...vn),(v1,v2...vn)...(v1,v2...vn);
-- 插入检索的数据 (保证主键 值 不重复)
insert into A (列1,列2...列n)
select 列1,列2...列n
from B;
-- 将B表中的数据 导入 A表
-- select中的第一个列 ,填充A表中的第一个列 ....
删除数据
-- 可用于特定行 或 所有行
delete from 表名
[where 条件]; -- 注意条件
-- 删除表所有记录
delete from 表名 ;
-- 先删除表,在创建相同空表
truncate table 表名;
修改数据
-- 可用于特定行 或 所有行
update 表名
set 列名1 = 值1 ,
···,
列名n = 值n
[where 条件]; -- 注意条件 , 无条件时,更改所有行
查询记录
select * from 表名 ;
-- 查询不重复记录
select distinct 列名 from 表名;
排序
-- 排序方式 : desc 降序 ; asc 升序(默认),可以多个字段进行排序
select * from 表名 order by 列名 排序方式;
-- 排序后, 选择显示能够显示的前n行 ; 选择从第行n1开始(行从0开始数),共显示n2行
select * from 表名 order by 列名[desc|asc] limit n ;
select * from 表名 order by 列名[desc|asc] limit n1 , n2;
-- 选择 共显示n1行,从行n2开始(行数从0开始)
select * from 表名 limit n1 offset n2;
限制显示
-- 选择显示能够显示的前n行 ;
select * from 表名 limit n ;
-- 选择从第行n1开始(行从0开始数),共显示n2行
select * from 表名 limit n1 , n2;
-- 选择 共显示n1行,从行n2开始(行数从0开始)
select * from 表名 limit n1 offset n2;