增加记录。
在使用sql数据库的时候,我们也许会需要一次像数据库中添加多条记录,那么我们可以使用sql语句来实现,该语句具体如下:
-添加一条记录。
insert into tablename(col1,col2,col3) values (1,2,3)
-添加多条记录。
insert into tablename(col1,col2,col3)
select 3,4,5
union all
select 6,7,8
-从另外的一张表中读取多条数据添加到新表中。
insert into tablename(col1,col2,col3)
select a,b,c from tablea
-从其他的多张表中读取数据添加到新表中。
insert into tablename(col1,col2,col3)
select a,b,c from tablea where a=1
union all
select a,b,c from tableb where a=2
上边**中的into都可以省略!
上边**中的union all如果换成union,则相同记录只插入一次,不会重复插入。
另外一种方法是sql server2008特有的,所以,如果你不是sql server2008,就不能使用这种方法了。
insert into mytable(id,name)values(7,'003'),8,'004'),9,'005')
更新记录。sqlserverupdate语句的语法如下:
set=wherech_condition>
删除记录。语法:
delete from table_name
where condition]
例如:删除某行delete from person where lastname=‘xx’
例如:删除所有行delete from table_name或者delete *from table_name
事务是对数据库执行的一个操作单位,它是以逻辑顺序完成的工作单元或工作序列,无论是用户手工操作,还是由程序进行的自动操作,在试用sql的关系型数据库里,事务是对数据库所做的一个或多个修改,比如利用update语句对表里某个人的姓名进行修改时,就是执行一个事务。
一个事务可以使一个或做个dml语句,在管理事务时,任何指定的事务。
dml语句组)都必须作为一个整体来完成,否则其中任何一条语句都不会完成。
commit命令用于把事务所做的修改保存到数据库,它把上一个commit或rollback命令之后的全部事务都保存到数据库。
语法:commit [work];
rollback命令用于撤销还没有被保存到数据库的命名,只能用于撤销上一个commit或rollback命令之后的事务。
语法:rollback [work];
s**epoint命令是事务过程中的一个逻辑点,我们可以把事务回退到这个点,而不必回退整个事务。
语法:s**epoint s**epoint_name
回退到保存点的命令语法:
rollback to s**epoint_name;
release s**epoint s**epoint_name;删除创建的保存点。
set transaction命令初始化数据库事务,可以指定事务的特性。
set transaction read write;
set transaction read only;
read write用于对数据库进行查询和操作数据库的事务,read only用于只进行查询的事务。read only很适合生成报告,而且能够提高事务完成的速度。如果事务是read write类型的,数据库必须对数据库对象进行加锁,从而在多个事务同时发生时保持数据完整性,如果事务是read only,数据库就不会建立锁定,这样就会提高事务的性能。
select语句:select [*all|distinct column1,column2] from table1[ ,table2]
from语句:from table1[,table2]
where语句:
select [all | distinct column1,column2]
from table1[,table2]
where [condistion1 |expression1][and|or condition2|expression2]
count语法:
sum语法:
**g语法:
**g函数参数必须为数值型。
max语法:
例:min同上。
串接:oracle中语法:column_namecolumn_name[ column_name ]
sql server中语法:column_namecolumn_name [column_name ]
例题:select last_namefirst_name name from employee_tbl
mysql中语法:concat(column_namecolumn_name [column_name])
translate函数搜索字符串里的字符并查找特定的字符标记找到的位置,然后用替代字符串对应的字符替换它,语法:
translate (character set,value1,value2)
例:selecet city,translate(city,'ind','abc')from employee。将每个i替换为a,每个n替换为b,每个d替换为c
replace函数:用于把某个字符(或多个字符)都替换为指定的一个字符(或多个字符),其使用类似于translate函数,只是它是把一个字符或多个字符串替换到另一个字符串里,其语法:
replace('value','value',[null]'value')
例:select city,replace(city,'i','z') from employee_tbl;
upper函数:可以把字符串里的小写字母转化为大写,语法:upper(character string)
例:select upper(city)from employee_tbl;
lower函数:与上相反。
substr函数:获取字符串函数。
oracle中语法:substr(column name,starting positon,length)
例:select emp_id,substr(emp_id,1,3) from employee_tbl;
sql server中语法:substring(column name,starting positon,length)
例:select emp_id,substring(emp_id,1,3) from employee_tbl;
等值结合:关键字:inner join……on……
语法:select
from table1 inner join table2 on
自然连接:关键字 natural join……on……
外连接:语法:
from table1
right |left |full}[outer]join
on table2
子查询:子查询与insert into
子查询与update
子查询与delete
组合查询关键字 union不包含重复记录。
组合查询关键字 union all,包含重复记录。
intersect组合两个select语句,但只返回第一个select语句里与第二个select语句里一样的记录。
except操作符组合两个select语句,返回第一个select语句里有,第二个select语句里没有的记录。
语法同上:组合查询里试用order by
函数。dateadd(
]参数是合法的日期表达式。是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。
]参数可以是下列的值:
语法。isnull ( check_expression , replacement_value )
参数。check_expression
将被检查是否为 null的表达式。check_expression 可以是任何类型的。
replacement_value
在 check_expression 为 null时将返回的表达式。replacement_value 必须与 check_expresssion 具有相同的类型。
返回类型。返回与 check_expression 相同的类型。
注释。如果 check_expression 不为 null,那么返回该表达式的值;否则返回 replacement_value。
示例。a. 将 isnull 与 **g 一起使用。
convert(
]规定目标数据类型(带有可选的长度)。[含有需要转换的值。规定日期/时间的输出格式。
可以使用的值:实例。
SQL学习笔记
目录。1 数据库创建 1 2 创建表 1 3 表结构查询 2 4 在表中增加列 3 5 修改列的约束属性 3 6 使用insert into 语句添加数据 3 7 使用 select into 添加相关的数据到一个新表中 4 8 间接修改列为非空值的办法 4 9 更为完善的create table ...
SQL学习笔记
where子句。比较运算符 范围说明 between a and b,not between a and b.可选值列表 in not in 一般用于嵌套查询。模式匹配 like not like 是否空值 is null is not null 上述条件的逻辑组合 and or not 内容大小写...
sql学习笔记
与内连接不同的是,外连接不只列出与连接条件相匹配的行,而是列出左表 左外连接时 右表 右外连接时 或两个表 全外连接时 中所有符合搜索条件的数据行。交叉连接 crossjoin 没有where子句,它返回连接表中所有数据行的笛卡尔积,其结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二...