Learn efficiently and remember over time.
Start Long-Term Learning
Add this set to a folder
What is the UNIQUE constraint?
Specifically identifies which column should not contain duplicate values.
What is the CHECK constraint?
Allows the admin to limit the types of data a user can insert into that column of the database.
What is the primary key?
This uniquely identifies a column in the db. Has to have a unique constraint by default. Cannot be Null and data type must match. Ensures entity integrity(Uniquely id each row). Not always created as CLUSTERED indexes if one is already made.
What is a foreign key?
This is a column in one table that points to the primary key in another table(defines relationship between two tables). Ensures domain and referential integrity, not entity integrity. There is not a predefined limit for foreign keys.
Why is it a bad idea to let a foreign key contain a NULL value?
Because it may be impossible to verify the constraints if a foreign key consists of two or more columns if one of them is NULL.
What is XQuery?
A query and functional programming language designed to query collections of XML data.
What is SQLCMD?
A command line application that comes with SQL and exposes the management features of SQL Server. It allows SQL queries to be written and executed from the command prompt.
What is TRANSACT-SQL
This is the primary means of programming and manageing SQL Server. When you use an SSMS to perform an action, it is using T-SQL commands in the background to do the work.
What are the three types of files in SQL?
MDF = Primary data files, NDF = Secondary data files and LDF = Log files
Constraints are also referred to as ____ constraints.
Column; limitations or rules placed on a field or column to ensure that data that is considered invalid is not entered.
What are 6 constraint types?
Unique, Check(domain Integrity), Default(domain integrity), Not Null, Primary Key(entity integrity), Foreign Key(referential integrity)
A regular character uses ___ bytes of storage, whereas a unicode character requires ____ bytes.
When querying a database you can obtain faster results from properly ______ tables and views.
What is native auditing?
The process of extracting trails on a regular basis so they can be transferred to a designated security system where the database admins do not have access, this ensures a certain level of separation of duties and provides evidence that the audit trails were not modified.
What is a two-phase commit system?
A feature of a transaction processing system which enables DB's to be returned to the pre-transaction state if some error condition occurs. All databases are updated or none of them are.
What is the inside-out approach to db design?
A type of bottom-up approach, the inside-out method begins with identifying a few important concepts then proceeds outward radially.
What is the top-down approach?
When a schema is created through a series of successive refinements, starting with the first schema.
What is the With Execute Owner clause?
When creating a stored procedure, this can be used to allow the person running the SP to have the same permissions as the person who owns the SP. This is better than granting SELECT to the user.
What is abstraction?
A method of coding that enables a user to focus on the coding rather than the syntax for a specific database API, allowing them to use generic methods of access as long as they have the additional codes or libraries which fill in the blanks.
What is a clustered index?
Large amount of selects on a table, create a clustered index on the primary key of the table. This index should be the most common column that is in your WHERE clauses for queries against this table. So if most of the time you search by primary key, then leave it as the default. But if you search by DateCreated or LastName most of the time on this table, then you might want to consider changing the clustered index to this column instead. Each table can only have 1 clustered index. (faster searching)
What is a non-clustered index?
Non-clustered indexes are not copies of the table but a sorting of the columns you specify that "point" back to the data pages in the clustered index. Add non-clustered indexes for queries that return smaller result sets. (Optimal Performance)
What are 3 characteristics of a simple view?
1. It does not have any usage of SQL group functions or grouping of data.
2. DML operations are allowed on the view
3. It fetches data from one database table only
Which DB design process allows you to create a data model independent of a specific DBMS?
Logical DB design
What's the difference between an INNER join and an OUTER join?
INNER will only produce matching rows from both tables while OUTER will join all rows from both tables whether they match or not.
If you have already defined a view on a specific table, then you add columns to that table, what must you do to the view?
Use the CREATE or REPLACE VIEW command to redefine it.
What are three things true about views?
1. If a view definition contains the DISTINCT keyword, rows cannot be deleted through the view.
2. The WITH OBJECT IDENTIFIER clause is used to specify a top level (root) object view.
3. The OR REPLACE option is used to change the definition of a existing view without dropping and recreating.
What is DB prototyping?
Building a working model of the DB system in order to suggest improvements or add new features.
Define Normal Form
1NF - Eliminate duplicative columns from the same table.
-Create separate tables for each group of related data and identify each row with a unique column (the primary key).
2NF - Move repeating fields into a new table that contains a primary key, and relate it back to the old table using a foreign key. (requirement that each field value in a table is associated with only one row)
3NF - Eliminate columns not- transitively dependent (useless) on key
4NF - all in table are dependent on superkey
5NF - every join is implied by superkeys of the table
What is a fillfactor?
It specifies a percentage that indicates how much free space will be in the leaf level of each index page.
What would happen if you had a BETWEEN operator of BETWEEN 'D' and 'F'
You would get all values for D, E but not F. (MUST HAVE AND IN BETWEEN STATEMENT)
What is the bottom up approach?
Breaking down the smaller components so that each describes a basic fragment.
Mark works as a Database Designer
for Reon Inc. He is assigned the task to create a database for the
company. He issues the following query to create the database.
CREATE DATABASE '24342'
What will be the output of the query?
A database will be created.
Which of the following statements are true regarding the procedural data manipulation language?
It requires users to specify which data is needed and how to obtain it, it is a low-level DML, it requires users to know the data structure used in the db.
What does the IDENTITY constraint do?
It's used on the primary key to automatically start with 1 and auto-increment by 1.
Name 3 things which can be used to improve query performance
A primary key, a UNIQUE index and a CLUSTERED index
SQL server supports ____ conversions without using actual callout functions CAST or CONVERT
A unicode characters uses how much storage?
2 bytes, This allows 65,536 characters at almost any language.
What's the most efficient way to delete all rows from a table?
TRUNCATE command; does not log each row
A ____ will combine the results of two or more queries into a resulting set that includes all the rows belonging to the query:
UNION; without any duplicates. Duplicates require UNION ALL.
A clustered index usually _____ performance when inserting data.
worsens, because it's constantly sorting it. Improves it for retrieving it though. Physical sort. Only 1 per table.
What 3 reasons should you consider using a clustered index?
1. Columns contain a large number of distinct values
2. Columns are accessed sequentially
3. Queries return large result sets
The ___ role gives access to anything on the SQL server, while the ____ role gives full access to a specific database:
What happens if data is missing for a particular column when designing the INSERT SQL statement?
The INSERT statement uses the default value for the column.
What steps should you take to create full-text searching?
1. Create a full text catalog in the database
2. Create a full text index on the column in question
What command would you use to track changes to a table?
ALTER TABLE tablename
(table scoped object and not securable) is a data structure that improves the speed of data retrieval operations on a database table. The disadvantage of indexes is that they need to be created and updated,.
is simplistic in design. They are two dimensional tables that are consisting to rows and columns. for fast searches.
is similar to a tree structure (such as a family tree). Each parent table can have multiple children, but each child table can have only one parent.
A relational database is similar to a hierarchical database in that data is stored in tables and any new information is automatically added to the table without the need to reorganize the table itself. Minimizes the amount of redundant data stored in the database. database can have multiple parents.
Retrieves rows from the database and enables the selection of one or many rows or columns from one or many tables in SQL Server.
Adds one or more new rows to a table or a view in SQL Server. Must contain a table or view name into which to insert the data. Can be used to insert explicit values into a table or to insert the result set returned by a query into a table.
Removes rows from a table or view(, which deletes data from within a table) Use for smaller databases
Performs insert, update, or delete operations on a target table based on the results of a join with a source table.
A DDL statement used to remove objects, such as tables, views, stored procedures, and triggers , from a database.
refers to a set of rules that determine how data is sorted and compared. By default, SQL Server has predefined collation precedence. If you wish to override how data is being sorted, you must use a collation clause.
Transact-SQL data types
bit, decimal and numeric. Transact-SQL data types that have a fixed precision and scale. money and smallmoney are Transact-SQL data types you would use to represent monetary or currency values.
is simply a virtual table consisting of different columns from one or more tables. Unlike a table, a view is stored in a database as a query object; therefore, a view is an object that obtains its data from one or more tables. View is a database object that can be used in SELECT queries just like a table. When a view contains a join, DML can be preformed but only a single base table.
Views ensure the security of data by restricting access to the following data
• Specific rows of tables
• Specific columns of tables
• Specific rows and columns of tables
• Rows obtained by using joins
• Statistical summaries of data in given tables
• Subsets of another view or subsets of views and tables
Some common examples of views include the following:
• A subset of rows or columns of a base table
• A union of two or more tables
• A join of two or more tables
• A statistical summary of base tables
• A subset of another view or some combination of views and base tables
two major reasons you might want to provide a view instead of enabling users to access the underlying tables in your database:
- Views allow you to limit the
type of data users can access. You can grant view permissions in
designated tables, and you can also choose to deny permissions for
- Views reduce complexity for end users so they don't have to learn how to write complex SQL queries. Instead, you can write those queries on their behalf and hide them in a view.
A stored procedure
Can modify the data in permanent tables and return multiple values as output parameters. It doesn't control how underlying data is physically accessed. Can return a value to the caller.
A code injection technique that exploits security vulnerabilities in the DB layer of an application.
is the maximum total number of decimal digits that can be stored in a numeric data type, both to the left and to the right of the decimal point; this value must be at least 1 and at most 38. The default precision number is 18.
three things you need to be sure to identify in your statement to form a proper SELECT query:
• Columns to retrieve
• Tables to retrieve the columns from
• Conditions, if any, that the data must satisfy
SET NOCOUNT statement
shows line stating the number of rows "affected". This is off by default. This will suppress the '(1 row affected)
, which combine columns from multiple different tables. JOIN statements can be specified in either the FROM or the WHERE clause, but it is recommended that you specify them in the FROM clause.
Both the EXCEPT and the INTERSECT statements
are designed to return distinct values by comparing the results of two queries.
gives you the final result set where data exists in the first query and not in the second dataset.
gives you the final result set
where values in both of the queries match by the query on both the left
and right sides of the operand.
• The number and order of the columns must be the same in all queries.
• The data types must be compatible.
SELECT statement query
lets you produce individual lists, but the result may be that you get all the information you need but in an individual list format.
allows you to modify data stored in tables using data attributes. Note: If you don't specify what records to update, all records or rows will be updated with the new value. To update another table use FROM clause. In this, SET specifies column to be updated.
series of steps(or rules) called "forms" the more steps you take, the more normalized your tables.
what happens when you connect two tables
the primary key is replicated from the primary to secondary table, and all the key attributes duplicated from the primary table are known as the foreign key.
primary drawbacks to using indexes
are the time it takes to build the indexes and the storage space the indexes require. Note: each table can have only one clustered index , data can be sorted in only one way.
Windows Authentication mode is superior to mixed mode because
users don't need to learn yet another password and because it leverages the security design of the network.
is a database-specific role intended to allow an application to gain access regardless of the user.
is a data structure that improves the speed of data retrieval operations on a database table.
Databases are often put on database servers for what reason
so that they can be accessed by multiple users and provide a higher level of performance. One popular database server is Microsoft SQL Server.
Exact numeric data types
are the most common SQL Server data types used to store numeric information.
serveradmin fixed server role
can Configure server -wide settings and issue SHUTDOWN command which immediately stops the SQL server.
Command will remove a windows user or group from the SQL server. This will not alter Windows its self
removes user access rights or privileges on the database objects granted using the GRANT statement, but does not prevent permissions from being obtained through membership in other roles.
Prevents users of members of a role from performing an action on a secure-able object, such as a view, or stored procedure. even if permission is grated directly through membership in another role.
Can configure linked servers, extend stored procedures and the start-up stored procedure. This is a Fixed server role
Can read from any table in the database, this deny will override an object-level grant
Blocks modifying data in any table in the database. Will override any object-level grant
can perform backups, checkpoints, and DBCC commands, but not restores(only sysadmins can perform restores)
In computer programing, create, read, update and delete (CRUD)are the four basic functions of persistent change
allows you to limit the types of data a user can insert into a the database and that they meet a certain condition.
returns the starting position of the specifies expression in a character string. The third parameter of the function is the character position to start searching for the first parameter in the second parameter. If starting ocation is a negative number, search starts at beginning of second parameter.
Advantage of database over spreadsheet
Database can parse out redundant storage and information obtained from various relational spreadsheets.
huge numbers(way bigger than millions) = bigint
Big numbers= int(-2,147,483,648 to 2,147,483,647)Can store dates YYYYMMDD(4 bytes)
small numbers = smallin(-32768 to 32,767 however req 2 bytes of space)
smaller numbers = tinyint(max value of 255 with minimum storage 1 byte)
lots of text = varchar(expands as needed) YYYYMMDD(8 bytes)
text containing Unicode symbols(diff language or symbols) = nvarchar
currency = smallmoney(-214,748.3648 to 214,748.3647 (4 decimal places))
yes/no = bit(value of 0,1 or null)
Float = precision and scale(best for finding percent %)
decimal(3) - 5 bytes
RIGHT OUTER JOIN
preserves the unmatched rows from the second (right) table, joining them with a NULL in the shape of the first (left) table
returns a result set that contains all the combinations of rows from two tables that do not have a column in common, also know as a Cartesian product. WHERE conditions should always be included.
(stored procedure)one that is created within a schema and can receive permissions through that schema.
Database s-scoped secure-able. Created within a database and provides a namespace and a security container for database objects. Each secure-able object must have a unique name
is a database object that can accept values, perform a calculation and return the result to the caller. Can be directly referenced using a SELECT statement.
Selects data and returns the results as a table. Cannot modify any permanent tables.
Returns a single value, based on the input value of a single field(EX: UCASE - Returns the value of the field in all upper case).
Returns character data converted from numeric data. The second parameter is for the total length of the output including the decimal point, signs, digits, and spaces. output is round as specified in the third parameter.
contains one row for each function, constraint or trigger created within a database. Indexes are not stored in this table(sysindexes).
Modifies a table definition by altering, adding, or dropping columns and constraints, reassigning partitions or disabling or enabling constraints and triggers.(cannot change IDENTITY constraint)
To cause the result set to be sorted by the value in a specific column or columns. Not allowed in a CREATE VIEW Statement.
includes a row for each possible combination of results from the other tables. the number of rows returned will equal the number of rows in one table multiplied by the number of rows in the other table.
WITH CHECK OPTION
used to ensure that no changes to the underlying data can be made through the view that would cause data no to conform to the definitions of the view.
used to ensure that none of the tables references by the view are dropped or have their structure changes such that the view would not function properly. Cannot use asterisk in SELECT list., must specify column by name
used to optimize operations that use spatial data types, such as geometry and geography data types.
Index that includes all columns used in the query. Can optimize performance because the query can be generated from the index without accessing the actual tables involved in the query.
ON DELETE CASCADE
To ensure all child tables are deleted inf the parent is deleted. This can be your FOREIGN KEY constraint.
ON DELETE NO ACTION
Would prevent a parent row from being deleted if it had a related child rows in another table.
What's the difference between time, date, datetime, datetime2, datetimeoffset and smalldatetime?
Time is the 24 hr clock without
time zone awareness(Minimizes storage but can store time the includes
hours, minutes, seconds but not fractional seconds.)
Date is used to define 1/1 to 12/31 9999
Datetime is accurate to .00333 seconds(1/1 1753 to 9999)
datetime2 is accurate up to 100 nanoseconds
datetimeoffset includes daylight savings time
smalldatetime(1\1 1900 to june 6, 2079)(2 bytes) does not keep track of seconds.(cant use neg numbers)
Time(3) stores fractional seconds, however increases storage space.
timestamp - is uses for row versioning, not to store time data.
is the process of stepping back through the normalization steps until you get something that is "comfortable". Improves data retrieval performance.
Gives a database user or group(defined with a role) specific permissions to data objects. Uses ON clause preceding it.
used in a UPDATE statement when you need to update the values of columns that have a large object data type such as varchar(max) or varbinary(max) columns.
to filter the results grouped by a GROUP BY clause. Can only reference aggregate functions or column that are also specified in the GROUP BY clause.
RESTORE DATABASE command
can be used with a previously taken full backup to recover a database. you can add a NO RECOVERY clause if you plan to apply a transaction log of differential backup as part of your recovery process.
to specify sorting rules that are different than those used for other columns in the table.
Creates a full-text index on a table or indexed view in a database. Only one full-text index is allowed per table or indexed view, and each full-text index applies to a single table or indexed view
One that returns the same predictable value when called with same nvarchar(3500). Meets requirements using least amt of storage. Supports multiple language input parameters.
Character stores what data type?
A-z or 0-9(any digit or letter that math functions will not be applied to)
What does ANSI SQL syntax refer to?
Grammar and rules governing the structure and content of statements.
What is the difference between a function and a stored procedure?
A function can be directly referenced in a select statement, and return only a single scalar or table vaule.
What is the diffrence between an application role and a database role?
A database role is assigned to users
What is represented by a column in a well-designed relational database table
A single entity attribute
OLTP(Online Transaction Processing) database
Is optimized to handle a large number of simultaneous updates additions and deletions.
Good candidate for key columns in a non clustered index
Columns frequently uses as a query join conditions.
in a relational database, data is stored in
Multiple tables that are related using primary and foreign keys
Which column do you need to set a value for when issuing a INSERT statement?
A column of the uniqueidentifer data type. You need to use the NEWID() function in the values list to generate the value.
What are the three methods for whicha user can be initially identified?
Windows user logon, Membership in a windows group, SQL server logon
How do you gather the size of a file?
1MB = 1024KB
1 record is 165 bytes - Multiply by amt of records.
What does the REPLACE function do?
replaces all occurrences of the second given string in the first string expression with a third expression(SELECT REPLACE('The best TTS Solution','s','z') - The bezt TTZ ..
Non Clustered Index
Non-clustered indexes are not copies of the table but a sorting of the columns you specify that "point" back to the data pages in the clustered index. Add non-clustered indexes for queries that return smaller result sets
An explicit transaction is one where all events of the transaction either happen together or they don't take place at all.
A reserved Keyword and cannot be used as a object name or column name in a table unless delimited. Add is used to add a new column in a alter table statement.
SQL Server utility can view what entities
Instances of SQL server, Data-Tier apps, Databse Files, Volumes
Must have AND; can only admit two expressions(between(10000 and 50000)) cant add another between(10000 and 50000) and (60000 and 90000)