mysql常用命令
命令 | 说明 |
mysql -uroot -p | 登录数据库。 -u后边是用户名 -p后面是密码 |
show now(); | 显示时间 |
quit 或 exit 或ctrl+d | 退出数据库 |
数据库登陆后的操作语句
命令 | 说明 |
show databases; | 查看所有数据库 |
create database数据库名 charset=utf8; | 创建数据库 |
use 数据库名; | 使用数据库名 |
drop database; | 删除数据库 |
表结构操作的sql语句
命令 | 作用 |
show tables | 查看数据库中所有的表 |
create table 表名(字段名称 数据类型 可选的约束条件) 即 create table students(height decimal(5,2); | 创建表 |
alter table 表名 add 列名 类型 约束 ; 即 alter table students add birthday datetime; | 修改表-添加字段 |
alter table 表明 modify 列名 类型 约束 ; | 修改表-修改字段类型 modify:只能修改字段类型或者约束,不能修改字段名 |
alter table 表名 change 原名 新名 类型及约束; | 修改表-修改字段名和字段类型 change:既能对字段重命名又能修改字段类型还能修改约束 |
alter table 表名 add 字段名 类型 | 插入字段 |
alter table 表名 drop 列名 ; | 修改表-删除字段 |
show create database 数据库名; | 查看创库sql语句 |
drop table 表名; | 删除表 |
source xxx.sql; | 批量导入数据 |
表数据操作的SQL语句
命令 | 作用 |
select * from 表名; | 查询所有列 |
select 列1,列2,....from表名 | 查询指定列 |
insert into 表名 values (...) | 添加数据 全列插入:值的顺序与表结构字段的顺序完全一一对应 |
inser into 表名(列1,...)values(值1,...) | 部分列插入:值的顺序与给出的列顺序对应 |
insert into 表名 values (...),(....)....; | 全列多行插入 |
insert into 表名 (列1,..)values(值1,...),(值1,...)...; | 部分列多行插入 |
update 表名 set 列1=值1 ,列2=值2...while 条件 | 修改数据 |
delete from 表名 where 条件 | 删除数据(物理删除,删除不可以恢复) |
ater table 表名 add 添加一个字段 bit default 0 | 添加删除表示字段 ,0表示未删除 1表示删除 dit 是2进制数据 default 默认为0 |
update 表名 set 字段 =1 where id =0 | 逻辑删除数据 |
- 主键列是自动增长,但是在全列插入时需要占位,通常使用空值(0或者null或者default)
- 在全列插入时,如果字段列有默认值可以使用 default 来占位,插入后的数据就是之前设置的默认值
- 逻辑删除,本质就是修改操作
mysql高级使用
命令 | 说明 | 格式 |
insert into .....select...... | 插入到指定表中,也就是表复制 | 表复制 insert into ...select ... sql语句 |
update | 连接更新表中数据 | |
create table ....select | 创建并给字段插入数据 | |
alter table | 修改表结构多个修改字段之间使用逗号分割 |
忽略外键
先取消主外键关系验证:
SET FOREIGN_KEY_CHECKS = 0;
然后删除需要删除的数据
最后恢复:SET FOREIGN_KEY_CHECKS = 1;