数据库语言实践:INDEX, INSERT与SELECT操作详解

0 下载量 169 浏览量 更新于2024-09-04 收藏 129KB PDF 举报
本篇文档主要介绍了数据库语言中的三个关键操作:INDEX、INSERT和SELECT,以及它们在实际应用中的例子。首先,我们来探讨INSERT语句,这是用来向数据库表中添加新数据的关键操作。例如,例3.69演示了如何插入一个新学生记录,包括学号、姓名、性别、所在系和年龄,强调了字段顺序的一致性,尤其是当存在唯一约束(如学号)时,需要确保每个值都是唯一的。在某些情况下,如例3.70,可以省略属性名直接提供值,但数据必须按照表结构的顺序。 接下来,是INDEX的概念。INDEX是数据库管理系统中用于加速查询性能的一种结构,通过创建索引来优化数据访问。创建索引的命令格式为CREATE INDEX,可以选择为一列或多列创建索引,列名之间用逗号分隔,并可以指定索引的排序方式(升序或降序)。如果希望索引的值是唯一的,可以使用UNIQUE关键字。CLUSTERED INDEX和NONCLUSTERED INDEX是两种不同类型的索引,前者会重新组织表数据以匹配索引,而后者则是在表数据旁独立存储索引值。 例3.71展示了如何通过INSERT语句插入一条选课记录,同时提及了外键的概念。在这个场景中,Sno和Cno是SC表的外键,它们引用了Student和Course表中的主键,遵循了参照完整性的规则,即外键的值必须存在于被引用的表中,如果有NULL值,通常意味着关联记录尚未存在。 最后,虽然文档没有直接给出创建索引的示例,但提到了索引对查询效率的影响,特别是对于大型数据集,良好的索引设计能够显著提高数据检索速度。理解并合理使用这些基本操作,对于数据库管理和维护至关重要,是学习数据库系统设计和管理的基础内容。

var fs = require('fs'); var ejs = require('ejs'); var mysql = require('mysql'); var express = require('express'); var bodyParser = require('body-parser'); // 连接mysql数据库 var client = mysql.createConnection({ host: 'localhost', port:"3306", user: 'root', password: 'root123', database: 'my_db_1' }); // //判断是否连接成功 client.connect(function(err){ if(err){ console.log('[query] - :'+err); return; } console.log('[connection connect] Mysql数据库连接成功!'); }); // 解析请求体中的URL的编码数据 var app = express(); app.use(bodyParser.urlencoded({ extended: false })); // app.listen(52273, function () { console.log('服务器运行在 http://127.0.0.1:52273'); }); // app.get('/', function (request, response) { // fs.readFile('book-list.html', 'utf8', function (error, data) { // client.query('SELECT * FROM books', function (error, results) { // response.send(ejs.render(data, { data: results })); }); }); }); // app.get('/delete/:id', function (request, response) { // client.query('DELETE FROM books WHERE id=?', [request.params.id], function () { // response.redirect('/'); }); }); // app.get('/insert', function (request, response) { // fs.readFile('book-insert.html', 'utf8', function (error, data) { // response.send(data); }); }); // app.post('/insert', function (request, response) { // var body = request.body; // client.query('INSERT INTO books (bookname, author, press) VALUES (?, ?, ?)', [ body.bookname, body.author, body.press ], function () { // response.redirect('/'); }); }); // app.get('/edit/:id', function (request, response) { // fs.readFile('book-edit.html', 'utf8', function (error, data) { // client.query('SELECT * FROM books WHERE id = ?', [ request.params.id ], function (error, result) { // response.send(ejs.render(data, { data: result[0] })); }); }); }); // app.post('/edit/:id', function (request, response) { // var body = request.body; // client.query('UPDATE books SET bookname=?, author=?, press=? WHERE id=?', [body.bookname, body.author, body.press, request.params.id], function () { // response.redirect('/'); }); });补全详细注释

2023-06-06 上传

解释一下这段代码:<?xml version = "1.0" encoding = "UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD com.example.Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.demo.mapper.UserMapper"> <resultMap id="result" type="com.example.demo.entity.User"> <result property="userId" column="userId" /> <result property="userDate" column="userDate" /> <result property="userName" column="userName" /> <result property="userAddress" column="userAddress"/> </resultMap> <select id="ListUser" resultMap="result"> SELECT * FROM user </select> <select id="findUserByName" resultMap="result" parameterType="String"> SELECT * FROM user where userName like concat(concat('%',#{userName}),'%') order by userId desc </select> <select id="queryPage" resultMap="result" parameterType="Integer"> select * from user order by userId desc limit #{startRows},5 </select> <select id="getRowCount" resultType="Integer"> select count(*) from user </select> <insert id="insertUser" parameterType="com.example.demo.entity.User"> INSERT INTO user ( userId,userDate,userName,userAddress ) VALUES ( #{userId}, #{userDate, jdbcType=VARCHAR}, #{userName, jdbcType=VARCHAR}, #{userAddress, jdbcType=VARCHAR} ) </insert> <delete id="delete" parameterType="int"> delete from user where userId=#{userId} </delete> <update id="Update" parameterType="com.example.demo.entity.User"> update user set user.userDate=#{userDate},user.userName=#{userName},user.userAddress=# {userAddress} where user.userId=#{userId} </update> </mapper>

2023-07-22 上传