DML作用:
用于向数据库表中插入、删除、修改数据
明确:
DML是针对数据库中表的数据操作
DML常用的关键字:
insert(添加)
update(修改)
delete(删除)
1.insert:
插入数据语法:
insert into table_name[(column[,column...])]VALUES value[,value....]);
说明:
插入的数据应与字段的数据类型相同,数据的大小在列的规定的范围内
例如:
不能讲一个长度为80的字符串加到长度为40的列中
注意:
在values里列出的数据位置必须和被加入的列的排列位置相对应
,字符或者字符串数据使用单引号 如:‘test’
日期、时间也用单引号 如:日期格式:'yyyy-MM-dd'
插入空值:null null和‘’区别:
null:表示空值
‘’ :表示空字符和空字符串
例如:
使用insert插入数据
insert into table_name values(1,'aas','1999-10-10');//格式错误
insert into Table_name(id,userName,Gender)Values(1,‘aaa’,'ann');//可以选择性插入,必须所有的字段都有值
字符集问题:
我们使用cmd命令是GBK的字符集(而且修改不了),而数据库中表的字符集是utf-8,会造成存储失败
在MYSQL中一共有六个地方使用字符集:
1.client:
表示客户端使用的字符集
2.connection:
表示连接数据库字符集设置类型,如果程序没有指明连接数据库时使用的字符集。类型就会按照服务器端默认的字符集设置
3,database:
表示数据库服务器中某个库的使用的字符集设定,如果建库的时候没有指明,将使用服务器安装时指定的字符集设置
4.server:
表示在服务器安装时指定的默认字符集设定
5.results:
表示数据库客户端返回时使用的字符集设定
如果没有指明,使用服务器默认的字符集
6.system:
表示数据库系统使用的字符集的设定
解决问题:
针对上述情况,需要修改客户端的字符集,告诉MySQL,我们插入的中文时使用GBK编码的,由MySQL为我们转成utf-8
set character_set_client=gbk;
将结果集用GBK编码
set character_set_results=gbk;
2.update
更新的语法:
update table_name set col_name1=expr1[,col_name2=expr2.....][where where_definition]
说明:
update语法可以用新值更新原来表中各行各列的值
set子句:指示需要修改的地方(包含列和值)
where子句:指定更新哪些行
如果没有指定where子句,默认更新所有的行
练习:
将员工的薪水修改为5000;
update table_name set salary=5000;
将姓名为张三的员工薪水改为5000;
update table_name set salary=5000 where userName='张三';
3.delete:
删除数据的语法:
delete from table_name[where where_definition]
摧毁表格语法:
truncate table table_name;
说明:
如果不使用where子句,将删除表中所有数据
delete语句不能删除某一列的值(可使用update),每一次都是删除一行记录,使用delete时只删除表的内容,并不删除表
如果要删除表使用drop table语句
从一个表中删除记录引起其他表的参照完整性的问题,在修改数据库数据时,记住这个潜在的问题
注意:
表中删除数据:
delete是逐行删除
truncate:整个摧毁,在重新构建表的结构
如:
删除名字为张三的记录:
delete from table_name where username="张三"
删除表中所有的数据
delete from table_name;
使用truncate删除表中的记录:
truncate table table_name