玩MySQL的时候总是会发现自己遗忘了一些基本的用法,因此打算复习一下MySQL的基本操作,并进行一些简单的记录,比如对数据的查找、插入、删除、修改操作进行复习并记录。这个笔记不记录理论的东西,就记录基本操作方法。
目录
登录退出
登录
mysql -u 用户名 -p 密码
不过我一般喜欢
mysql -u 用户名 -p
回车后再输入密码
退出
exit
数据库显示、创建、删除、使用
显示所有数据库
注:关键字大不大写也不是很要紧,但大写好看点。
SHOW DATABASES;
创建数据库
CREATE DATABASE [IF NOT EXISTS] 数据库名;
注:[]里的都表示可以不写,这里[]中描述的意思显然是没有就创建
删除数据库
DROP DATABASE [IF EXISTS] 数据库名;
使用数据库
USE 数据库名;
表的显示、查看结构、创建、删除
注意先要USE
一下相关数据库呀。
显示所有表
SHOW TABLES;
查看指定表结构
DESC 表名;
创建表
CREATE TABLE [IF NOT EXISTS] 表名(
列名 数据类型 [约束],
...
列名 数据类型 [约束],
KEY(列名,...,列名)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;#设置引擎和默认字符集,不写也没啥
注:KEY
按照需要自由设置,也可以不写,这是一个比较复杂的东西,花样很多,我也还没有理解透,所以不多写。后面设置设置引擎和默认字符集可以不写,如果有需要就按需要进行设置。
删除表
DROP TABLE [IF EXISTS] 表名;
修改表
ALTER TABLE 表名 ADD | DROP | MODIFY | CHANGE COLUMN 列名 [数据类型] [约束];
- ADD:添加列
- DROP:删除列
- MODIFY:修改列类型或约束
- CHANGE:修改列名
修改表名:
ALTER TABLE 表名 RENAME TO 新表名;
数据查找、插入、删除、修改
查找
注:查找的东西最多,可以延伸的内容也很多,这里就只记录语句
SELECT 查询列表
FROM 表1 [AS] 别名1
INNER|LEFT|RIGHT|CROSS JOIN 表2 [AS] 别名2 #默认INNER
ON 连接条件
WHERE 查询条件 #条件中可以用LIKE模糊查询
GROUP BY 分组列表
HAVING 查询条件
ORDER BY 排序列表 #列名后可指定ASC升序或DESC降序,默认升序
LIMIT 偏置,个数 #偏置可以省略,默认为0,即从0开始数
注意执行的顺序
FROM
—>JOIN
—>ON
—>WHERE
—>GROUP BY
—>HAVING
—>SELECT
—>ORDER BY
—>LIMIT
注意WHERE
在分组前筛选,HAVING
在分组后筛选
注:MySQL不支持全连接
注:还可以用UNION
联合查询,这里没写
插入
INSERT INTO 表名(列名,..,列名) VALUES(值,...,值)
注意这里可以省略(列名,..,列名)
,这样就是默认全部列了
另外还可以:
INSERT INTO 表名 SET 列名=值,...,列名=值
删除
可以使用DELETE
删除指定数据
DELETE FROM 表名 WHERE 条件
也可以使用TRUNCATE
删除全部数据
TRUNCATE TABLE 表名;
二者都是删除表中数据内容而不删除表结构,区别在于:
DELETE
可以删除指定内容,TRUNCATE
全删了TRUNCATE
删除效率比DELETE
高DELETE
不回收高水位,TRUNCATE
回收高水位,除非用reuse storageDELETE
是DML语句,操作完不提交事务可以回滚,TRUNCATE
是DDL语句,操作立即生效,不能回滚
修改
说是修改,其实就是更新(update)
UPDATE 表名 SET 列名=新值, 列名=新值 WHERE 条件
尾声:约束和索引方面的知识我还没有理解透,相关操作就没有写