SQL–SimpleQueries

上传人:lx****y 文档编号:243022670 上传时间:2024-09-14 格式:PPT 页数:32 大小:119KB
返回 下载 相关 举报
SQL–SimpleQueries_第1页
第1页 / 共32页
SQL–SimpleQueries_第2页
第2页 / 共32页
SQL–SimpleQueries_第3页
第3页 / 共32页
点击查看更多>>
资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,SQL Simple Queries,Chapter 3.1,V3.0,Copyright Napier University,Dr Gordon Russell,Introduction,SQL is the Structured Query Language,It is used to interact with the DBMS,SQL can,Create Schemas in the DBMS,Alter Schemas,Add data,Remove data,Change data,Access Data,DSL,SQL is a Data Sub Language DSL,This is a combination of two languages,DDL Data Definition Language,DML Data Manipulation Language,The main way of accessing data is using the DML command SELECT.,The abilities of the SELECT command forms the majority of this material on SQL,Database Models,A data model comprises,a data structure,a set of integrity constraints,operations associated with the data structure,Examples of data models include:,hierarchic,network,relational,Relational Databases,The relational data model comprises:,relational data structure,relational integrity constraints,relational algebra or equivalent (SQL),SQL is an ISO language based on relational algebra,relational algebra is a mathematical formulation,Relational Data Structure,A relational data structure is a collection of tables or relations.,A relation is a collection of rows or tuples,A tuple is a collection of columns or attributes,A domain is a pool of values from which the actual attribute values are taken.,Relational Structure cont,Domain and Integrity Constraints,Domain Constraints,limit the range of domain values of an attribute,specify uniqueness and nullness of an attribute,specify a default value for an attribute when no value is provided.,Entity Integrity,every tuple is uniquely identified by a unique non-null attribute, the primary key.,Referential Integrity,rows in different tables are correctly related by valid key values (foreign keys refer to primary keys).,Example Database,In order to better understand SQL, all the example queries make use of a simple database.,The database is formed from 2 tables, CAR and DRIVER.,Each car may be owned by a DRIVER.,A DRIVER may own multiple CARs.,DRIVER,CAR,DRIVER,NAME,DOB,Jim Smith,11 Jan 1980,Bob Smith,23 Mar 1981,Bob Jones,3 Dec 1986,CAR,Each column holds data of a particular type,Integer, string, decimal, blobs,The range of values can be further constrained,If a column in a row contains no data, it is NULL.,It can indicate no possible value or unavailable data.,All rows must differ from each other in some way,Sometimes a row is called a,tuple,Cardinality is the number of rows of a table,Arity is the number of columns of a table,Primary Keys,In the design section the idea of a Primary Key is defined.,A Primary Key is a group of 1 or more columns which, when taken together, is unique in the table,No part of a primary key can be NULL.,In our example,DRIVER: the primary key is NAME,CAR: the primary key is REGNO,In our example this means that no two drivers can have the same name. In the real world this would be a problem, but this is just an example.,Referential Integrity,Note that there is a link between CAR and DRIVER via OWNER.,If there is a value in OWNER, then this value must also appear somewhere in DRIVER.,If you change a drivers name in DRIVER, you must make sure the same change is made in OWNER of CAR.,The DBMS enforces the rules.,If you try to break the rules the DBMS reports the problem as a REFERENTIAL INTEGRITY error.,SQL Basics,Basic SQL statements include,CREATE a data structure,SELECT read one or more rows from a table,INSERT one of more rows into a table,DELETE one or more rows from a table,UPDATE change the column values in a row,DROP a data structure,In this lecture the focus is on SELECT.,Simple SELECT,SELECT column FROM tablename,SELECT column1,column2,column3 FROM tablename,SELECT * from tablename,SELECT * from CAR;,SELECT regno from CAR;,REGNO,F611 AAA,J111 BBB,A155 BDE,K555 GHT,SC04 BFE,SELECT colour,owner from CAR;,Formatting,SPACES do not matter,NEWLINES do not matter,Good practice to put ; at the end of the query.,CASE (except between single quotes) does not matter.,These are all valid:,SELECT REGNO FROM CAR;,SElecT regno,From Car,;,Comments,To give you the ability to make notes in queries you are allowed to have comments.,Comments are not executed,A comment starts with - and ends with a newline,They are only permitted within a query.,SELECT regno - The registration number,FROM car - The car storage table,;,SELECT filters,You can have rules in your queries,These rules are tested for each row your query produces,If the rule is true, the row is displayed,If the rule is false, the row is not displayed,The rule starts with WHERE,SELECT columns,FROM table,WHERE rule,Simple Rule,A simple rule might be to look for a car with a colour of RED.,The rule would be,colour = RED,SELECT regno FROM CARSELECT regno from CAR,WHERE colour = RED,REGNO,F611 AAA,J111 BBB,A155 BDE,K555 GHT,SC04 BFE,REGNO,F611 AAA,Note,Things between quotes is CASE SENSITIVE.,RED is not the same as Red or red,Rules which mention fields they can be used if they appear on the SELECT line or not.,SELECT regno from CAR,WHERE colour = RED,REGNO,COLOUR,F611 AAA,RED,Comparisons,Valid comparisons include =,!=,=,Colour = RED The colour must be red,Colour != REDThe colour is not red,Colour RedSame as !=,Price 10000More than 10000,Price = 10000More than or equal to 10000,Price 10000Cheaper than 10000,Price DATE2 indicates DATE1 is in the future after DATE2.,SELECT name,dob from driver,WHERE DOB = 1 Jan 1981,NAME,DOB,Bob Smith,23 Mar 1981,Bob Jones,3 Dec 1986,DATE Syntax,It must be in quotes,Each DBMS handles dates in a slightly different way,Dates like 1 Jan 2003 work quite well.,Oracle permits dates like 1-Jan-2003,Oracle also permits dates like 1-Jan-03,Be caseful if you type this it will assume 2003.,If you mean 1984 type 1984 not 04.,You must always specify a day and a month. If you do not the DBMS will report an error.,BETWEEN,When dealing with dates sometimes you want to test to see if a field value falls between two dates.,The easiest way to do this is with BETWEEN,Find all drivers born between 1995 and 1999,SELECT name,dob from driver,WHERE DOB between 1 Jan 1985 and 31 Dec 1999,Between works for other things, not just dates,SELECT regno from CAR where price between 5000 and 10000;,NULL,NULL indicates that something has no value,It is not a value, and you cannot use normal comparison operators.,For instance, looking for cars without owners,Wrong: SELECT regno from car where owner = NULL,Wrong:SELECT regno from car where owner = NULL,Instead there are two special operators, IS NULL, and IS NOT NULL,SELECT regno from car,WHERE OWNER is null,SELECT regno from car,WHERE OWNER is not null,REGNO,SC04 BFE,REGNO,F611 AAA,J111 BBB,A155 BDE,K555 GHT,SC04 BFE,LIKE,Sometimes you want to have a rule involving partial strings, substrings, or wildcards,LIKE does this, and is a slot-in replacement for =,If the string contains % or _, LIKE uses them to support wildcards.,% - Matches 0 or more characters in the string,_ - Matches exactly 1 character in the string,Examples,Name LIKE Jim Smithe.g. Jim Smith,Name LIKE _im Smithe.g. Tim Smith,Name LIKE _ Smithe.g. Bob Smith,Name LIKE % Smithe.g. Frank Smith,Name LIKE % S%e.g. Brian Smart,Name LIKE Bob %e.g. Bob Martin,Name LIKE %i.e. match anyone,LIKE is more expensive than =,If you are not using wildcards, always use = rather than LIKE.,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!