一、MySQL 使用
1. 启动 mysql 服务(避免“服务名无效”)
MySQL 安装过程中配置服务名,如 5.7.+ 版本默认为 MySQL57。则 windows 下启动命令为:
>net start MySQL57
2. 停止 mysql 服务
管理员/方式一:>net stop MySQL57
非管理员/方式二:>mysqladmin -uroot shutdown -p1231
3. 登录/退出 mysql
登录:
>mysql -uroot -p -hlocalhost退出:
mysql> exit;
mysql> quit;
mysql> \q;1
| 参数 | 描述 |
|---|---|
| -u | 用户名 |
| -p | 密码 |
| -P | 端口号 |
| -h | 服务器名称 |
| –prompt | 修改提示符 日期\D,数据库\d,服务器\h,用户\u |
4. 其他常用命令
| mysql> 命令 | 描述 |
|---|---|
| USE db_Name; | 打开数据库 |
| SELECT DATABASE(); | 当前数据库 |
| SELECT VERSION(); | 当前服务器版本 |
| SELECT NOW(); | 当前日期时间 |
| SELECT USER(); | 当前用户 |
| SET NAME gbk/utf8; | 修改客户端编码方式 |
| DELIMITER | 修改编辑时结束符/定界符 |
二、数据库
| 数据库操作 | 语法结构 |
|---|---|
| 数据库创建信息 | SHOW CREATE {DATABASES/SCHEMAS} db_name; |
| 数据库列表 | SHOW {DATABASES/SCHEMAS} [LINKE ‘pattern’/WHERE expr]; |
| 创建数据库 | CREQTE {DATABASE/SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name; |
| 修改数据库编码 | ALTER {DATABASE/SCHEMA} [db_name] [DEFAULT] CHARACTER SET [=] chartset_name; |
| 修改数据库名称 | RENAME {DATABASE/SCHEMA} db_name TO new_db_name; |
| 删除数据库 | DROP {DATABASE/SCHEMA} [IF EXISTS] db_name; |
三、数据表
1. 数据表操作
| 数据表操作 | 语法结构 |
|---|---|
| 查看数据表列表 | SHOW TABLES [FROM db_name] [LINK ‘pattern’/WHERE expr]; |
| 查看数据表结构 | SHOW COLUMNS FROM tbl_name; |
| 创建数据表 | CREATE TABLE [IF NOT EXISTS] table_name ( column_name data_type, … ); |
| 修改表名称 | ALTER TABLE tbl_name RENAME [TO/AS] new_name; or RENAME TABLE tbl_name TO new_name [,tbl_name2 TO new_name2…]; |
| 多表连接 | tbl1 {[INNER/CROSS] JOIN/{LEFT/RIGHT} [OUTER] JOIN} tbl2 ON {expr} |
| 单表拟多表连接 | tbl AS s {[INNER/CROSS] JOIN/{LEFT/RIGHT} [OUTER] JOIN} tbl AS p ON {expr} |
2. 数据表列/字段操作
| 数据表列操作 | 语法结构 |
|---|---|
| 查看列 | DESC tbl_name; |
| 插入列 | ALTER TABLE tbl_name ADD COLUMN col_name data_type; |
| 删除列 | ALTER TABLE tbl_name DROP COLUMN col_name; |
| 修改列属性 | ALTER TABLE tbl_name MODIFY col_name data_type; |
| 修改列名 | ALTER TABLE tbl_name CHANGE col_name new_name data_type; |
| 跨表列数据插入 | INSERT tbl1(rol_name) SELECT rol_name2 FROM tbl2 GROUP BY rol_name2; |
| 跨表列数据更新 | UPDATE tbl1 INNER JOIN tbl2 ON {exper} SET tbl1.col1 = tbl2.col2; |
2. 数据表行/记录操作
| 数据表行操作 | 语法结构 |
|---|---|
| 查看行 | SELECT expr,… [ FROM tbl_references [WHERE where_condition]条件查询 [GROUP BY {col_name/position}]分组查询 [HAVING where_condition]分组查询条件折设置 [ORDER BY {col_name/expr/position}[ASC/DESC],…]查询结果排序 [LIMIT{[offset,] row_count/row_conunt OFFSET offset}限制返回结果数量 ]; |
| 插入行 | INSERT [INTO] tbl_name [(col_name,…)] {VALUES/VALUE}({expr/DEFAULT},…),…; or INSERT [INTO] tbl_name SET col_name={expr/DEFAULT},…; or INSERT [INTO] tbl_name [(col_name),…] SELECT…; |
| 更新行 | UPDATE [LOW_PRIORITY] [IGNORE] tbl_reference SET col_name1={expr/DEFAULT}[,… WHERE where_condition]; |
| 删除行 | DELETE FROM tbl_name [WHERE where_condition]; |
4. 数据表属性
| 属性 | 描述 |
|---|---|
| NULL, NOT NULL | 字段记录可空/不可为空 |
| PRIMARY KEY | 主键约束 |
| AUTO_INCREMENT | 自动编号(默认起始值为1,一张表只能有一个字段设置) |
| UNIQUE KEY | 唯一约束(一张表可以有多个字段设置) |
| DEFAULT | 默认值(日期时间:TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP) |
| UNSIGNED | 无符号类型 |
4. 数据表约束
4.1 PRIMARY KEY 主键约束
语法:
| 约束操作 | 具体实现 |
|---|---|
| 添加 | ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY (index_type) (index_col_name,…); |
4.2 FOREIGN KEY 外键约束
描述 :
外键约束,保持数据一致性,完整性。实现一对一或一对多关系
要求 :
a. 父表与子表必需使用相同的存储引擎
b. 数据表的存储引擎只能为InnoDB(配置文件设置)
c. 外键列和参照列必需具有显示的数据类型。其中数值的长度或是否有符号位必需相同;而字符的长度则可以不同
d. 外键列和参照列必修创建索引。如果外键列不存在索引的话,MySQL将自动创建索引
语法:
| 约束操作 | 具体实现 |
|---|---|
| 添加 | ALTER TABLE tbl_name [CONSTRAINT [symbol]] FOREIGN KEY (id) REFERENCES tbl_name2 (id2) [ON DELETE/UPDATE {CASCADE/SET NULL/NO ACTION/RESTRICT}]; |
| 查看约束 | SHOW CREATE TABLE tbl_name; |
| 删除 | ALTER TABLE tbl_name DROP FOREIGN KEY fk_symbol; |
4.3 UNIQUE 唯一约束
语法:
| 约束操作 | 具体实现 |
|---|---|
| 添加 | ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] UNIQUE [INDEX/KEY] [index_type] (index_col_name,…); |
| 查看约束 | SHOW INDEX FROM tbl_name; |
| 删除 | ALTER TABLE tbl_name DROP {INDEX/KEY} index_name; |
4.4 DEFAULT 默认约束
语法:
| 约束操作 | 具体实现 |
|---|---|
| 添加 | ALTER TABLE tbl_name ALTER [COLUMN] col_name {SET DEFAULT literal}; |
| 删除 | ALTER TABLE tbl_name ALTER [COLUMN] col_name {DROP DEFAULT}; |
4.5 NOT NULL 非空约束
MySQL启程学习回忆录1
MySQL启程学习回忆录2
MySQL启程学习回忆录3