PROFESSOR: In this section, we're going to be talking about updating data, deleting data, and we're going to learn a few new commands and functions within Neo4j. In this first section, we'll be talking about updating existing nodes and relationships, using new keywords to find data, deleting nodes, detaching relationships, and detaching and deleting nodes. In this first video, we'll go over some of the capabilities of the MERGE statement in preparation of the rest of the video. And then we'll look at the commands of MERGE, the conditions that happen when you create a new node, as well as the conditions that happen when you match an existing node. We'll also use MERGE where we could use MATCH and SET to change attributes. To review, we have a basic data model set up with actors and movies. Our goal was to solve the six degrees of Kevin Bacon problem. This first MERGE statement will find an actor with the ID1 and will show its information. In the Neo4j web browser, we can type merge parentheses lowercase A as in Alias, actor as the label. We can specify the ID of 1 to filter, and we can return a. When we execute this statement, we should receive one node representing Kevin Bacon. We can look in the rows, the texts to show more raw results. We can show all the attributes for this Kevin Bacon actor. We can also use MERGE to create new nodes. Here we'll create a new actor node with the ID of 99 and we'll return it. Again, we'll type merge, a, an Alias actor, ID of 99, and will return a. We know this data doesn't exist since we only set up-- we know this data doesn't exist because we only set up actors 1 through 7 or so. So when we execute this, it will create a new node with no attributes, oops, because we only supplied the ID parameter or the ID attribute in the MERGE statement. What we should have done to create a new actor node with more attributes is specify those attributes within the MERGE statement. Here we're going to make an actor with the ID of 99 and the name of George George. When we execute that Cipher statement, we'll see the new actor created with the ID of 99. Now the problem is we ran the merge twice with an ID of 99. So if we run it again without the name, this should match on all nodes with the ID of 99, and in this case, we will get our two actor nodes. The MERGE statement can also act like an insert or update statement or construct within traditional database systems. Using the MERGE statement, you can create a condition called ON CREATE and you can execute or update specific values. You can also set the condition for ON MATCH where you can do something else. In this case, we'll create a new actor with the ID of 98. When it's created, we'll set the name to Mark Hamill and we'll add a counter field. We haven't done this yet, but we'll add a counter field of 0. If we rerun this MERGE statement and the condition of ID 99 is already met, we'll execute the statements ON MATCH section where we'll set the counter to the counter plus 1, effectively incrementing the counter every time we merge on this node. Let's try it out. You'll see here we can type this MERGE statement, merge, actor ID 98. ON CREATE, we'll set the name to Mark Hamill with a counter of 0. ON MATCH, we'll set the counter to counter plus 1 and we'll return the actor node. Here we'll execute it and we should see our new node. If we look at the raw results we'll see a counter of 0. So using the browser. We can click on the Cipher statement again. Press it again, our counter will increment. And every time we execute this since we're matching on the ID of 98, our counter increments. So this shows the two conditions we have used in the MERGE statement ON CREATE and ON MATCH.