前言
- 最近想学学后端,学了一下MVC三层架构,dao层涉及到增删改查sql语句,感觉东西很多,因此放到这里记录一下,里面只有一些基本的,剩下的用到了再补充吧…
tips
- 关系型数据库不同的表通过某一字段相互关联
- redis是非关系型数据管理系统(可以说成是一种高级的关系型数据库,里面包含了一些非结构性数据)
- 如果包含了所有的列,那么就可以把所有的列名省略
- 只包含部分列,则其他值会使用默认值,没有默认值的会置为NULL
- 为数据库设置默认值???
//
INSERT INTO Websites (name, url, alexa, country) VALUES ('百度','https://www.baidu.com/','4','CN');
//为某几列插入多条数据
INSERT INTO Websites (name, url, country)
VALUES ('stackoverflow', 'http://stackoverflow.com/', 'IND'),(,,,);
删除就是delete from … where…
DELETE FROM Websites WHERE name='Facebook' AND country='USA';
- update … set … where …
- 注意!执行没有 WHERE 子句的 UPDATE 要慎重,再慎重。会将 Websites 表中所有数据的 alexa 改为 5000,country 改为 USA。
UPDATE Websites SET alexa='5000', country='USA' WHERE name='菜鸟教程';
//在 MySQL 中可以通过设置 sql_safe_updates 这个自带的参数来解决,当该参数开启的情况下,你必须在update 语句后携带 where 条件,否则就会报错。
- 查应该是最简单的
- SELECT
SELECT name,country FROM Websites;
SELECT * FROM Websites;
//where可以between,>,<,or,and,not,LIKE
SELECT * FROM Websites WHERE country='CN';
SELECT * FROM Websites WHERE (alexa BETWEEN 1 AND 20) AND country NOT IN ('USA', 'IND');
//从 "Websites" 表中选取所有网站,并按照 "alexa" 列降序排序
SELECT * FROM WebsitesORDER BY alexa DESC;
SELECT * FROM Websites ORDER BY country,alexa;
//从 "Websites" 表的 "country" 列中选取唯一不同的值,也就是去掉 "country" 列重复值
SELECT DISTINCT country FROM Websites;
(NOT) BETWEEN 1 AND 5
WHERE level IN (1,3,5)
LIKE '王_'//使用_匹配一个字符,例如会查出王五
//判断某个值为空的数值
WHERE level IS NOT NULL
//空字符串使用=来判断
WHERE level = ''
- LIKE
//选取 name 以字母 "k" 结尾的所有元素 k%以k字开头 %oo% 包含oo
//"%" 符号用于在模式的前后定义通配符
SELECT * FROM Websites WHERE name LIKE '%k';
少了一句:
.statement=connect.prepareStatement(sql)
INSERT INTO Websites (name, url, country) VALUES (?,?,?);