数据库 基础知识篇(四)DML操作表数据

时间:2021-10-21 18:46:23

   上一篇文章中我们对数据库以及表和列进行了操作,没有看过的或不了解的可以查阅上篇文章

        那么在这篇文章中 我们将会使用sql中的DML数据操作语言对数据库中表的数据进行操作 话不多说 实践出真知。

我们上代码: 

/*
  DML 数据库操作语言
     主要对数据库中表的数据进行操作 增删改
     
  增:插入一条记录
        insert into 表名 列名1,列名2...values(值1,值2....) 
        注意:
           1.列名可以在表中选择一列或几列
           2.后面的值 必须和前面的列一一对应
           3.在sql中 除了int 类型的数据,其他的数据必须用''或者""引起来(推荐使用'') 
           4.如果插入的数据所有字段都有,那么以上(列1 列2.。 ) 可以省略    
  
  删:
           删除表中记录
            delete from 表名  //这个删除表中所有数据都会没有
            delete from 表名 where 条件 //可以指定删除某条记录 由后面的条件决定
    
   
  改:修改表中的信息
         update 表名 set 字段名 = 值; //这个修改是将整个字段名的值全部修改了  
         update 表名 set 字段名=值 where(条件);/这个修改可以选择性修改 
*/

#向student 表中插入一个学生的信息(sid 001 sname:李四  sage:30USE db002;-- 这里我们将数据库修改为上篇文章使用的数据库
ALTER TABLE teacher DROP NAME; -- 删除表中的name列
RENAME  TABLE teacher TO student; -- 修改表名为student
-- 做了前期工作之后 我们开始正式向表中加入数据
# insert into 表名 列名1,列名2...values(值1,值2....)
 INSERT INTO student(sid, sname ,sage)  VALUES('001','李四','30');
 #向表中插入一个学生信息(sid :002 sname:王五 sage:28INSERT INTO student(sid,sname,sage) VALUES('002','王五','28'); 
#4.如果插入的数据所有字段都有,那么以上(列1 列2.。 ) 可以省略  例子如下
INSERT INTO student VALUES('003','赵六','29');   

#delete form 表名  //这个删除表中所有数据都会没有

DELETE FROM student; 
#  delete from 表名 where 条件 //可以指定删除某条记录 由后面的条件决定
DELETE FROM student WHERE sid=003; -- 这里不能使用sid==003或sid.equals(003)  要明白的一点是数据库是不认是java的 

#修改表中的信息  把sage这一列的值设置为 20
         UPDATE student SET sage = 20;

#修改表中数据,将王五的sage这一列的值改为50
    UPDATE student SET sage=50 WHERE sname='王五';

    通过上面的实战我们已经对DML数据库操作语言有了一个详细的了解

            那么接下来我们也许要了解一下表中的细节

                   三个知识点

                              1. 两个约束

                                       主键约束:primary key  被约束的列必须有唯一的值,且不能为空。

                                       自动增长约束:auto_increment  被自动增长的列 ,值可以不用管

                                      我们上实例代码                          

USE db002;
CREATE TABLE teacher(  -- 创建教师表
    `tid` INT PRIMARY KEY AUTO_INCREMENT, -- tid 教师编号 设置自增长 注意自增长只能是对int类型这种能够自增长进行约束
    `tname` VARCHAR(20), -- tname 教师姓名
    `tage`  INT  -- tage 教师年龄
);
#插入数据
INSERT INTO teacher(tname,tage) VALUES ('张三','26' );
INSERT INTO teacher(tname,tage) VALUES ('李四','28' );

 

                              2.一个面试题

                                         删除表中所有数据的两种方式(面试题)

                              delete  form 表名;  //这个是删除表中的所有记录

                              truncate table 表名; //这个是删除表中所有索引,并且重置自动增长为1。 

     我们上实例代码  

                           

#删除表中所有记录(一)
DELETE FROM teacher;-- 这个删除整个表的所有记录
#删除表中所有记录(二)
TRUNCATE TABLE teacher; -- 这个删除把表中所有记索引

 

                              3.乱码问题

                                           在dos创建查询utf8编码的数据库数据可能会出现乱码

                           解决方案:

                                        临时方案:

                                                set   出现乱码的中文字段    设置编码 ;//set name gbk

                                        解决方案二 :

                                                  永久:修改my.ini 的配置文件  (不建议)