1.insert语法:
insert into 表名(列1,…… 列n) values(值 1,…… 值 n);
insert into 表名 values(值 1,…… 值 n);
例如:
insert into teacher values ("04","三八")(添加表名为teacher的所有值)
insert into teacherr(tid ,tame) values ("04',"三八") (添加表名为teacher的tid,tname的列表的值)
2.update语法:
update 表名 set
列名1=新值
列名2=新值
where expr(在哪些行生效)
例如:
update teacher set tname="三八" where tid="04"(更改表名为teacher的tname列的值为三八并在列表为tid值等于04的行生效)
3.delete语法:
delete from 表名
where expr(删除那些行)
例如:
delete from teacher where tid="04"(删除teacher表的列名为tid的所有行)
delete from teacher(删除teacher的所有数据)
4.select语法:
select 列名(列1,列2,,列3,列n)
from 表名
where expr
例如:
select * from teacher(查询teacher的所有数据)
select tname from teacher where tid="04"(在teacher表查询=tid等于4的tanme )
5.select查询模型:
列是变量
变量可以计算
where是表达式,值为真假(1为true,0为false)
6.特殊的NNLL类型:
NULL 不是假,也不是真,而是"空"
任何运算符,判断符碰到NULL,都得NULL
NULL的判断只能用is null,is not null
NULL 影响查询速度,一般避免使值为NULL
例如:
SELECT * FROM tnp WHERE name is not null
SELECT * FROM tnp WHERE name is null
7.where常用匹配符:
like 模糊匹配 % 通配任意字符 _ 通配单一字符
8.select 5种子句:
(1)Where 条件查询 :
where expression 用法:expression为真,则该行取出
where常用运算符:
(2)group by 分组 :
group by 作用:把行 按 字段 分组 语法:group by col1,col2,...colN 运用场合 常见于统计场合,如按栏目计算帖子数, 统计每个人的平均成绩等.
group与统计函数:
max : 求最大
min : 求最小
sum : 求总和
avg : 求平均
count:求总行数
(3)having 筛选 :
having与where异同点:
having与where类似,可筛选数据 where后的表达式怎么写,having就怎么写
where针对表中的列发挥作用,查询数据 having针对查询结果中的列发挥作用,筛选数据
(4)order by 排序 :
按一个或多个字段对查询结果进行排序
默认排序:升续排列
(5)limit 限制结果条数:
limit [offset,] N,限制结果取N条
用法: limit [偏移量,],取出条目
9.子查询:
子查询就是在原有的查询语句中, 嵌入新的查询,来得到我们想要的结果集。 一般根据子查询的嵌入位置分为, where型子查询,from型子查询
(1)where型子查询:
where型子查询即是:把内层sql语句查询的结果作为外层sql查询的条件.
典型语法: select * from tableName where colName = (select colName from tbName where ....) {where colName in (select colName from tbName where ..)}
典型案例: 1:查询最新的一条商品 2:查询出某大栏目下的所有商品
(2)exists型子查询:
exists即:外层sql查询所查到的行代入内层sql查询,要使内层查询能够成立 查询可以与in型子查询互换,但效率要高.
典型语法: select * from tablename where exists(select * from tableName where ...)
典型案例: 1:查询出某大栏目下的所有商品
(3)from型子查询:
from型子查询即:把内层sql语句查询的结果作为临时表供外层sql语句再次查询.
典型语法: select * from (select * from tableName where ...) where....
典型案例: 1:查询出每个栏目下的最新商品 2:BBS中查询每个栏目下的最新帖子
10.连接查询:
左连接的语法. Select Ltable.* ,Rtable.* from Ltable left join Rltable on Ltable.colName = Rtable.colName
内连接的语法. Select Ltable.* ,Rtable.* from Ltable inner join Rltable on Ltable.colName = Rtable.colName
左右连接与内连接的区别:
1:左右连接可互换 A left join B 等价于B right join A
2:内连接是左右连接的交集
3:mysql没有外连接
11、创建数据库
CREATE DATABASE [database-name]
12、删除数据库
DROP DATABASE dbname1,dbname2…
13、备份数据库
--- 创建 备份数据的 device
USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
--- 开始 备份 BACKUP DATABASE pubs TO testBack
14、创建表
create table 表名 (
列1 列类型[ 列属性 默认值],
列2 列类型 [列属性 默认值],
.....
列n列类型 [ 列属性 默认值] );
engine = 存储引擎
charset = 字符集
例如: CREATE TABLE S(SNO CHAR(10) NOT NULL ,SN VARCHAR(20),AGE INT,SEX CHAR(2) DEFAULT '男' ,DEPT VARCHAR(20));
根据已有的表创建新表:
A:create table tab_new like tab_old (使用旧表创建新表)
B:create table tab_new as select col1,col2… from tab_old definition only
15、删除表
drop table tabname
16、增加字段
Alter table tabname ADD <列名><数据类型>[NULL|NOT NULL]
17、修改字段
ALTER TABLE<表名>ALTER COLUMN <列名><数据类型>[NULL|NOT NULL]
18、删除字段
ALTER TABLE<表名>DROP COLUMN <列名><数据类型>[NULL|NOT NULL]
19、添加主键
Alter table tabname add primary key(col)
20、删除主键
Alter table tabname drop primary key(col)
21、创建索引
create [unique] index idxname on tabname(col….)
22、删除索引
drop index idxname 注:索引是不可更改的,想更改必须删除重新建。
23、创建视图
create view viewname as [select statement ]
24、删除视图
drop view viewname