登录
mysql -uroot -proot -P3306 -h127.0.0.1
退出
quit; exit; \q;
更改提示符
登录前 --prompt \h>
更改提示符
登录后 prompt mysql>
提示符参数
\D 完整日期 \d 当前数据库 \h当前主机 \u当前用户
显示服务器版本
mysql -V select version();
显示警告
SHOW WARNINGS;
显示当前日期
SELECT NOW();
显示当前用户
SELECT USER();
显示当前数据库
SELECT DATABASE();
创建数据库
CREATE DATABASES [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] utf8;
显示数据库
SHOW DATABASES;
显示数据库编码
SHOW CREATE DATABASE db_name;
删除数据库
DROP DATABASE [IF EXISTS] db_name;
修改数据库
ALTER DATABASE [db_name] [DEFAULT] CHARACTER SET [=] charset_name;
打开数据库 USE db_name;
显示数据表 show tables [from db_name];
省略查看当前数据库 from不改变数据库
创建数据表
CREATE TABLE [IF NOT EXISTS] table_name(cloumn_name data_type,.....);
查看表结构 SHOW COLUMNS FROM table_name;
或者desc table_name;
或者详细的SHOW CREATE TABLE table_name;
插入记录 INSERT [INTO] table_name [(column_name,.....)] VALUES(val,.....)[,(val,val2.....)];
省略字段则每个字段都要赋值
插入记录 INSERT [INTO] table_name SET column_name = {expr|DEFAULT},......
可使用子查询 只能插入一条
插入记录 INSERT [INTO] table_name [(column_name,....)] SELECT.....
将查询结果写入数据表
单表更新记录UPDATE [LOW_PRIORITY] [IGNORE] table_name SET col_name1={expr1|DEFAULT},[col_name2=...] [WHERE where_desc]
单表删除记录DELETE FROM tab_name [WHERE where_desc]
省略条件则删除所有的记录
别名查找SELECT id AS myid,name AS myname FROM table_name;
查找记录SELECT * FROM table_name;
分组 GROUP BY column [ASC|DESC]
默认ASC升序
返回数量 LIMIT A,B
从A开始的B条记录 默认A=0 mysql为从0开始和数组下标一样
子查询ANY SOME ALL
添加单列ALTER TABLE table_name ADD [COLUMN] column_name col_definition [FIRST | AFTER clo_name];
添加多列ALTER TABLE table_name ADD [COLUMN] (column_name col_definition,........);
删除单列ALTER TABLE table_name DROP [COLUMN] col_name;
删除多列ALTER TABLE table_name DROP [COLUMN] col_name1,DROP [COLUMN] col_name2;
删除并添加ALTER TABLE table_name DROP [COLUMN] col_name1,ADD[COLUMN] col_name2 col_definition;
添加主键约束ALTER TABLE table_name ADD PRIMARY KEY(col_name);
添加唯一约束ALTER TABLE table_name ADD UNIQUE KEY(col_name);
更改默认约束ALTER TABLE table_name ALTER [COLUMN] col_name {SET DEFAULT zhi |DROP DEFAULT}
删除主键约束ALTER TABLE table_name DROP PRIMARY KEY
删除唯一约束ALTER TABLE table_name DROP {INDEX|KEY} index_name
修改列的定义ALTER TABLE tab_name MODIFY [COLUMN] col_name col_desc [FIRST | AFTER col_name]
修改列的定义名称ALTER TABLE tab_name CHANGE [COLUMN] oldcol_name newcol_name col_desc [FIRST | AFTER col_name]
数据表改名字 ALTER TABLE oldtal_name RENAME [TO|AS] newtal_name;
多张数据表改名字RENAME TABLE oldtal_name1 TO newtal_name1,oldtal_name2 TO newtal_name2;
数据结构定义
NULL
可为空
NOT NULL
不可为空
AUTO_INCREMENT
自动编号 必须与主键组合使用 默认起始值为1增量为1
主键PRIMARY KEY
一张数据表只能有一个主键,主键保证记录的唯一性,主键自动为NOT NULL,不必须与AUTO_INCREMENT一起
唯一约束 UNIQUE KEY
保证记录的唯一性,一张表可有多个 可为空
默认约束 DEFAULT
未赋值时自动赋值默认值,sex ENUM('1', '2', '3') DEFAULT '3'
约束保证数据的完整性和一致性
约束分为表级约束和列级约束
保持数据一致性完整性,实现一对一 一对多
父表和子表(具有外键约束列的表)必须使用相同的储存引擎
(innoDB) 禁止使用临时表
外键列和参照列必须具有相似的数据类型
外键列和参照列必须创建索引,如果外键列不存在索引,mysql自动创建索引
修改id从1自增
ALTER TABLE user AUTO_INCREMENT=1;