sql基础
1.什么是关系型数据库. 1.1.优点: 1.容易使用 2.可以在同一时间使用. 3.可以随时间更改.添加,插入,删除等操作. 1.2.数据存储在表中. 对关系数据库而言,所有的数据都存储在表中,表由列(字段)和行(记录)组成. 1.3.使用主键列识别每一个行. 大部分表都包含一个主键,它识别了表中的每一个行,并给他们一个名字.可以选择两个列同时做为主键.不允许每个列单独做为主键. 列的名字被认为是表定义的一部分,与之相比较,行的名字(是行的主键)被认为是表中数据的一部分. 对表的主键的两条规则: 没有主键的列可以包含一个Null.因为Null是一个未知的数据 每一个行都必须有一个不同一表中其他每一行的特性.
2.从表中获取信息. select 语句.(查询) 2.1.目标:从表中获取几个列和行. select employee id, //select子句在结果表中列出了所需要显示的列,这里的顺序便是显示的顺序,如无",",计算机就认为将会出现下一个子句. last_name, credit_limit from l_employees //from子句指定数据所在的表. where credit_limit>20.00 //where表示要在结果中显示哪几行.(条件) order by last_name; //排列标准. ";"表示查询结束.
2.3.select子句概述. 2.3.1 3种形式 select 列
只获取列出的列 按这些列被列出的顺序放置这些列 可以重命名这些列
select *或select 表名.*
获取表中所有的列 排列顺序与表中顺序相同 不能在sql语句中重命名这些列 在添加表中的列以外的其他列时,需要在"*"前输入表名,表名与星号间有个点.
select distinct 列
只获取列出的列 按列出这些列的顺序放置这些列 可以重命名这些列 除去结果中的重复行
2.4.使用select子句获取若干列. 在输出结果表中重命名列名. select employee_id as employee_number, phone_number as extension, last_name, 'excellent worker' as evaluation, //向添加evaluation中添加'excellentworker',注意用单引号. 10 as rating //在rating行中添加10. from l_employee;
2.5.使用select子句获取所有列 select * //查询所有列 from l_employees //from l_employees 表 where manger_id is null //并且条件为manger_id is null项 order by employee_id //按XX列排列 2.6. 获取相异值. 列出不重复的值 select distinet manager_id, //select 语句已经含有排序的功能 employee_id //多行. from l_employees where employee_id in 120,200,300 //可选 order by manager_id desc;
where子句概述 条件 等于和其他: = //文本和日期加 '' > < >= <= <> //不等于 包含测试--特定的清单 in //在某个集合中, 如:credit_limit in (15.00,2.00) not in 范围测试--两个值之间的位置 between //在某个范围内 如:credit_limit between 21.00 and not 匹配--使用通配符 like //phone_number like '%48%' not like //dept_code not like '%a%' Null测试--是否Null is null is 布尔连接符--将简单的条件连接在一起 and or not
like使用 通配符的含义: * 任意长度的字符(包括0) ? 一个字符 # 一个数字 [c-m] 字符的范围 [!c-m] 字符范围之外 [*]或[?]或[#] 表示按字面意思使用,不被认为是通配符
order by 子句 order by 列名 order by 数字 //可以每一列指定排列顺序 每一个列的排列选项 asc 升序(默认) desc 降序 example: select dept_code, last_name from l_employee where not (employee_id=209) order by dept_code, last_name desc; NOTE:默认规则,主要按首先出现的列排列.
|