如今的前端开发不再是以前的切图仔或者是写写静态页面就能胜任的了,如今的工作中也常用到PHP和MYSQL,这就要求我们前端开发也必须熟悉PHP和mMySQL相关内容,这篇博客仅是记录mysql学习课程笔记。
登录 mysql -uroot -p
登录并打开某数据库 mysql -uroot -p -D db_name
常用MySQL的关键字需要大写,库名,表名,字段名需要小写
常用sql语句
SELECT USER();
SELECT VERSION();
SELECT NOW();
SELECT DATABASE();
SHOW WARNINGS; -- 查看上一步产生的警告
-- 注释内容
CREATE DATABASE db_name;
CREATE DATABASE IF NOT EXISTS db_name;
CREATE DATABASE db_name CHARACTER SET 'UTF8';
SHOW CREATE DATABASE db_name;
ALTER DATABASE db_name CHARACTER SET 'UTF8';
SHOW DATABASES;
DROP DATABASE db_name;
DROP DATABASE IF EXISTS db_name;
CREATE TABLE [IF NOT EXISTS] tb_name(
字段名称 字段类型[完整性约束条件],
...
)ENGINE=存储引擎 CHARSET=编码方式
SHOW TABLES;
SHOW FULL TABLES FROM db_name;
SHOW CREATE TABLE tb_name;
DESC tb_name;
DROP TABLE IF EXISTS tb_name;
TRUNCATE tb_name;
INSERT tb_name(id,username ...) VALUES(1,'jesse'...);
SELECT * FROM imooc_user;
ALTER TABLE tb_name
ADD 字段名称 字段属性[约束条件];
ALTER TABLE tb_name
DROP 字段名称;
ALTER TABLE tb_name
ALTER 字段名称 SET DEFAULT 默认值;
ALTER TABLE tb_name
ALTER 字段名称 DROP DEFAULT;
ALTER TABLE tb_name
MODIFY 字段名称 字段类型[字段属性]
ALTER TABLE tb_name
CHANGE 原字段名称 新字段名称 字段类型[字段属性]
ALTER TABLE tb_name
ADD PRIMARY KEY(字段名称);
ALTER TABLE tb_name
DROP PRIMARY KEY;
ALTER TABLE tb_name
ADD UNIQUE KEY|INDEX index_name(字段名称);
ALTER TABLE tb_name
ADD index_name;
ALTER TABLE tb_name RENAME new_tb_name;
RENAME TABLE tb_name TO new_tb_name;
INSERT tb_name(col_name...) VALUES(values...);
INSERT tb_name(col_name...) VALUES(values...),(values...);
UPDATE tb_name SET 字段名称=值,字段名称=值 WHERE 条件
DELETE FROM tb_name WHERE 条件
SELECT * FROM tb_name;
SELECT 字段名称 FROM db_name.tb_name;
SELECT 字段名称 别名 FROM tb_name;
SELECT * FROM user WHERE userDesc<=>NULL;
SELECT * FROM user WHERE userDesc IS [NOT] NULL;
指定范围 BETWEEN ... AND ...
指定集合 IN(...)
匹配字符 LIKE %代表任意长度字符 _代表任意一个字符
配合GROUP_CONCAT()使用
SELECT GROUP_CONCAT(username),age,sex FROM user1 GROUP BY sex;
配合函数使用 MAX() MIN() AVG() SUM()
COUNT()当统计的字段值为null时不计入在内
COUNT(*)会全部计入
配合WITH ROLLUP使用 会在记录末尾添加一条记录,是所有上面记录的总和
HAVING子句对分组结果进行二次筛选
SELECT id,ussename,age FROM user
ORDER BY id DESC,age ASC;
SELECT * FROM user LIMIT 5;
SELECT * FROM user LIMIT 0,5; offset从0开始
SELECT 字段名... FROM tb_name1 INNER JOIN tb_name2 ON 连接条件
SELECT e.id,e.username,e.age,d.depName
FORM emp AS e
INNER JOIN dep AS d
ON d.id = e.depId;
SELECT 字段名... FROM tb_name1
LEFT [OUTER] JOIN tb_name2
ON 条件;
SELECT 字段名... FROM tb_name1
RIGHT [OUTER] JOIN tb_name2
ON 条件;
FOREIGN KEY(字表字段名) REFERENCES 父表(父表主键字段名)
添加外键之前表中数据没有脏值
ALTER TRABLE tb_name
ADD FOREIGN KEY(外键字段) REFERENCES 主表(主键字段);
ALTER TABLE tb_name
DROP FORENGIN KEY fk_name;
ALTER TABLE tb_name
ADD FOREIGN KEY(外键字段) REFERENCES 主表(主键字段);
ON DELETE CASCADE ON UPDATE CASCADE;
SELECT * FROM emp
WHERE depId IN (SELECT id FROM dep);
SELECT * FROM emp
WHERE EXISTS (SELECT depName FROM dep WHERE id=10);
INSERT ... SELECT ...将查询结果插入
CREATE ... SELECT ...将查询结果写入表
INSERT ... SET ... 将查询结果赋值给某字段
原文:https://www.cnblogs.com/jesse131/p/9079306.html