SQL语言简易教程(基础)
- 格式:pdf
- 大小:172.64 KB
- 文档页数:13
sql菜鸟教程SQL 是一种用于管理关系型数据库的编程语言。
它可以用来创建、修改和查询数据库中的表格和数据。
SQL 学习的第一步是了解如何创建数据库。
可以使用`CREATE DATABASE` 命令来创建一个新的数据库。
例如,下面的代码会创建一个名为 `mydatabase` 的数据库:```sqlCREATE DATABASE mydatabase;```接下来,需要创建一个表格来存储数据。
可以使用 `CREATE TABLE` 命令来创建一个新的表格。
例如,下面的代码会创建一个名为 `customers` 的表格,其中包含了 `id`、`name` 和`email` 列:```sqlCREATE TABLE customers (id INT PRIMARY KEY,name VARCHAR(255),email VARCHAR(255));```添加数据到表格中,可以使用 `INSERT INTO` 命令。
例如,下面的代码会向 `customers` 表格中插入一条新的记录:```sqlINSERT INTO customers (id, name, email)VALUES(1,'JohnDoe','*******************');```查询数据可以使用 `SELECT` 命令。
例如,下面的代码会查询`customers` 表格中的所有记录:```sqlSELECT * FROM customers;```如果只想查询特定的列,可以在 `SELECT` 命令中指定列的名称。
例如,下面的代码只会返回 `name` 列的值:```sqlSELECT name FROM customers;```更新现有的记录时,可以使用 `UPDATE` 命令。
例如,下面的代码会将 `id` 为 1 的记录的 `name` 列更新为 `'Jane Doe'`:```sqlUPDATE customersSET name = 'Jane Doe'WHERE id = 1;```删除记录时,可以使用 `DELETE` 命令。
SQL语⾔⼊门内容来源:唐成. PostgreSQL修炼之道[M]. 机械⼯业出版社, 2015.此书购买链接:SQL(Structured Query Language)结构化查询语⾔1. 语法简介1.1 语句分类DDL (Data Definition Language)数据定义语⾔,主要⽤于创建、删除,以及修改表、索引等数据库对象语⾔。
DML (Data Manupulation Language)数据操作语句,主要⽤于插⼊、更新、删除数据,所以分为INSERT、UPDATE、DELETE三种语句。
DQL (Data Query Language)数据查询语句,基本就是SELECT查询语句,⽤于数据查询。
1.2 语法结构多条SQL语句之间⽤分号(;)隔开每个SQL命令有⼀些列的记号组成:关键字标识符双引号包围的标识符常量单引号包围的⽂本常量特殊的字符……2. DDL语句2.1 建表语句表⽰关系型数据库中最基本的对象,有很多列也有很多⾏,每⼀列有⼀个名字,不同的列有不同的数据类型。
建表语句的⼀个简单语法如下:CREATE TABLE table_name (col01_name data_type,col02_name data_type,col03_name data_type,col04_name data_type);其中CREATE和TABLE为关键字,表⽰创建表。
table_name为表名,col01_name col02_name col03_name col04_name分别表⽰列名。
data_type表⽰数据类型,不同的数据库系统有不同的数据类型名称。
变长的字符串在⼤多数数据库中都可使⽤varchar类型。
整形数据⼀般使⽤int类型。
⽇期类型使⽤date。
例如:CREATE TABLE score (student_name varchar(40),chinese_score int,math_score int,test_date date);在建表的时候,可以指定表的主键,主键是表中⾏的唯⼀标识,这个唯⼀标识,是不能重复的。
初学者必读的SQL数据库基础教程SQL数据库是一种常用的数据库管理系统,广泛应用于各种软件开发和数据管理领域。
对于初学者来说,掌握SQL数据库的基础知识是非常重要的。
本文将从数据定义语言、数据操作语言、数据查询语言和数据控制语言等方面,为初学者提供一份必读的SQL数据库基础教程。
第一章数据定义语言(DDL)数据定义语言(DDL)是SQL数据库中用来定义数据库结构的语言。
它包括创建、修改和删除数据库、表、列以及其他对象的操作。
在SQL中,创建数据库使用CREATE DATABASE语句,创建表使用CREATE TABLE语句,修改表结构使用ALTER TABLE语句,删除表使用DROP TABLE语句等。
初学者在学习时应该了解这些常用的DDL语句,并能够正确地使用它们。
第二章数据操作语言(DML)数据操作语言(DML)是SQL数据库中用来对数据库中的数据进行操作的语言。
它包括插入、更新和删除数据的操作。
在SQL中,插入数据使用INSERT INTO语句,更新数据使用UPDATE语句,删除数据使用DELETE FROM语句等。
初学者需要熟悉这些基本的DML语句,并能够通过它们来操作数据库中的数据。
第三章数据查询语言(DQL)数据查询语言(DQL)是SQL数据库中用来查询数据库中的数据的语言。
它包括SELECT语句和一些用于过滤、排序和聚合数据的函数。
初学者需要掌握SELECT语句的基本用法,了解如何使用WHERE子句进行条件过滤,如何使用ORDER BY子句进行排序,以及如何使用GROUP BY子句进行数据聚合。
第四章数据控制语言(DCL)数据控制语言(DCL)是SQL数据库中用来控制数据库访问权限和事务处理的语言。
它包括GRANT和REVOKE语句用于授权和撤销权限,以及BEGIN TRANSACTION、COMMIT和ROLLBACK语句用于管理事务。
初学者需要了解如何使用DCL语句来管理数据库的安全性和事务一致性。
sql 语句简易教程SQL语句简易教程1. 什么是SQL•SQL全称为Structured Query Language(结构化查询语言)•是一种用于管理关系型数据库的语言•可以使用SQL语句对数据库进行查询、插入、更新和删除操作2. SQL语句的基本结构•SQL语句由关键字、表名、字段、条件等组成•常见的SQL语句包括:SELECT、INSERT、UPDATE和DELETE SELECT语句•用于从数据库中查询数据•示例:SELECT * FROM 表名;SELECT 列名1, 列名2, ... FROM 表名;INSERT语句•用于向数据库中插入新数据•示例:INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);UPDATE语句•用于更新数据库中的现有数据•示例:UPDATE 表名 SET 列1 = 值1, 列2 = 值2 WHERE 条件; DELETE语句•用于从数据库中删除数据•示例:DELETE FROM 表名 WHERE 条件;3. SQL语句中的常见条件•条件用于过滤查询结果•常见的条件操作符有:=、<>、<、>、<=、>=等AND条件•用于同时满足多个条件•示例:SELECT * FROM 表名 WHERE 条件1 AND 条件2;OR条件•用于满足多个条件中的任意一个•示例:SELECT * FROM 表名 WHERE 条件1 OR 条件2;IN条件•用于指定某个字段的值在一组值中•示例:SELECT * FROM 表名 WHERE 列名 IN (值1, 值2, ...); LIKE条件•用于模糊匹配•示例:SELECT * FROM 表名 WHERE 列名 LIKE '关键词%';4. SQL语句中的常见操作排序•可以使用ORDER BY子句对查询结果进行排序•示例:SELECT * FROM 表名 ORDER BY 列名 ASC/DESC;分页•可以使用LIMIT子句对查询结果进行分页•示例:SELECT * FROM 表名 LIMIT 偏移量, 数量;聚合•可以使用聚合函数(如SUM、COUNT、AVG、MIN和MAX)对查询结果进行统计•示例:SELECT COUNT(*) FROM 表名;SELECT SUM(列名) FROM 表名;5. SQL语句的进阶用法•SQL语句还支持表连接、子查询、视图、索引等高级用法•可以进一步学习和探索这些用法以更好地应对复杂的数据操作需求以上是关于SQL语句简易教程的详细整理,希望对你学习SQL有所帮助。
SQL编程之SQL语⾔基础⼀、SQL语⾔基础1.1 常量与变量常量也称为⽂字值或标量值,是指程序运⾏中始终不变的量。
在 SQL 程序设计过程中,定义常量的格式取决于它所表⽰的值的数据类型。
常量类型常量表⽰说明字符串常量包括在单引号或双引号中,由字母(a~z,A~Z)、数字(0~9)、特殊符号组成。
⼗进制整型常量使⽤不带⼩数点的⼗进制数据表⽰。
⽰例:1234、321、+123、-123⼗六进制整型常量使⽤前缀0x后跟⼗六进制数字串表⽰。
⽇期常量使⽤单引号将⽇期时间字符串括起来。
MySQL是按年-⽉-⽇的顺序表⽰⽇期的。
中间分隔符可以⽤-,也可以⽤/、\、@、%等特征符号。
实型常量有定点表⽰和浮点表⽰两种⽅式。
⽰例:123.4、-123.4、19E24、-83E2位字段值使⽤b'value'符号写位字段值。
value是⼀个⽤0和1写成的⼆进制值。
例如:b'0'显⽰空⽩,b'1'显⽰⼀个笑脸图标。
⽰例:select bin(b'111101'+0),oct(b'111101'+0)布尔常量布尔常量只包含两个可能的值:TRUE和FALSE。
FALSE的数字值为0,TRUE的数字值为1。
NULL值 NULL可适⽤于各种列类型,它通常表⽰'没有值'、'⽆数据'等意义,并且不同于数字类型的0或字符串类型的空字符床。
变量就是在程序执⾏的过程中,其值是可变的。
在MySQL中,存在三种类型的变量:系统变量⽤户变量局部变量系统变量可以分为全局(global)变量和会话(session)变量两种。
1.1.1 全局变量和会话变量全局变量由MySQL启动时由服务器⾃动将它们初始化为默认值,这些默认值可以通过更改 my.ini ⽂件来更改。
会话变量在每次建⽴⼀个新的链接的时候,由MySQL来初始化。
MySQL会将当前所有全局变量的值复制⼀份作为会话变量。
SQL语言教程一、什么是SQL语言?SQL是结构化查询语言的缩写(Structure Query Language),简单的说,SQL是一种关系数据库语言,它可以访问以逻辑集的形式有序地储存在数据库的数据,这些逻辑集称为表。
实际上SQL是一种计算机编程语言,但它比传统的编程语言,如,BASIC,FORTRAN等简单的多。
另外SQL是关系数据库语言,了解了SQL也就理解了关系数据库,因此在整个关系数据库体系中SQL是最基础、也是最重要的部分。
其显著的优点:1、它是一种非过程化的交互式语言,它对数据的处理是以集合为单位的,即每次处理一个记录集而不是每次处理一个单个记录。
SQL对数据提供导航,这意味着用户在高层的数据结构上工作,而不必指定数据的存取方法。
2、SQL是一种所有用户都可以使用的语言,这些用户包括系统管员、数据库管理员,程序开发人员,应用程序员及其它许多的终端用户,SQL可在任何Oracle产品中使用,它可以用于数据库的操作。
如数据查询、修改和删除,对表进行插入、修改和删除行。
控制对数据库和数据对象的存取,保证数据库的一致性和完整性。
3、SQL是所有关系数据库的公共语言。
它是世界公认的标准的关系数据库语言。
用户可方便地移植用SQL语言编写的程序。
ORACLE支持SQL语言的执行。
ORALCE在标准SQL语言的基础上新增加了许多功能,使的它功能更加强大,使用起来更加灵活。
在以后的学习中,如不特殊说明,提到的SQL指ORALCE化的SQL1.1、SQL与SQL*PLUS、PL/SQL几个概念的区别SQL*PLUS:SQL*PLUS是ORACLE提供的一个用来处理ORACLE数据和生成报表的工具,主要实现二个功能A、它提供给用户与ORACLE交互式的界面,在此环境下可自由、灵活、方便的实现ORACLE 的SQL对关系数据的处理活动。
B、输出格式化报表PL/SQL:从V6开始,ORACLE实现了一种过程处理语言,称为PL/SQL,它具有与大多数其它程序设计语言相似的编程结构,它是在SQL的基础上扩充形成的,可以理解为PL/SQL=SQL+过程控制、功能扩充语句。
1.2、其它几个需明确的常用术语ORACLE中的对象:是一个有意义的事务,可在其内部存放信息,我们常谈到的对象类型中表和视图是最常见的。
函数:是施加于数据的操作,它改变数据的特性。
提交:使用COMMIT语句将已修改的数据保存到数据库中。
在此之前对数据库的数据修改只存在各自的缓存区内。
COMMIT是将在缓存区中以修改的内容写到数据库文件中。
回滚:ROLLBACK当为了某各个对话更改数据库之后,由于某种原因不想提交此更改,ORALCE所采取的操作,这是一个把信息恢复到更改前的操作。
保留字:被ORACLE使用的具有特殊含义的字符,不能用做变量名。
1.3、SQL语言的组成1、数据定义语言create,drop,alter2、数据查询语言select3、数据操作语言update,insert,delete4、数据控制语言grant,revoke(撤消权限)二、SQL语言的数据类型CHAR存放定长字符数据最长2000VARCHAR2存放可变长字符数据最长4000NUMBER(L,D)存放数值数据,L代表总位数D代表小数点后位数DATE日期范围公元前4712年1月1日到公元后4712年12月31日NCHAR与CHAR类似,只不过最大长度由数据库使用的字符集决定BLOB二进制大对象,最大长度4GBLONG存放可变字符数据,最大为2GBRAW纯二进制对象,最大长度为2000字节VARCHAR目前等同于CHAR一、字符型char和varchar2数据类型用来存储字符、数据,具有比二种类型的列可以存储任何一个字符。
由于Oracle的空格填充值(即在字符中尾问用空格填充时的空格值)只存储在char列中,而不存varchar2列中,所以用varchar2存数要比用char存数占用的空间少,由于这个理由,在含varchar2列的大表在进行全表扫描比在char列中存储相同数据的表上,进行全表扫描的数据块较少,若应用程序经常需要在含字数大表中扫描时,应存在varchar2中而不存储在char列中,这样可改善程序的性能。
但在决定使用什么数据类型时,性能不是唯一决定的因素,例如,在比较字符串的值时,希望Oracle忽略掉尾部空格,则必须把这些值存储在char列中,因而选什么数据类型,应该关心应用程序关心的语义间的不同。
1、char用来存储固定长度的字符串,在建立具有char列的表时,必须说明该列长度(以字节为单位)。
列的长度1-255间,default值为1。
注意:如果指定的值比较短,则用空格填充该值固定长度,则Oracle返回一个错误信息。
若两个char型字符串比较大小时,若两值长度不同,则在较短值中插入空格。
直到值有相同的长度。
比较时,只有尾部空格数不同,其它部分相同的二个值被认为相等。
2、varchar2存储可变长度的字符串,建立具有varchar2列的表时,说明该列长度(以字节为单位)。
最大长度1-2000之间,对每条记录,该列的每一值都可作为可变长字段来存储,例如,一个列被说明为varchar2数据类型,长度为50,若一条特定记录中类varchar2列给出10个单字节,字符,则就在该列中存储10个字符而不最50个。
两个varchar(2)列比较值时,只须在二个值须相同的字符,且还有相同的长度时才认为相等。
3、varchar目前与varchar2数据类型相同,但在Oracle未来版中,varchar数据类型可能会使用不同的比较语义,所以最好用varchar2数据类型。
二、数字型即number用来存储0,正负,定点数长正负浮点数。
用number数据类型的数字(精度最多为38位十进制数)保证能在运行Oracle的不同系统中移值。
存储在number列中的数字范围。
说明数字列的方法:1)column_name number2)column_name number(精度,小数位数)若没有指出小数的位数,则隐含为没有小数,小数的位数范围。
-84<=x<=127。
注意:若给出的小数位数是负数,则实际数被舍入到小数点左边指定的位数,如,说明为(7,-2)就意味着舍入到最接近的百位数。
三、日期型即date数据类型,用来存储表中的日期和时间,存储的内部有年(包括世纪)、月、日、时、分和秒。
对应于世纪、年、月、日、分和秒。
输入、输出日期时,标准缺省格式,DD-MON-YY。
如:’04-JAN-98’如果输入一个不当前缺省日期格式的日期,则用带有格式掩码的函数to_date。
如,to_date(‘november,13,1992’,’month,dd,yyyy’)dd_mon_yy则yy表示20世纪中的年。
例31-DEC-92表示1992.12.31。
存储时间格式(24小时):HH:MM:SS,若没有输时间,则日期字中时间取缺省值:12:00:00A.M,若没有输日期,只输入了时间,则日期部分取缺省值为当月的第一天,为了输入日期的时间部分,可以使用带有指出时间部分的格式掩码的函数to_date。
如:insert into birthdays(bname,bday)values(‘annie’,to_date(‘13-nov-3210:56am,’dd_mov_yy nn:m i am’);要比较一个含有时间数据的日期,而不希望比较,则可使用函数据trunc,SQL函数sysdate 返回系统的时期和时间。
四、long数据类型用long定义的列可以存储可变长字符数据,最多特性相同,根据式作站的可用内存量可以限制long值的长度。
long数据的使用:在数据字典中用long数类定义的列存储定义视图的稿文,可以在select,update语句中的set子句和insert语句的values子句中使用由long定义的列。
long和logn raw数据的限制。
long和long raw列有许多作用,但使用它们时有限制。
1)每个表中只允许有一个long列。
2)long列不能出现在完整性约束中。
3)在子句where,order by,group by或connect by以及在select语句的distinct操作符中不能使用long列。
4)在sql函数(如substr可insert)中不能引用long列。
5)在子查询的select中或有操作符union,onion all或minus的select中不能使用long列。
6)sql的表达式中不能使用long列。
7)用查询创立表时(create table...as select)或用查询插入一个表或视图(insert into...select...)时不能引用long列。
8)不能用long数据类型说明PL/SQL程序单元的变量。
在设计包含有long或long raw数据的一些表时,把long或long raw列放入一个表中,与它们有关的数据放入另一个表中,然后用完整性约束把二个表连起来,这样设计的结果就能使sql语句只访有关的数据,避免去读整个long或long raw数据,从而提高速度。
例:为了存储有关杂志的信息(包括每篇文本的稿文),可建两个表。
五、Raw和Long Raw数据类型。
对Oracle不能解释的数据,即在不同的系统间传输它们时不能被转换的数据可以使用数据类型Raw和Long Raw。
扩充这两种数据开的目的是将它们用于二进制数和字节串。
Raw相同于Varchar2而Long Raw相同于Long Varchar,但对Raw和Long Raw数据不进行字符集转换,对于Char,Varchar2,Logn数据。
Oracle会自动把它们从数据字符集转换到通过参数Nls_Lang由用户会话所定的字符集,这些就是它们的不同之处。
Oracle在Raw(Logn Raw)数据与Char数据进行互相转换时,把数据看成一个能表示成每4个二进制位为一个位图的十六进制数。
例如,输入或显示一个字节的Raw数据。
‘11001011’时,把它看作’cb’。
Long Raw列不可被索引,Raw可以。
六、空与不空(NULL、NOT NULL)——另一类数据类型空(NULL)在PL*SQL代表另一类数据类型,它们表示缺少任何值换句话是没有数据或是无信息。
空值不同于零,很小的值,空白或其它任何数据,SQL*PLUS对NULL进行特殊处理。
PL*SQL应用这一特殊数据类型是为了正确处理SQL*PLUS中的一些函数,如平均值的统计或找最大、最小值。
空值(NULL)的使用:IS NULL、IS NOT NULL三、SQL*Plus的工作环境SQL*Plus为用户提供了很方便的界面环境,使得用户可在SQL*Plus环境中输入、编辑和运行SQL、SQL*Plus命令和PL/SQL块,也可随时获得帮助信息。