第三章 用SQL语句操作数据
1、SQL的定义:Structured Query Language 结构化查询语言
2、T-SQL的定义:T-SQL是SQL的增强版
对功能进行了扩充:如变量说明、流程控制、功能函数
3、SQL的组成
a) DDL-DataDefinitionLanguage-数据定义语言
用来建立数据库、数据库对象和定义表的列
b) DML-DataManipulationLanguage-数据操作语言
插入insert、删除delete 和修改update 数据库中的数据
c) DQL-DataQueryLanguage-数据查询语言
用来查询数据库中的数据-select
d) DCL-DataControlLanguage-数据控制语言
用来控制存取许可、存取权限等
4、运算符
a) 算术运算符:加+、减-、乘*、除/、求余%
b) 赋值运算符:=
c) 逻辑运算符:与-AND或-OR非-NOT
d) 比较运算符:
>大于 <小于 =等于
<>(不等于) !=(非92标准)
>=大于等于<=小于等于
5、插入数据
l 插入一行数据的语法
INSERTINTO 表名(列名) VALUES(列值);
n INTO可省略
n 列名可省略,省略后,依次插入所有的列
n 多个列名和多个列值用逗号【,】分隔。
注:插入数据的注意事项:
(1)每次插入一行数据,不能只插入半行或者几列数据插入的数据是否有效将按照整行的完整性的要求来检验。
(2)每个数据值的数据类型、精度和小数位数必须与相应的列匹配
(3)不能为标识列指定值
(4)如果在设计表的时候就指定了某列不允许为空,则必须插入数据
(5)插入的数据项,要求符合检查约束的要求
(6)具有缺省值(默认值)的列,可以使用DEFAULT(缺省)关键字来代替插入的数值
l 插入多条数据——一次插入多行数据:
(1)第一种方法 通过INSERT SELECT语句将现有表中的数据添加到已存在的表中。
语法:
insert into <新表名>(列名)
select <列名>
from <源表名>
注:从源表名中查询列名的值插入到新表名中。新表必须先创建出结构,必须有列。
(2)第二种方法 通过select into语句将现有表中的数据添加到新表中【查找资源创建新表】
语法:
select (列名)
into <新表名>
from <源表名>
注:从源表名中查询列名生成新表名;新表不需要提前创建。
(3)第三种方法 通过UNION关键字合并数据进行插入【UNION==加号】
语法:
insert into <表名>(列名)
select <列名> union
select <列名> union
……
select <列名>
注:第一种和第二种需要新表或者会生成新表。第三种直接在本表中一次插入多条数据。最后一条没有UNION
6、更新【修改】语法:
update 表名 set 列名 = 更新值
[where 更新条件]
7、删除语法:
(1) delete [from] 表名 [where <删除条件>]
(2) truncate table 表名
n delete可以选择性删除,删除以后标识列到多少了还能继续保存着(不会重新开始编号)
n truncate 直接删除表中的所有数据,保留表的结构。标识列回到最开始!
n truncate table 表名 相当于 delete from table
每个表中都使用单行插入数据的方法插入10条记录,然后删除其中三条(使用三条语句删除)、修改其中的两条(使用两条语句修改)
n 注:实际工作中,不建议使用TRUNCATE TABLE语句,因为它删除的数据不能被回复还原。
SQL语言
——不区分大小写,一般关键字用大写,显示突出。
——【;】分号是T-SQL语句的终止符,不是必需的。
——换行不代表结束
——命名:使用Java标识符的命名方法,见名知意。
——查询所有的语法:select * from 表名
——SQL除了字符用单引号【‘】里面是中文,其他情况下全部是英文,值得注意的是英文是半角和中文是圆角,在语句中使用的是英文,包括各种符号!!!