数据库的能干什么:
1.持久的存储数据
2.备份和恢复数据
3.快速的存取数据
4.权限控制
三大设计范式
要求数据库表的每一列都是不可分割的原子数据项
非主键列必须依赖于主键列
非主键列必须直接依赖主键列
术语
DB: database 数据库
DBA:database administrator 数据库管理员
DBMS:database management system 数据库管理系统
DBS:database system 数据库系统
常用命令
查看当前数据库字符编码
```mysql
show variables like 'character\_set\_%';
``
启动服务
```cmd
net stop 服务名称
net start 服务名称
创建库
CREATE DATABASE 数据库名;
切换当前库
use 数据库名称;
删除库
drop database <数据库名>;
增加数据CREATE
增加一条数据:
INSERT INTO student ( 字段1, 字段2,字段3,字段4... )
VALUES (值1,值2,值3,值4...);
增加多条数据(用,分隔开即可):
INSERT INTO student ( 字段1, 字段2,字段3,字段4... )
VALUES (值1,值2,值3,值4...),
(值1,值2,值3,值4...);
改 UPDATE
UPDATE student SET `字段`='值' //修改字段的所有值
WHERE id=num; //修改增加条件
删 DELETE
DELETE FROM 表名 //清空
WHERE name='张三211'; //增加条件删除
node js和数据库链接
const http = require("http")
const URL = require("url")
const mysql = require("mysql2")
const queryString = require("querystring")
const server = http.createServer((req,res)=>{
const urlObj = URL.parse(req.url) //将路径解析为一个对象
const pathname = urlObj.pathname
console.log(pathname)
const query = queryString.parse(urlObj.query)
if(pathname == "/register" && req.method == "GET"){
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'root',
database : 'school'
});
connection.connect();
var addSql = 'INSERT INTO user(loginId,loginPwd) VALUES(?,?)';
var addSqlParams = [query.username,query.userpwd];
console.log(query)
//增
connection.query(addSql,addSqlParams,function (err, result) {
if(err){
res.end("0")//插入失败
console.log(err)
return;
}
res.end("1")
});
connection.end();
}
})
server.listen(3000)