INSERT 语句:功能,将数据插入到表中,结果,表中数据量增加了,以行为单位,行数增加了
实际功能中: 注册,加入购物车,下订单,上车扫码...
INSERT INTO 表名(列名,列名2,…) VALUES(值1,值2,值3,…); – 值和前面列的数量一样多,列和对应的值的类型要一致
– 如果往表中所有的列都插入数据,可以简写
INSERT INTO 表名 VALUES(值1,值2,值3,…); – 值保证和表中列的数量一样多,并且值的类型要和列的类型匹配
注意:
1、插入的值的类型和列的类型要一致
2、插入的值的数量和列的数据量要一样多
3、凡是含有特殊含有的关键字信息:比如列名,比如 NULL 等等,不要加单引号,加了就变成普通的字符串,失去原含有
但是如果是查询条件中的搜索值,插入语句中的 VALUES 值,凡是字符串,必须加单引号。
---------------------- DELETE 语句
想清楚:1、删除哪个表的数据 ? – 表名
2、删除哪些行的数据? -- 查询条件
SELECT * FROM user_tab WHERE user_name LIKE ‘孙孙12%’;
== 》
DELETE FROM 表名 [WHERE 查询条件];
备注:如果不加查询条件,删除的就是整个表中的数据,工作中,先查询,后删除,并且删除之前要备份。
-------- update 更新修改数据 --------------------------------
想清楚:
1、修改哪个表中的数据? – 》表名
2、修改哪个列的数据?把数据改为什么? – 》列名,新的值
3、修改哪些行?-- 》where 查询条件
– 》 语法
UPDATE 表名 SET 列名1=新的值,列名2=新的值,… WHERE 查询条件;
常见的数据类型:字符串、日期类型、数值类型
CHAR(n) 字符类型,固定长度的字符类型,列存储的字符串的长度是固定的,如果长度不够,
会自动在后面补足空格,最多存放 255 个字符,优势:存储效率高
VARCHAR(n) 字符类型,可变长度的字符类型,最多可以存放 65535 个字符,优势:节省空间
实际中:有一些固定长度的信息存储,建议使用 CHAR 类型,效率高,例如:身份证号,手机号,性别
那些不固定长度的信息存储,建议使用 VARCHAR 类型: 地址,姓名,签名,留言等等
CHAR 类型的字符在检索的的时候要比 VARCHAR 快很多。
时间函数: NOW() – 获取现在的时间
SYSDATE() – 取系统当前的时间
区别: NOW() 在执行的时候获取的是执行开始时取的时间, SYSDATE()在函数执行的时候获取的动态时间值
SELECT NOW(),SYSDATE() FROM DUAL; – 执行过快,看不出区别,让语句执行若干秒,延迟取时间 sleep(n);
数值类型:整型和小数
整型: INT() : 指定的是显示宽度,不是表示存储的大小,默认就是 10
小数:浮点型 FLOAT/DOUBLE (单精度/双精度,精确的程度不一样)
------------------------- 事务 -----------------------------------
事务:一组数据操作语句构成事务,一旦开始执行 DML 语句,事务就会自动打开,后面的数据操作语句都进入这个事务,
在Oracle数据库里,事务是不会自动结束,需要手动结束, COMMIT ; 在提交之前,操作可以回滚。
但是 mysql 中默认事务是自动提交,并且mysql 里面中一个操作数据的语句就构成一个独立的事务,不需要手动结束,
即默认是不可能实现回滚,但是可以进行设置。
事务的四大特点:原子性,一个事务中所有操作语句要么都成功,要么都失败,特别是针对事务执行过程中出现异常,已
执行部分就会回滚到事务开始的状态。回滚 ROLLBACK, 必须是在事务结束之前,即提交 COMMIT 之前操作才有效果。
一致性:同一个事务状态一致,要么都成功,要么都失败
隔离性:Mysql 每个数据操作语句都当成独立的事务
持久性:事务结束提交以后,对数据的修改是永久的
事务主要是影响 DML 语句的执行
/*查看mysql 数据库事务提交方式:
show variables like ‘autocommit’ ; – on 表示自动提交已打开,值1,off 表示自动提交关闭,值 0
set autocommit=0;
*/
保存点: SAVEPOINT 名字
ROLLBACK TO SAVEPOINT s1; – 回滚到了保存点之前
ROLLBACK ;
– 6、最终,一定要进行事务提交,
COMMIT;
------------------------- DDL 语言(了解)--------------------------
DDL :数据库定义语言,操作数据库对象的,比如数据库对象:表,表有行有列,行,就是数据记录;列:属性(字段)
三个语句: CREATE 语句: 创建对象 ,比如,创建表
ALTER 语句:改变修改对象的,比如,修改表
DROP 语句: 删除对象的,比如:删除表,删除用户,删除数据库
工作中:使用情况(开发: DDL 定义数据库 – 》DML 操作数据 --》DQL 查询数据)
(测试: 编写测试计划,方案,用例,做测试准备工作,待代码提交至测试,
执行测试 – 》DQL ((DML)))
– create 语句
创建数据库: CREATE DATABASE 数据库名;
CREATE DATABASE TEST0307;
SHOW DATABASES; – 命令显示数据库情况
USE test0307; – use 数据库名,选择具体的数据库操作,相当于在工具中用鼠标直接选择
– 创建表:
– alter 修改,改变表
– 加列
ALTER TABLE 表名 ADD(列名 数据类型(),
列名2 数据类型(),
…)
ALTER TABLE t112 CHANGE id2 idid22 VARCHAR(20); – 会影响到新增数据以及调用这个表的列的程序代码
– 删除表
DROP TABLE 表名; – 谨慎使用,使用之前必须备份数据
DROP TABLE tt118;
– 删除数据库
DROP DATABASE 数据库名;
约束:用来限制什么样的数据可以进入表中,什么样的数据无法写入,直接影响的就是 DML 语句的执行;
4种常见的约束:非空约束、唯一约束、主键约束、外键约束(完整性约束)
约束一般建议在创建表的时候创建上去,约束都是添加在列上面的。
2、 唯一约束:如果有一列添加了唯一约束,那么这一列如果有值的话,这个值必须唯一,不能和该列其它值重复;
但是这个列可以为空值。
即:这个列可以没有值,为 NULL ,但是如果有值,必须唯一不得重复
3、主键约束:是非空约束和唯一约束的集合,这个列既不能为空,也不能重复
4、外键约束,也叫完整性约束:涉及两个表,其中一个是父表,一个子表:这两个表之间存在继承和从属关系。
如果子表中一个列添加了外键约束,这个列的值必须要在父表中先存在,即子表的数据要在父表中 能找到,数据一般
都是编号,不会将名称作为外键。
语法: FOREIGN KEY(子表的列名) REFERENCES 父表的表名(父表列名)