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;