1.mysql启动/停止/重启
win:(管理员模式下)
- 启动:net start mysql
- 停止:net stop mysql
linux
- 启动:service mysqld start
- 停止:service mysqld stop
- 重启:service mysqld restart
2.mysql语句规范
- 关键字和函数名全部大写
- 数据库名称、表名称、字段名称全部小写
- SQL语句必须以分号结尾
3.创建数据表
CREATE TABLE [IF NOT EXISTS] ` table_name ` (
column_name data_type
)ENGINE=InnoDB DEFAULT CHARSET=utf-8
4.查看数据表及结构
- 查看数据表:SHOW TABLES;
- 查看建表语句:SHOW CREATE TABLE table_name \G;
- 查看某张表的结构:DESC tabl_name;
5.修改数据表
- 添加单列:ALTER TABLE table_name ADD [COLUMN] col_name col_definition [FIRST | AFTER col_name];
- 添加多列:ALTER TABLE table_name ADD [COLUMN] (col_name col_definition, col_name col_definition ...);
- 删除多列:ALTER TABLE table_name DROP [COLUMN] col_name;
- 添加主键约束:ALTER TABLE table_name ADD PRIMARY KEY (col_name);
- 删除主键约束:ALTER TABLE table_name DROP PRIMARY KEY;
- 添加唯一约束:ALTER TABLE table_name ADD UNIQUE (col_name);
- 删除唯一约束:ALTER TABLE table_name DROP INDEX col_name;
- 修改列定义:ALTER TABLE table_name MODIFY col_name col_definition [FIRST | AFTER col_name];
- 修改列名称:ALTER TABLE table_name CHANGE old_col_name new_col_name col_definition [FIRST | AFTER col_name];
- 修改数据表名称:ALTER TABLE table_name RENAME new_table_name;
- 增:INSERT [INTO] table_name [(col_name, ...)] VALUES (values, ...);
- 删:DELETE FROM table_name WHERE where_condition;
- 改:UPDATE table_name SET col_name1 = values1 [, col_name2 = values2] WHERE where_codition;
- 查:SELECT select_express
FROM table_references 表名
[WHERE where_condition] 查询条件
[GROUP BY col_name [ASC | DESC]] 分组
[HAVING where_condition] 分组条件
[ORDER BY col_name [ASC | DESC]] 排序条件
[LIMIT offset, length] 限制条件
7.连接
mysql在SELECT语句、多表更新、多表删除语句中支持JOIN操作,使用ON关键字来设定连接条件
语法:table_reference INNER | LEFT | RIGHT JOIN table_reference ON condition_express
- 内连接(INNER JOIN):显示左表和右表符合连接条件的记录
- 左外连接(LEFT JOIN):显示左表的全部记录及右表符合连接条件的记录
- 右外连接(RIGHT JOIN):显示右表的全部记录及左表符合连接条件的记录
8.多表更新
UPDATE table_references SET col_name = values, ...;
table_referecnes 参照上面连接语法
9.运算符与函数
字符函数
- CONCAT():字符连接
- CONCAT_WS():使用指定的分隔符进行字符连接
- FORMAT():数字格式化
- LOWER():转换成小写字母
- UPPER():转换成大写字母
- LEFT():获取左侧字符
- RIGHT():获取右侧字符
- LENGTH():获取字符串长度
- LTRIM():删除前导空格
- RTRIM():删除后续空格
- TRIM():删除前导和后续空格
- SUBSTRING():字符串截取
- [NOT] LIKE:模式匹配
- REPLACE():字符串替换
数值运算符与函数
- CEIL():进一取整
- DIV():整数除法
- FLLOOR():舍一取整
- MOD():取余数(取模)
- POWER():幂运算
- ROUND():四舍五入
- TRUNCATE():数字截取
比较运算符与函数
- [NOT] BETWEEN ... AND ... :[不]在范围之内
- [NOT] IN():[不]在列出值范围内
- IS [NOT] NULL:[不]为空
日期函数
- NOW():当前日期和时间
- CURDATE():当前日期
- CURTIME():当前时间
- DATE_ADD():日期变化
- DATEDIFF():日期差值
- DATE_FORMAT():日期格式化
信息函数
- CONNECTION_ID():连接ID
- DATABASE():当前数据库
- LAST_INSERT_ID():最后插入记录的ID号
- USER():当前用户
- VERSION():版本信息
聚合函数
- AVG():平均值
- COUNT():计数
- MAX():最大值
- MIN():最小值
- SUM():求和
10.存储过程
是SQL语句和控制语句的预编译集合,以一个名词存储并作为一个单元处理
结构
CREATE PROCEDURE sp_name ([proc_parameter]) routine_body
proc_parameter:[IN | OUT | INOUT] param_name type
IN:表示该参数的值必须在调用存储过程时指定
OUT:表示该参数的值可以被存储过程改变,并且可以返回
INOUT:表示该参数在调用时指定,并且可以被改变和返回
调用存储过程:CALL sp_name
11.存储引擎
mysql将数据以不同的技术存储在文件(内存)中,这种技术就称为存储引擎
mysql支持的存储引擎
- MyISAM
- InnoDB
- Memory
- CSV
- Archive
修改存储引擎:ALTER TABLE table_name ENGINE = engine_name;