SQL数据库查询语句,包括增,删,改,查等所有语句详细。

上周有个客人问我SQL增删改查怎么用,我给他捋了捋,你看看这些例子熟不熟:
一、增:有4 种方法 1 . 使用insert插入单行数据:语法是insert into <表名> [列名] values <列值>,比如insert into Students(姓名,性别,出生日期) values ('开心朋朋','男','1 9 8 0/6 /1 5 ')。
注意into可以省略,但列名和列值顺序必须对,字符串用单引号。
省略表名会插入所有列。

2 . 使用insert select合并表数据,语法是insert into <新表> <列名> select <旧表列名> from <旧表>,比如insert into tongxunlu('姓名','地址','电子邮件') select name,address,email from Students。
这里into不能省略,而且查询列的数量、类型必须和新表一致。

3 . 使用select into直接创建新表,语法是select <列名> into <表名> from <原表>,比如select name,address,email into tongxunlu from Students。
这个表是查询时才创建的,不能提前存在。

4 . 用union合并插入多行,语法是insert <表名> <列名> select <列值> union select <列值>,比如insert into Students(姓名,性别,出生日期) select '开心朋朋','男','1 9 8 0/6 /1 5 ' union select '蓝色小明','男','1 9 9 8 /8 /2 4 '。
注意两个select的列名、数量、类型要完全一致。

二、删:有2 种方法 1 . 用delete删除特定数据,语法是delete from <表名> [where <条件>],比如delete from a where name='开心朋朋'。
记住delete后面只能加条件,不能加字段名,是整行删除。

2 . 用truncate table清空表数据,语法是truncate table <表名>,比如truncate table tongxunlu。
这个比delete快,但表结构不会变,而且不能有外键依赖。

三、改:用update修改数据 语法是update <表名> set <列名=新值> [where <条件>],比如update tongxunlu set 年龄=1 8 where 姓名='蓝色小名'。
set可以更新多个列,where子句可选,不写就改整表。

四、查:最复杂但最常用的 1 . 普通查询:
查所有:select from a
条件查:select i,j,k from a where f=5
改列名:select name as 姓名 from a where 性别='男'
查空值:select name from a where email is null
加常量列:select name,'唐山' as 地址 from a
限制行数:select top 6 name from a 或 select top 6 0 percent name from a
排序:select name from a where 成绩>=6 0 order by 成绩 desc
2 . 模糊查询:
like:select from a where name like '赵%'(第一个字是赵)
between:select from a where 年龄 between 1 8 and 2 0
in:select name from a where 地址 in ('北京','上海','唐山')
3 . 分组查询:
group by:select studentID as 学员编号, AVG(score) as 平均成绩 from score group by studentID
having:select studentID as 学员编号, AVG(score) as 平均成绩 from score group by studentID having count(score)>1
4 . 多表连接:
内连接:select a.name,b.chengji from a inner join b on a.name=b.name
左外连接:select s.name,c.courseID,c.score from students s left outer join score c on s.scode=c.studentID
右外连接:select s.name,c.courseID,c.score from students s right outer join score c on s.scode=c.studentID
这些我最近在帮团队做测试题用到的,有个地方忘了细说吗?随时喊我补充

如何使用SQL查询数据?SELECT语句的基础用法详解

上周,我在学习SQL查询时,发现SELECT语句真是基础中的基础啊。
比如,提取所有列,就是用个星号(),简单方便。
2 02 3 年,我写了个例子:SELECT FROM Customers; 这样就能快速看表里的全部数据了。

然后,提取特定列,得写具体列名,比如:SELECT CustomerName, City FROM Customers; 这样只取需要的列,传输数据也更高效。

筛选和排序,得用到WHERE和ORDER BY。
比如,我想要筛选出美国的客户,就写:SELECT FROM Customers WHERE Country = 'USA'; 再比如,我想按客户名排序,就写:SELECT FROM Customers ORDER BY CustomerName; 要降序,就加个DESC,像这样:SELECT FROM Customers ORDER BY CustomerName DESC;
说到性能优化,我了解到建立索引很重要,比如:CREATE INDEX idx_country ON Customers (Country); 这样可以在查询时加快数据定位。

JOIN操作也很有用,比如INNER JOIN可以找出两个表匹配的行,SELECT Orders.OrderID, Customers.CustomerName FROM Orders INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;
聚合函数也很有用,比如COUNT可以统计行数,SUM可以计算总和,AVG可以计算平均值,MIN和MAX可以找到最小和最大值。
我试了几个例子,像这样:SELECT COUNT() FROM Customers; 和 SELECT SUM(Salary) FROM Employees;
处理NULL值也很关键,用ISNULL或ISNOTNULL判断NULL,用COALESCE替换NULL。
比如,我想找出城市为NULL的客户,就写:SELECT FROM Customers WHERE City IS NULL;
总的来说,掌握了这些语法和优化技巧,查询和分析数据就变得轻松多了。
不过,有时候也会遇到一些复杂的情况,需要更深入的学习和实践。
你看着办吧,我还需要继续加油。