等等,没有人问一下楼主一个前端开发为什么还要去学习SQL?
楼主可是一个要成为全栈的人,哈哈哈,其实全栈什么的还是有点难,楼主挺贪玩的,不过学多点总比学少点好是不,而且最基础的数据库肯定要了解一下,所有带数据的开发都离不开数据库吧,现在主流的SQL系统就是MYSQL,这里楼主也会介绍一下基本的MYSQL操作。
SQL全称
Structured Query Language
SQL数据类型表
查询数据库表
SELECT * FROM 表名
PS: *表示查询表内所有的行列
判断是否连接上数据库
SELECT 1
返回1代表已连接
条件查询数据库表
SELECT * FROM 表名 WHERE 条件(比如score >= 80)
投影查询
SELECT id, score, name FROM 表名
意思就是查询数据库表相对应名字的行
排序查询
从高到低查询
SELECT id, name, gender, score FROM students ORDER BY score;
倒序查询
SELECT id, name, gender, score FROM students ORDER BY score DESC;
先倒序,再gender列排序数据查询
SELECT id, name, gender, score FROM students ORDER BY score DESC, gender;
分页查询
例子:查询第1页
SELECT id, name, gender, score
FROM students
ORDER BY score DESC
LIMIT 3 OFFSET 0;
聚合查询
SELECT COUNT(*) num FROM students;
意思就是查询students这个表的所有数据的数量,并且给这些数量加一个行名num
多表查询
SELECT * FROM students, classes;
同时查询students和classes这两个表
连接查询
这一块我还没弄太懂,好像涉及到交集,并集?
想数据库表中添加数据
INSERT INTO students (class_id, name, gender, score) VALUES
(1, '大宝', 'M', 87),
(2, '二宝', 'M', 81);
SELECT * FROM students;
意思就是在students表中添加两行数据。
更新数据
UPDATE students SET name='大牛', score=66 WHERE id=1;
-- 查询并观察结果:
SELECT * FROM students WHERE id=1;
意思就是把students表里id为1的数据更新为上面设置的数据。
删除数据
DELETE FROM students WHERE id=1;
-- 查询并观察结果:
SELECT * FROM students;
意思就是把students中id为1的数据删除掉
PS:更新数据和删除数据应该小心,免得使得数据丢失。
主流SQL系统-MYSQL
安装设置步骤
1.命令行输入命令mysql -u root -p,提示输入口令。填入MySQL的root口令,如果正确,就连上了MySQL Server,同时提示符变为mysql>。
2.输入exit断开与MySQL Server的连接并返回到命令提示符。
PS:其实MYSQL的运行是分开的,意思就是安装后会有一个MySQL Client客户端和MySQL Server服务,我们操作是在客户端操作。
MYSQL默认端口号3306,地址:127.0.0.1:3306
MYSQL新建库
CREATE DATABASE test;
新建一个叫test的数据库
删除数据库
DROP DATABASE test;
使用数据库
USE test;
当然数据库中不创建是没数据,创建表后,显示数据库的表名
SHOW TABLES;
查看这个表的具体内容
DESC students;(后面的students是你自己新建的表名)
删除表
DROP TABLE students;
修改表
ALTER TABLE students ADD COLUMN birth VARCHAR(10) NOT NULL;
意思就是在students这个表中增加一个birth的数据,类型是VARCHAR(10) NOT NULL
删除表中的某一列
ALTER TABLE students DROP COLUMN birth;
退出数据库或者退出命令行窗口
直接输入exit + 空格
表中插入或替换数据
REPLACE INTO students (id, class_id, name, gender, score) VALUES (1, 1, '小明', 'F', 99);
replace命令会自动判断有没有创建,没创建过就创建,创建过就替换。
插入或更新
INSERT INTO students (id, class_id, name, gender, score) VALUES (1, 1, '小明', 'F', 99) ON DUPLICATE KEY UPDATE name='小明', gender='F', score=99
插入或忽略
INSERT IGNORE INTO students (id, class_id, name, gender, score) VALUES (1, 1, '小明', 'F', 99);
原理同第一个说明
事务
BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;
意思就是在accounts这个表中更新,会同时更新这两条命令,当一条失败,整个事务就会失败,只有两个成功,事务才会成功。
事务还有4个隔离级别,由于目前不准备专精SQL所以我也没太精读,想了解的看最后面我给的教程地址。
想要更加仔细学习的可以去廖雪峰大佬的SQL教程看看。