CVJ531: Intro to MySQL
-
Upload
clay-ewing -
Category
Documents
-
view
164 -
download
4
Transcript of CVJ531: Intro to MySQL
MySQL
Let’s Get Relational
Tables
• Think of each table as a spreadsheet
• We define columns, also known as fields, which classify our data
• Each record in the table is a row
Data Types
• Varchar
– Variable Characters, specify up to how many characters something will be
• Char
– A set number of characters, good for things like state abbreviations
• Int
– Whole numbers, positive or negative
Data Types
• Float
– Floating Point, also known as a decimal
• Text
– A huge blob of text, like a paragraph or more
• TinyInt / Bit / Boolean
– 0 or 1, True or False
• DateTime
– A date and time 0000-00-00 00:00:00
Data Types
• Depending on the flavor of SQL (Oracle, MySQL, MSSQL, PostgreSQL, etc) there are many more
• Don’t get overwhelmed, just think of what will be best in terms of sorting and lookups
User Table Example
• Username
– Varchar
• Password
– Varchar
• ID
– Integer
• AccountCreated
– DateTime
PHPMYADMIN
CRUD
• Create
• Retrieve
• Update
• Delete
Create
• INSERT is used to create a new record in the database
• INSERT VALUES (username, password) INTO users (‘fluffybunny’, ‘123456’)
Retrieve
• SELECT is used to retrieve a record in the database
• SELECT username, password FROM users WHERE ID = 1
Anatomy of SELECT
• SELECT [column]– The command
• FROM [table]– The table you want to select from
• WHERE *column+ = ‘value’– Specifics
• ORDER BY [column] [ASC/DESC]– Sort by column
• LIMIT [Number]– Limit the number of records returned
UPDATE
• UPDATE is used to change record(s) in the database
• UPDATE users SET username = ‘FluffyBuns’ WHERE ID = 1
DELETE
• DELETE is used to remove records from the database
• DELETE FROM users WHERE ID = 1
** if you do not specify anything in the WHERE clause, it will delete everything in that table
Users and Groups
ID User
1 John
2 Jane
3 Sally
4 Ryan
5 Joe
ID Group
1 Sharks
2 Ducks
3 Lemurs
UserID GroupID
1 2
2 2
3 1
4 1
5 3
Users Groups UserGroups
Joins
• SELECT User, Group FROM UsersJOIN UserGroups ON Users.ID = UserGroups.UserIDJOIN Groups ON UserGroups.GroupID = Groups.IDWHERE Group = ‘Sharks’
IN
• SELECT User FROM Users WHERE ID IN (1,2)
• SELECT User FROM Users WHERE ID IN (SELECT UserID FROM UserGroups WHERE GroupID = 2)
BETWEEN
• SELECT User FROM Users WHERE ID BETWEEN 3 AND 5
Conditions and Operators
• WHERE can also use wildcards for text– WHERE Column IS LIKE ‘%something%’
• WHERE can use more than =– WHERE ID < 4– WHERE ID <= 4
• WHERE can combine conditions– WHERE Column = ‘A’ AND Column2 = ‘B’– WHERE Column = ‘A’ OR Column2 = ‘B’– WHERE (Column = ‘A’ OR Column2 = B’) AND Other = ‘C’
Nerding Out
• SQL has functions, like COUNT and SUM
• SELECT Customer, SUM(Amount) FROM Orders GROUP BY Customer
• SELECT COUNT(Customer) FROM Orders GROUP BY Customer
Indexes
• It’s a good habit to create a column for each table that acts as an ID
• We can put an index on the ID and it can speed up the query time
• Unless you’re dealing with really big datasets, you probably won’t have to worry about this
Database Design
• Design a schema for a social network– I’m cool with stretching this to something else
• At a minimum it must contain:– Users
– Posts
– Friend Relationships
– Likes
• You will create a web interface for this database later