MySQL启程学习回忆录1
一、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