Sql能做什么?
Sql语句他是针对数据库设计的,建库、建表、建约束,填数据(增、删、改、查)、创建视图、存储过程、赋给用户权限
SQL和T-SQL的区别?
T-SQL作为SQL的扩展语言
SQL的组成
DML(数据操作语言):插入、删除和修改数据库中的数据(insert、delete、update)
DCL(数据控制语言):用来控制存取许可、存取权限(grant、revoke)
DQL(数据查询语言):用来查询数据库中的数据(select)
DDL(数据定义语言):用来建立数据库、数据库对象名和定义列表(create table、deop table)
SQL中的运算符
算数运算符
+ - * / %
赋值运算符
=
比较运算符
Java/C#:< > >= <= != ==
Sql:=(age = 20) > < >= <= <>(标准的不等于) !=(不等于非sql标准)
逻辑运算符
Java/C#:& | !
SQL中:
? and:当且仅当两个布尔表达式都为true时,返回true(和)
? or:当且仅当两个布尔表达式都为false时,返回false(或者)
? not:布尔表达式的值取反
使用insert语句插入数据
语法:insert [into] 表名 (列名)values(值); --into可以省略[ ]
? 每次插入一行数据,不能插入半行(缺少值得的情况下)
注意事项:每个数据的值得数据类型、精度和小数位数必须与相应的列匹配
某一列允许为空值得时候可以使用default关键字来默认
一次性插入多行数据有三种写法:
第一种:insert select语句将现有表中的数据添加有已存在的表中
前提:新建个表
语法:insert into <表名>(列名)
Select<列名>
From 源表名
第二种:通过select into语句将现有表中的数据添加到新标中
前提:删除这个Table_User表
语法:select(列名)
Into<表名>
From <源表名>
第三种:通过union关键字结合数据进行插入
语法:insert into<表名>(列名)
Select<值>union
Select<值>union
………
Select<值>
使用T-SQL更新数据
语法:update 表名 set 列名 = 更新值[where 更新条件]
其中set后面可以紧跟随多个更新值,使用英文的逗号隔开
Where语句可以选择,用来限制更新条件,若不限制,整个表的数据都将被更改
使用T-SQL删除数据
语法:delete from 表名 [where 列名 = 值] 可以加条件删除
Truncate table 表名 ======》删除表中所有数据;后面不能加where条件
注意:Truncate table不能用于有外键约束的表,就是主表中的数据,无论外表是否有相关的数据
Delete 不同,必须先删除外表(从表)中的数据,在删除主表
Truncate table比delete的执行速度快,使用系统资源和事物少,并且删除后会从新编码
彻底删除表
drop table 表名
先执行:(从)delete from Users where scoreid = 4
后执行:(主)delete from Score where id = 4