DML

添加和完整约束

增加: insert into 表名 (字段列明集合) values(值得集合) ;

* 要保证数据的正确性和完整性

完整性约束:

* 主键一条数据在数据库中的唯一标识, 特点: 非空唯一 primary key

* 主键自增长如果主键的是int,那么如果给主键赋值为null , 会自动根据上一条记录的值+1 ; primary key aoto_increment

* 唯一 unique

* 非空 not null

* 外键



外键约束

外键约束: 一张表的主键作为另一张表的外键,就保证数据的完整性

* 注意事项: 主键必须和外键的数据类型一致,名称可以不一致

表和表之间的关系

* 一对一的关系主外键可以在任意一方

* 一对多或者多对一的关系外键添加到多的一方

* 多对多的关系定义中间表,中间表的两个字段都是外键,分别用于关联两个表的主键



删除和修改

删除: delete from 表名 [where 条件] ;

* delete from 表名 ; -- 删除所有的数据逐行删除

* truncate table 表名 ; -- 删除所有的数据(直接把表删除然后在在创建表)

修改: update 表名 set 字段名 = 字段值 , 字段名 = 字段值 , ... [where 条件] ;



案例:

-- 创建数据库

create databases mydb ;

-- 查询所有数据库名称

show databases ;

-- 删除数据库

drop database stu;

-- 选择使用的数据库

use day02;

-- 创建表

create table student(

-- 字段名数据类型

sid INT ,

sname VARCHAR(20),

gender CHAR(1),

score DOUBLE(4,2),

birthday TIMESTAMP

);

-- 查看表名称

show tables ;

-- 删除表

drop table stu;

-- 查看表结构

desc student;

-- 修改表结构

-- 修改之添加列:给stu表添加classname列:

Alter table student add classname vercar(100);

-- 修改之修改列类型:修改stu表的gender列类型为char(2):

ALTER TABLE student MODIFY gender CHAR(2);

-- 修改之修改列名:修改stu表的gender列名为sex:

ALTER TABLE student CHANGE sex gender CHAR(1);

-- 修改之删除列:删除stu表的classname列:

ALTER TABLE student DROP classname;

-- 修改表名称

ALTER TABLE student RENAME TO tb_student;

DESC tb_student;

-- 插入数据

INSERT INTO tb_student(sid,sname,gender,score,birthday) VALUES(1,‘风清扬‘,‘男‘,99.99,‘1998-11-11‘);

INSERT INTO tb_student(sid,sname,gender,score,birthday) VALUES(2,‘岳不群‘,‘女‘,88.99,NULL);

INSERT INTO tb_student(sid,sname) VALUES(3,‘貂蝉‘);

INSERT INTO tb_student VALUES(4,‘吕布‘,‘男‘,88.99,NULL);

-- 删除数据

DELETE FROM tb_student WHERE sname = ‘貂蝉‘;

-- 查询数据

SELECT * FROM tb_student;

-- 清空表中所有记录

TRUNCATE TABLE tb_student;

-- 先删除表

DROP TABLE tb_student;

-- 再创建一张空表

CREATE TABLE tb_student(

-- 字段名数据类型

sid INT ,

sname VARCHAR(20),

gender CHAR(1),

score DOUBLE(4,2),

birthday TIMESTAMP

);

-- 修改数据

UPDATE

tb_student

SET

gender = ‘无‘,

score = 12.88

WHERE

sid = 2;

-- 创建emp表

CREATE TABLE emp(

empno INT, -- 员工编号

ename VARCHAR(50), -- 员工姓名

job VARCHAR(50), -- 员工工种

mgr INT, -- 领导编号

hiredate DATE, -- 入职日期

sal DECIMAL(7,2), -- 工资

comm DECIMAL(7,2), -- 奖金

deptno INT -- 部门编号

) ;

-- 添加数据

INSERT INTO emp VALUES(7369,‘SMITH‘,‘CLERK‘,7902,‘1980-12-17‘,800,NULL,20);

INSERT INTO emp VALUES(7499,‘ALLEN‘,‘SALESMAN‘,7698,‘1981-02-20‘,1600,300,30);

INSERT INTO emp VALUES(7521,‘WARD‘,‘SALESMAN‘,7698,‘1981-02-22‘,1250,500,30);

INSERT INTO emp VALUES(7566,‘JONES‘,‘MANAGER‘,7839,‘1981-04-02‘,2975,NULL,20);

INSERT INTO emp VALUES(7654,‘MARTIN‘,‘SALESMAN‘,7698,‘1981-09-28‘,1250,1400,30);

-- 查询所有列数据

SELECT * FROM emp;

SELECT empno,ename,job FROM emp;

-- 结果集

-- 查询工资是800块的员工信息

SELECT * FROM emp WHERE sal = 800;

-- 查询工资大于等于2500的员工信息

SELECT * FROM emp WHERE sal >= 2500;

-- 查询工资小于等于2500的员工信息

SELECT * FROM emp WHERE sal <= 2500;

-- 查询员工资在1500 到 2500 之间

SELECT * FROM emp WHERE sal >= 1500 AND sal <=2500;

-- 查询员工资在1500 到 2500 之间

SELECT * FROM emp WHERE sal BETWEEN 1500 AND 2500;

-- 查询员工工资是1000 或者2000的人

SELECT * FROM emp WHERE sal = 800 OR sal = 5000;

-- 查询员工工资是1000 或者2000的人

SELECT * FROM emp WHERE sal IN(800,5000);

-- 查询员工工资不是800

SELECT * FROM emp WHERE sal != 800;

SELECT * FROM emp WHERE sal <> 800;

-- 查询有奖金的员工信息

SELECT * FROM emp WHERE comm IS NOT NULL;

-- 查询没有有奖金的员工信息

SELECT * FROM emp WHERE comm IS NULL;

-- 查询姓s的用户

SELECT * FROM emp WHERE ename LIKE ‘s%‘;

-- 查询姓名第三个字符是I的用户

SELECT * FROM emp WHERE ename LIKE ‘__I%‘;

-- 查询名字有五位的用户

SELECT * FROM emp WHERE ename LIKE ‘_____‘;

-- 查询名字包含A的用户

SELECT * FROM emp WHERE ename LIKE ‘%A%‘;

-- 起别名

SELECT ename 姓名,sal AS 工资, comm AS 奖金 FROM emp;

SELECT e.ename,e.job FROM emp e;

-- 计算

SELECT ename , sal , comm , (sal+IFNULL(comm,0)) 月薪 FROM emp;

-- 去除重复记录

SELECT DISTINCT sal FROM emp;



DML

时间: 2024-10-14 05:58:56

DML的相关文章

Oracle SQL语言DML语句与事务_超越OCP精通Oracle视频教程培训28

Oracle SQL语言DML语句与事务_超越OCP精通Oracle视频教程培训28 本课程介绍: Oracle视频教程,风哥本套oracle教程培训是<<Oracle数据库SQL语言实战培训教程>>的第3/5套:Oracle SQL语言DML语句与事务.主要学习Oracle数据库SQL语句INSERT命令,学习使用UPDATE命令,学习使用DELETE命令,学习创建PL/SQL对象,事务概念与控制,锁的检测和锁争用,了解撤销数据. Oracle SQL语言DML语句与事务管理,课

Oracle的基本操作-dml,ddl,dcl

二.SQL语言 SQL  structure query language  结构化查询语言 SQL语句 : DDL语句 DML语句 .DCL语句 DDL--data define language --create.alter.drop           --数据定义语言 DML--data management language --insert.update.delete         --数据操作语言 DCL--data control language  --grant.revok

SQL中的四种语言DDL,DML,DCL,TCL

1.DDL(Data Definition Language)数据库定义语言statements are used to define the database structure or schema. DDL是SQL语言的四大功能之一.用于定义数据库的三级结构,包括外模式.概念模式.内模式及其相互之间的映像,定义数据的完整性.安全控制等约束DDL不需要commit.CREATEALTERDROPTRUNCATECOMMENTRENAME 2.DML(Data Manipulation Lang

杂谈--DML触发器学习

触发器按类型分为三类: 1. DML 触发器,在数据变更时触发: 2. DDL 触发器,在修改数据库级别或实例级别对象时触发: 3. Login 触发器,在用户登录时触发: 最常见的是DML触发器,DML触发器又可以分为两类: INSTEAD OF触发器和AFTER触发器(部分书上有提到FOR触发器,其实就是AFTER 触发器,只是写法不同而已). 从功能来看,INSTEAD OF触发器用来替换实际的数据修改操作,而AFTER触发器用来在实际操作完成后进行后续操作.例如对于DELETE操作,如果

第一讲SQL命令的DDL和DML操作讲解

知识点: 一.sql命令DDL(结构化操作) 二.sql命令DML操作(增删改查) 1.sql命令DDL(结构化操作) 1.1表添加字段: alter table 表名 add 列定义 如: alter table Student add email varchar(128); 1.2 修改字段: alter table 表名 change 旧字段名 新字段名: alter table Student change email StuEmail varchar(256); 1.3删除字段: al

Oracle的闪回技术--闪回错误的DML操作

提交DML操作后,该操作使用的还原段就可以被其它对象使用了,为了保证闪回操作时这些数据仍然被保存在还原段中,可能需要重新设置undo_retention参数,表示一个事务提交后,该事务的数据必须保存在还原段中的时间:但是这也并不能完全保证指定的时间的数据一定能够被恢复,还原表空间没有足够的时间时,仍会覆盖要求保留的磁盘空间. 查看undo_retention的当前值: SQL> show parameter undo_retention NAME TYPE VALUE -------------

使用Trigger审计一张表的DML操作

最近ogg的灾备端复制进程中的一张表老是报错ORA-04031,但是又查不到原因,于是想用审计的方法来看到底这张表是被谁做了DML操作,把数据搞没了.本来想用数据库自带的审计功能参考:http://hbxztc.blog.51cto.com/1587495/1870181 但是需要重启数据库,就放弃了,上网查资料看到有人用触发器来实现这个功能,于是自己也做了尝试. 平台11.2.0.4 [email protected]>select * from v$version; BANNER -----

数据存储——SQLite语句之DML 数据操作语言和内置函数之聚合函数

一.连接查询之内连接 select   a.字段,b.字段   from   表1   a,表2   b    where   a.字段=b.字段  And ... 二.DML 数据操作语言 1.增  insert  into values 1-insert  into 表名  values (跟所有字段一一对应的值的列表) 2-insert  into 表名(字段列表)  values (跟字段列表一一对应的值的列表) 3-insert  into 表名  select  对应的字段列表  f

SQL语句之DML

DML:Database Manipulate Language DML include:select,delete,insert into,update aka == also known as select 执行顺序 start --> [from --> [where] --> [[group by] --> [having]] --> [order by]] --> select --> [limit] --> end select select_l

DML语句更改数据

当我们创建了数据库及储存数据的表后,就需要向表中添加新数据,删除不需要的数据,备份数据.就会用到DML语言来操纵数据. 一:insert 插入数据 1,插入单行数据 insert into 表名 (列表名) values (值):注意这里的插入值“”与null不一样. 2,插入多行数据 insert into 新表名(列表名)select 旧列表名 from 旧表名:注意此时的新表必须存在. 二:update 数据更新 1,更新单列数据 update 表名 set 列名=数值 where 列名2