| 1 | This Course Was Just Updated! | 03:09 |
| 2 | Course Intro | 01:09 |
| 3 | About Me | 01:26 |
| 4 | Getting The Course Code | 01:41 |
| 5 | First 5 Minutes of SQL | 08:24 |
| 6 | Section Introduction | 01:03 |
| 7 | What Is A Database? | 07:17 |
| 8 | SQL vs. MySQL | 05:51 |
| 9 | Installation: START HERE! | 05:18 |
| 10 | Installation: Windows Instructions | 09:14 |
| 11 | Installation: Mac Instructions | 11:35 |
| 12 | Section Introduction | 01:10 |
| 13 | Showing Databases | 04:16 |
| 14 | Creating Databases | 04:56 |
| 15 | Dropping and Using Databases | 05:33 |
| 16 | Introducing Tables | 05:19 |
| 17 | Data Types: The Basics | 07:39 |
| 18 | Basic Datatypes Challenge | 02:36 |
| 19 | Creating Tables | 04:58 |
| 20 | How Do We Know It Worked? | 04:34 |
| 21 | Dropping Tables | 02:11 |
| 22 | Tables Basics Activity | 02:37 |
| 23 | MySQL Comments | 03:13 |
| 24 | Section Introduction | 01:41 |
| 25 | INSERT: The Basics | 03:45 |
| 26 | A Quick Preview of SELECT | 01:45 |
| 27 | Multi-inserts | 04:49 |
| 28 | INSERT Exercise | 05:28 |
| 29 | Working With NOT NULL | 05:41 |
| 30 | Sidenote: Quotes In MySQL | 04:14 |
| 31 | Adding DEFAULT Values | 06:32 |
| 32 | Introducing Primary Keys | 04:58 |
| 33 | Working With AUTO_INCREMENT | 07:14 |
| 34 | Create Table/ Insert Exercise | 07:20 |
| 35 | Section Introduction | 01:31 |
| 36 | Introducing CRUD | 01:52 |
| 37 | Getting Our New "Dataset" | 01:51 |
| 38 | Officially Introducing SELECT | 03:14 |
| 39 | The WHERE clause | 03:33 |
| 40 | Rapid Fire Exercises | 01:26 |
| 41 | Rapid Fire Exercises SOLUTION | 02:56 |
| 42 | Aliases | 02:14 |
| 43 | Using UPDATE | 05:25 |
| 44 | A Quick Rule Of Thumb | 01:45 |
| 45 | UPDATE Exercise | 01:05 |
| 46 | UPDATE Exercise SOLUTION | 03:03 |
| 47 | Introducing DELETE | 02:38 |
| 48 | DELETE Exercise | 00:59 |
| 49 | DELETE Exercise SOLUTION | 02:16 |
| 50 | Section Introduction | 01:53 |
| 51 | Introducing the CRUD Challenge | 05:12 |
| 52 | CRUD Challenge Solution: Creating | 08:09 |
| 53 | CRUD Challenge Solution: Reading | 01:43 |
| 54 | CRUD Challenge Solution: Updating | 03:25 |
| 55 | CRUD Challenge Solution: Deleting | 02:51 |
| 56 | Section Introduction | 02:05 |
| 57 | The World Of String Functions | 01:53 |
| 58 | Loading Our Books Data | 05:26 |
| 59 | CONCAT | 08:51 |
| 60 | SUBSTRING | 07:32 |
| 61 | Combining String Functions | 06:50 |
| 62 | Sidenote: SQL Formatting | 04:27 |
| 63 | REPLACE | 05:44 |
| 64 | REVERSE | 03:31 |
| 65 | CHAR_LENGTH | 02:51 |
| 66 | UPPER & LOWER | 03:49 |
| 67 | Other String Functions | 06:22 |
| 68 | String Functions Exercise | 03:44 |
| 69 | String Functions Exerise SOLUTION | 11:33 |
| 70 | Section Introduction | 00:36 |
| 71 | Adding Some New Books | 01:27 |
| 72 | DISTINCT | 06:13 |
| 73 | ORDER BY | 06:38 |
| 74 | More On ORDER BY | 06:20 |
| 75 | LIMIT | 05:40 |
| 76 | LIKE | 07:15 |
| 77 | Escaping Wildcards | 02:04 |
| 78 | Refining Selections Exercise | 03:06 |
| 79 | Refining Selections Exercise SOLUTION | 14:41 |
| 80 | Section Introduction | 03:57 |
| 81 | Count Basics | 07:34 |
| 82 | GROUP BY | 10:12 |
| 83 | MIN and MAX Basics | 03:46 |
| 84 | Subqueries | 06:27 |
| 85 | Grouping By Multiple Columns | 04:48 |
| 86 | MIN and MAX With GROUP BY | 05:51 |
| 87 | SUM | 03:46 |
| 88 | AVG | 02:24 |
| 89 | Aggregate Functions Docs | 01:18 |
| 90 | Agg Functions Exercise | 02:52 |
| 91 | Agg Functions Exercise SOLUTION | 12:36 |
| 92 | Section Introduction | 01:57 |
| 93 | Surveying Other Data Types | 02:53 |
| 94 | CHAR vs. VARCHAR | 12:07 |
| 95 | INT, TINYINT, BIGINT, etc. | 05:03 |
| 96 | DECIMAL | 06:56 |
| 97 | FLOAT & DOUBLE | 05:32 |
| 98 | DATE and TIME | 04:38 |
| 99 | Working With Dates | 07:40 |
| 100 | CURDATE, CURTIME, & NOW | 04:16 |
| 101 | Date Functions | 06:04 |
| 102 | Time Functions | 02:04 |
| 103 | Formatting Dates | 09:14 |
| 104 | Date Math | 10:43 |
| 105 | TIMESTAMPS | 03:29 |
| 106 | DEFAULT & ON UPDATE TIMESTAMPS | 06:59 |
| 107 | Data Types Exercise | 03:37 |
| 108 | Data Types Exercise SOLUTION | 13:17 |
| 109 | Section Introduction | 02:45 |
| 110 | Not Equal | 02:57 |
| 111 | NOT LIKE | 03:22 |
| 112 | Greater Than | 03:57 |
| 113 | Less Than Or Equal To | 02:58 |
| 114 | Logical AND | 08:54 |
| 115 | Logical OR | 05:39 |
| 116 | Between | 04:48 |
| 117 | Comparing Dates | 08:16 |
| 118 | The IN Operator | 08:30 |
| 119 | CASE | 08:48 |
| 120 | IS NULL | 02:04 |
| 121 | Exercise | 03:26 |
| 122 | Exercise SOLUTION | 15:23 |
| 123 | UNIQUE Constraint | 03:45 |
| 124 | CHECK Constraints | 05:00 |
| 125 | Named Constraints | 04:14 |
| 126 | Multiple Column Constraints | 05:21 |
| 127 | ALTER TABLE: Adding Columns | 05:39 |
| 128 | ALTER TABLE: Dropping Columns | 01:55 |
| 129 | ALTER TABLE: Renaming | 03:44 |
| 130 | ALTER TABLE: Modifying Columns | 03:56 |
| 131 | ALTER TABLE: Constraints | 04:13 |
| 132 | Section Introduction | 01:58 |
| 133 | Data is Messy | 10:29 |
| 134 | Relationships Basics | 04:38 |
| 135 | One to Many Relationship | 12:34 |
| 136 | Working with FOREIGN KEY | 11:08 |
| 137 | Cross Joins | 08:00 |
| 138 | Inner Joins | 08:53 |
| 139 | Inner Joins With Group By | 04:54 |
| 140 | Left Join | 07:06 |
| 141 | Left Join With Group By | 03:36 |
| 142 | Right Join | 04:29 |
| 143 | On Delete Cascade | 05:37 |
| 144 | Joins Exercise | 03:02 |
| 145 | Joins Exercise SOLUTION | 10:43 |
| 146 | Section Introduction | 01:55 |
| 147 | Many to Many Basics | 10:49 |
| 148 | Creating Our Many To Many Tables | 06:44 |
| 149 | TV Series Challenge #1 | 03:36 |
| 150 | TV Series Challenge #2 | 03:25 |
| 151 | TV Series Challenge #3 | 03:39 |
| 152 | TV Series Challenge #4 | 03:35 |
| 153 | TV Series Challenge #5 | 02:26 |
| 154 | TV Series Challenge #6 | 09:11 |
| 155 | TV Series Challenge #7 | 05:28 |
| 156 | Introducing Views | 06:32 |
| 157 | Updateable Views | 05:43 |
| 158 | Replacing/Altering Views | 03:27 |
| 159 | HAVING clause | 04:29 |
| 160 | WITH ROLLUP | 08:19 |
| 161 | SQL Modes Basics | 05:52 |
| 162 | STRICT_TRANS_TABLES | 04:26 |
| 163 | More Modes | 09:50 |
| 164 | Introducing Window Functions | 06:29 |
| 165 | Using OVER() | 08:16 |
| 166 | PARTITION BY | 06:54 |
| 167 | ORDER BY with Windows | 06:42 |
| 168 | RANK() | 05:54 |
| 169 | DENSE_RANK, & ROW_NUMBER() | 05:15 |
| 170 | NTILE() | 03:37 |
| 171 | FIRST_VALUE | 04:06 |
| 172 | LEAD and LAG | 05:52 |
| 173 | Section Introduction | 01:20 |
| 174 | IMPORTANT NOTE ABOUT THIS SECTION! | 01:53 |
| 175 | Introducing Instagram Clone | 08:32 |
| 176 | Users Schema | 06:09 |
| 177 | Photos Schema | 06:38 |
| 178 | Comments Schema | 06:40 |
| 179 | Likes Schema | 07:42 |
| 180 | Followers Schema | 07:21 |
| 181 | 3 Approaches for Hashtags | 10:35 |
| 182 | Implementing Hashtags Table | 05:27 |
| 183 | Section Introduction | 01:43 |
| 184 | Getting Lots of Instagram Data | 08:31 |
| 185 | Instagram Challenge #1 | 04:54 |
| 186 | Instagram Challenge #2 | 06:42 |
| 187 | Instagram Challenge #3 | 07:23 |
| 188 | Instagram Challenge #4 | 07:06 |
| 189 | Instagram Challenge #5 | 03:14 |
| 190 | Instagram Challenge #6 | 05:30 |
| 191 | Instagram Challenge #7 | 05:16 |
| 192 | Course Introduction | 01:09 |
| 193 | Instructor Introduction(s) | 01:26 |
| 194 | Syllabus Walkthrough and Prerequisites | 04:19 |
| 195 | Your First 5 Minutes of SQL - Let's Get Coding! | 06:14 |
| 196 | How The Course Works | 03:45 |
| 197 | Section Introduction | 01:03 |
| 198 | What Is a Database? | 07:17 |
| 199 | SQL Vs. MySQL | 05:51 |
| 200 | Installation Overview - WATCH BEFORE INSTALLING | 05:11 |
| 201 | Now using GoormIDE instead of Cloud9 | 03:17 |
| 202 | Mac Installation | 11:42 |
| 203 | Windows Installation | 03:33 |
| 204 | Section 3 Introduction | 01:10 |
| 205 | Creating Databases | 05:21 |
| 206 | Dropping Databases | 01:47 |
| 207 | Using Databases | 03:01 |
| 208 | Introduction to Tables | 05:10 |
| 209 | The Basic Datatypes | 07:53 |
| 210 | Basic Datatypes Challenge | 02:36 |
| 211 | Creating Your Own Tables | 00:00 |
| 212 | How Do We Know It Worked? | 02:34 |
| 213 | Dropping Tables | 01:37 |
| 214 | Creating Your Own Tables Challenge | 04:30 |
| 215 | Section 4 Introduction | 01:41 |
| 216 | Inserting Data | 05:04 |
| 217 | Super Quick Intro To SELECT | 02:09 |
| 218 | Multiple INSERT | 03:01 |
| 219 | INSERT Challenges | 01:36 |
| 220 | INSERT Challenges Solution | 04:44 |
| 221 | MySQL Warnings | 05:36 |
| 222 | NULL and NOT_NULL | 06:55 |
| 223 | Setting Default Values | 07:18 |
| 224 | A Primer On Primary Keys | 12:22 |
| 225 | Table Constraints Exercise | 01:52 |
| 226 | Table Constraints Exercise Solution | 03:35 |
| 227 | Section 5 Introduction | 01:31 |
| 228 | Introduction to CRUD | 01:45 |
| 229 | Preparing Our Data | 02:30 |
| 230 | Official Introduction to SELECT | 04:19 |
| 231 | Introduction to WHERE | 05:06 |
| 232 | SELECT Challenges | 02:01 |
| 233 | SELECT Challenges Solution | 02:46 |
| 234 | Introduction to Aliases | 02:56 |
| 235 | The UPDATE Command | 03:59 |
| 236 | UPDATE Challenges | 00:38 |
| 237 | UPDATE Challenges Solution | 03:59 |
| 238 | Introduction to DELETE | 04:42 |
| 239 | DELETE Challenges | 01:12 |
| 240 | DELETE Challenges Solution | 02:46 |
| 241 | Section 6 Introduction | 01:53 |
| 242 | CRUD Exercise Overview | 07:27 |
| 243 | CRUD Exercise Create Solution | 05:56 |
| 244 | CRUD Exercise Read Solution | 01:49 |
| 245 | CRUD Exercise Update Solution | 04:11 |
| 246 | CRUD Exercise Delete Solution | 03:22 |
| 247 | Section 7 Introduction | 02:05 |
| 248 | Running SQL Files | 10:16 |
| 249 | Loading Our Book Data | 05:26 |
| 250 | Working with CONCAT | 11:08 |
| 251 | Introducing SUBSTRING | 10:05 |
| 252 | Introducing REPLACE | 06:40 |
| 253 | Using REVERSE | 03:40 |
| 254 | Working with CHAR LENGTH | 04:55 |
| 255 | Changing Case with UPPER and LOWER | 03:21 |
| 256 | String Function Challenges | 04:43 |
| 257 | String Function Challenges Solution | 13:09 |
| 258 | Section 8 Introduction | 00:36 |
| 259 | Seed Data: Adding A Couple New Books | 02:48 |
| 260 | Using DISTINCT | 08:25 |
| 261 | Sorting Data with ORDER BY | 11:20 |
| 262 | Using LIMIT | 09:04 |
| 263 | Better Searches with LIKE | 07:43 |
| 264 | LIKE Part 2: More Wildcards | 06:10 |
| 265 | Refining Selections Exercises | 04:53 |
| 266 | Refining Selections Exercises Solution | 12:30 |
| 267 | Section 9 Introduction | 03:57 |
| 268 | The Count Function | 08:39 |
| 269 | The Joys of Group By | 12:23 |
| 270 | Note about SQL Mode only_full_group_by | 04:20 |
| 271 | Min and Max Basics | 04:13 |
| 272 | SUBQUERIES - A Problem with Min and Max | 07:16 |
| 273 | Using Min and Max with Group By | 06:40 |
| 274 | The Sum Function | 04:28 |
| 275 | The Avg Function | 06:01 |
| 276 | Aggregate Functions Challenges | 04:28 |
| 277 | Aggregate Functions Challenges Solution | 09:11 |
| 278 | Section 10 Introduction | 01:57 |
| 279 | CHAR and VARCHAR | 14:30 |
| 280 | DECIMAL | 06:09 |
| 281 | FLOAT and DOUBLE | 07:45 |
| 282 | DATE, TIME, and DATETIME | 04:32 |
| 283 | Creating Our DATE data | 05:50 |
| 284 | CURDATE, CURTIME, and NOW | 05:16 |
| 285 | Formatting Dates | 14:30 |
| 286 | Date Math | 09:41 |
| 287 | Working with TIMESTAMPS | 10:55 |
| 288 | Data Types Exercises | 04:51 |
| 289 | Data Types Exercises Solution | 13:59 |
| 290 | Section 11 Introduction | 02:45 |
| 291 | Not Equal | 04:27 |
| 292 | Not Like | 02:35 |
| 293 | Greater Than | 10:05 |
| 294 | Less Than | 03:49 |
| 295 | Logical AND | 09:48 |
| 296 | Logical OR | 06:42 |
| 297 | Between | 10:58 |
| 298 | In And Not In | 11:48 |
| 299 | Case Statements | 11:22 |
| 300 | Logical Operators Exercises | 06:46 |
| 301 | Logical Operators Exercises Solution | 17:48 |
| 302 | Section 12 Introduction | 01:58 |
| 303 | Real World Data Is Messy | 10:29 |
| 304 | Types of Data Relationships | 04:38 |
| 305 | One To Many: The Basics | 12:34 |
| 306 | Working With Foreign Keys | 12:05 |
| 307 | Cross Join | 07:37 |
| 308 | Inner Join | 12:46 |
| 309 | Left Join | 15:18 |
| 310 | Right Joins Pt 1 | 10:37 |
| 311 | Right Joins Pt 2 | 09:52 |
| 312 | Right and Left Joins: A Common Question | 03:10 |
| 313 | Our First Joins Exercise | 06:59 |
| 314 | Our First Joins Exercise SOLUTION | 09:11 |
| 315 | Our First Joins Exercise SOLUTION PT. 2 | 09:22 |
| 316 | Section 13 Introduction | 01:55 |
| 317 | Many To Many Basics | 10:49 |
| 318 | Creating Our Tables | 10:58 |
| 319 | TV Joins Challenge 1 | 04:50 |
| 320 | TV Joins Challenge 2 | 06:23 |
| 321 | TV Joins Challenge 3 | 05:00 |
| 322 | TV Joins Challenge 4 | 06:00 |
| 323 | TV Joins Challenge 5 | 04:57 |
| 324 | TV Joins Challenge 6 | 11:58 |
| 325 | TV Joins Challenge 7 | 07:10 |
| 326 | Section 14 Introduction | 01:20 |
| 327 | Introduction To Instagram Clone Schema | 08:32 |
| 328 | Cloning Instagram's DB: Users Schema | 06:09 |
| 329 | Cloning Instagram's DB: Photos Schema | 06:38 |
| 330 | Cloning Instagram's DB: Comments Schema | 06:40 |
| 331 | Cloning Instagram's DB: Likes Schema | 07:42 |
| 332 | Cloning Instagram's DB: Followers Schema | 07:21 |
| 333 | Cloning Instagram's DB: Hashtags Part 1 | 10:35 |
| 334 | Cloning Instagram's DB: Hashtags Part 2 | 05:27 |
| 335 | Section 15 Introduction | 01:43 |
| 336 | Loading The JUMBO dataset | 08:31 |
| 337 | Instagram Clone Challenge 1 | 04:54 |
| 338 | Instagram Clone Challenge 2 | 06:42 |
| 339 | Instagram Clone Challenge 3 | 07:23 |
| 340 | Instagram Clone Challenge 4 | 07:06 |
| 341 | Instagram Clone Challenge 5 | 03:14 |
| 342 | Instagram Clone Challenge 6 | 05:30 |
| 343 | Instagram Clone Challenge 7 | 05:16 |
| 344 | Section 16 Introduction | 01:37 |
| 345 | MySQL and Other Languages | 09:00 |
| 346 | BUT WHAT ABOUT PHP | 07:35 |
| 347 | Introduction to JOIN US app | 08:01 |
| 348 | 5 Minute NodeJS Crash Course | 06:13 |
| 349 | Introduction to NPM and Faker | 09:12 |
| 350 | Introducing the MySQL Package | 04:54 |
| 351 | Connecting Node to MySQL | 12:47 |
| 352 | Creating Our Users Table | 06:55 |
| 353 | Selecting Using Node | 06:16 |
| 354 | Inserting Using Node | 11:32 |
| 355 | Some MySQL/Node Magic | 07:42 |
| 356 | Bulk Inserting 500 Users - Finally! | 08:41 |
| 357 | 500 Users Exercises | 02:31 |
| 358 | 500 Users Exercises Solutions | 11:56 |
| 359 | Section 17 Introduction | 01:53 |
| 360 | Introducing Express | 05:41 |
| 361 | NPM Init and package.json files | 06:39 |
| 362 | Our First Simple Web App | 16:34 |
| 363 | Adding Multiple Routes | 09:57 |
| 364 | Connecting Express and MySQL | 11:09 |
| 365 | Adding EJS Templates | 16:03 |
| 366 | Connecting The Form | 18:33 |
| 367 | Styling Part 1 | 08:25 |
| 368 | Styling Part 2 | 08:17 |
| 369 | Introduction to Database Triggers | 06:11 |
| 370 | Writing Our First Trigger Part 1 | 07:28 |
| 371 | Writing Our First Trigger Part 2 | 11:37 |
| 372 | Preventing Instagram Self-Follows With Triggers | 08:17 |
| 373 | Creating Logger Triggers | 10:18 |
| 374 | Managing Triggers And A Warning | 06:13 |