sql常用查询语句(1)
- 格式:doc
- 大小:41.50 KB
- 文档页数:26
mssql 查询语法
MSSQL(Microsoft SQL Server)是一种关系型数据库管理系统,其查询语法与标准SQL(Structured Query Language)类似。
以下是常用的MSSQL查询语法:
1. SELECT语句:用于从表中检索数据。
示例:SELECT 列名1, 列名2 FROM 表名WHERE 条件;
2. INSERT语句:用于向表中插入新的行数据。
示例:INSERT INTO 表名(列名1, 列名2) VALUES (值1, 值
2);
3. UPDATE语句:用于更新表中现有行的数据。
示例:UPDATE 表名SET 列名1 = 新值1, 列名2 = 新值2 WHERE 条件;
4. DELETE语句:用于从表中删除行数据。
示例:DELETE FROM 表名WHERE 条件;
5. JOIN语句:用于合并多个表的数据。
示例:SELECT 列名FROM 表名1 INNER JOIN 表名2 ON 表名1.列名= 表名2.列名;
6. GROUP BY语句:用于对结果进行分组统计。
示例:SELECT 列名, COUNT(*) FROM 表名GROUP BY 列名;
7. ORDER BY语句:用于对结果进行排序。
示例:SELECT 列名FROM 表名ORDER BY 列名
ASC/DESC;
8. WHERE语句:用于筛选满足条件的数据。
示例:SELECT 列名FROM 表名WHERE 条件;
以上是一些常用的MSSQL查询语法,希望对您有帮助。
如果有更具体的问题,请提供详细信息以便给出更精确的答案。
SQL常用语句,子查询整理一、SQL子查询语句1、单行子查询select ename,deptno,salfrom empwhere deptno=(select deptno from dept where loc='NEW YORK');2、多行子查询SELECT ename,job,salFROM EMPWHERE deptno in ( SELECT deptno FROM dept WHERE dname LIKE 'A%');3、多列子查询SELECT deptno,ename,job,salFROM EMPWHERE (deptno,sal) IN (SELECT deptno,MAX(sal) FROM EMP GROUP BY deptno);4、内联视图子查询(1)SELECT ename,job,sal,rownumFROM (SELECT ename,job,sal FROM EMP ORDER BY sal);(2)SELECT ename,job,sal,rownumFROM ( SELECT ename,job,sal FROM EMP ORDER BY sal)WHERE rownum<=5;5、在HA VING子句中使用子查询SELECT deptno,job,A VG(sal) FROM EMP GROUP BY deptno,job HA VING A VG(sal)>(SELECT sal FROM EMP WHERE ename='MARTIN');6、内连接左连接右连接举例;select sys_er_id ,sys_er_code from sys_user inner join XZFW_BANJIE on sys_er_id=XZFW_erid小例子:select top 10 * from sys_user where user_code not in (select user_code from sys_user where user_code like '%yzj%')select top 2 * from (select top 2 * from ers order by us_username desc) users order by us_username desc7、删除约束语句:alter table dbo.XZFW_SYS_USER drop CONSTRAINT FK1772E1891324F6788、记录数查询select count(user_pass) from sys_userselect count(*) from sys_user where user_code!='admin'9、在范围之间取值( between ... and ..用法)select sys_er_id,sys_er_name,xzfw_shoujian.caseid from sys_user inner join xzfw_shoujian on sys_er_id=xzfw_erid where user_id between 5 and 100或select * from sys_user where user_id<10 and user_id>1二、SQL基本语句下列语句部分是Mssql语句,不可以在access中使用。
[tp3.2.1]sql查询语句(⼀)基本查询⽅式字符串条件查询,索引数组条件查询对象条件查询SQL语句⼤⼩写是⼀样的,但是,执⾏的时候有⼀个⼩写到⼤写的转换,所以最好写⼤写$condition=new \stdClass();//对象形式查询stdClass是php内置类,可以理解为⼀个空类,这⾥要把条件作为字段保存到其中,⽽反斜杠\ 是将命名空间设置为根⽬录,否则会导致当前⽬录找不到此类。
表达式查询⼤于⼩于等于⾃定义表达式格式:$map['字段名']=array('表达式','查询条件');<?php// 本类由系统⾃动⽣成,仅供测试⽤途namespace Home\Controller;use Think\Model;use Think\Controller;class IndexController extends Controller {public function index() {// echo '<meta content-type=text/html;charset=utf-8/>';echo '<pre>';// $user=new Model('User');// var_dump( $user->select());$user = M ( 'User' );// var_dump($user->where('id=5 AND user="樱桃⼩丸⼦"')->select());// $condition['id']=5;// $condition['user']="樱桃⼩丸⼦";// var_dump($user->where($condition)->select());// //上⾯两条条件是AND的关系// $condition['_logic']="OR";// var_dump($user->where($condition)->select());$condition = new \stdClass (); // 对象形式查询// 前⾯的反斜杠表⽰按系统提供的查找std类$condition->id = 5;$condition->user = '樱桃⼩丸⼦';$condition->_logic = 'OR';var_dump ( $user->where ( $condition )->select () );}public function query() {$user = M ( 'User' );echo '<pre>';// $map['id']=array('eq',5);//这⾥到map1是随便起到,没有规定// $map['id']=array('neq',5);//id不等于5// $map['id']=array('gt',5);//id⼤于5// $map['id']=array('egt',5);//⼤于等于// $map['id']=array('lt',5);//⼩于// $map['id']=array('elt',5);//⼩于// 模糊查询,有三种// $map['user']=array('LIKE','%⼩%');//第⼀种,单⼀条件// $map['user']=array('notLIKE','%⼩%');//第⼆种, ⼤⼩写都⽆所谓 // 注意,这⾥not like没有空格的// 多条件模糊查询// $map['user']=array('like',array('%⼩%','%蜡%'),'and');// between - 区间查找,从m到n// $map['id']=array('between','5,7');//找出5到7之间的(5 6 7)// $map['id']=array('between',array('5','7'));//这是另⼀种形式// not between - 注意中间四是有⼀个空格的// $map['id']=array('not between','5,7');// in// $map['id']=array('in','5,6,8');// $map['id']=array('in',array('5','7','8'));// not in// $map['id']=array('not in','5,6,8');// $map['id']=array('not in',array('5','7','8'));// ⾃定义查询 - exp$map['id']=array('exp','=5');$map['id']=array('exp','>10');// 构建⼀个复杂点的$map ['id'] = array ('exp','=5');$map ['user'] = array ('exp','="樱桃⼩丸⼦"');$map ['_logic'] = 'or';var_dump ( $user->where ( $map )->select () );}}。
SQL查询语句大全语句功能1、数据操作Select --从数据库表中检索数据行和列Insert --向数据库表添加新数据行Delete --从数据库表中删除数据行Update --更新数据库表中的数据2、数据定义Create TABLE --创建一个数据库表Drop TABLE --从数据库中删除表Alter TABLE --修改数据库表结构Create VIEW --创建一个视图Drop VIEW --从数据库中删除视图Create INDEX --为数据库表创建一个索引Drop INDEX --从数据库中删除索引Create PROCEDURE --创建一个存储过程Drop PROCEDURE --从数据库中删除存储过程Create TRIGGER --创建一个触发器Drop TRIGGER --从数据库中删除触发器Create SCHEMA --向数据库添加一个新模式Drop SCHEMA --从数据库中删除一个模式Create DOMAIN --创建一个数据值域Alter DOMAIN --改变域定义Drop DOMAIN --从数据库中删除一个域3、数据控制GRANT --授予用户访问权限DENY --拒绝用户访问REVOKE --解除用户访问权限4、事务控制COMMIT --结束当前事务ROLLBACK --中止当前事务SET TRANSACTION --定义当前事务数据访问特征5、程序化SQLDECLARE --为查询设定游标EXPLAN --为查询描述数据访问计划OPEN --检索查询结果打开一个游标FETCH --检索一行查询结果CLOSE --关闭游标PREPARE --为动态执行准备SQL 语句EXECUTE --动态地执行SQL 语句DESCRIBE --描述准备好的查询6、局部变量declare @id char(10)--set @id = '10010001'select @id = '10010001'7、全局变量---必须以@@开头8、IF 语句declare @x int @y int @z intselect @x = 1 @y = 2 @z=3if @x > @yprint 'x > y' --打印字符串'x > y'else if @y > @zprint 'y > z'else print 'z > y'9、CASE 语句use panguupdate employeeset e_wage =casewhen job_level = ’1’ then e_wage*1.08 when job_level = ’2’ then e_wage*1.07 when job_level = ’3’ then e_wage*1.06 else e_wage*1.05end10、WHILE CONTINUE BREAK 语句declare @x int @y int @c intselect @x = 1 @y=1while @x < 3beginprint @x --打印变量x 的值while @y < 3beginselect @c =100*@x+ @yprint @c --打印变量c 的值select @y = @y + 1endselect @x = @x + 1select @y = 1end11、WAITFOR语句--例等待1 小时2 分零3 秒后才执行Select 语句waitfor delay ’01:02:03’select * from employee--例等到晚上11 点零8 分后才执行Select 语句waitfor time ’23:08:00’select * from employee12、Select语句select *(列名) from table_name(表名) where column_name operator valueex:(宿主)select * from stock_information where stockid = str(nid)stockname = 'str_name'stockname like '% find this %'stockname like '[a-zA-Z]%' --------- ([]指定值的范围)stockname like '[^F-M]%' --------- (^排除指定范围)--------- 只能在使用like关键字的where子句中使用通配符)or stockpath = 'stock_path'or stocknumber < 1000and stockindex = 24not stocksex = 'man'stocknumber between 20 and 100stocknumber in(10,20,30)order by stockid desc(asc) --------- 排序,desc-降序,asc-升序order by 1,2 --------- by列号stockname = (select stockname from stock_information where stockid = 4)--------- 子查询--------- 除非能确保内层select只返回一个行的值,--------- 否则应在外层where子句中用一个in限定符select distinct column_name form table_name --------- distinct指定检索独有的列值,不重复select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_nameselect stockname , "stocknumber" = count(*) from table_name group by stockname--------- group by 将表按行分组,指定列中有相同的值having count(*) = 2 --------- having选定指定的组select *from table1, table2where table1.id *= table2.id -------- 左外部连接,table1中有的而table2中没有得以null表示table1.id =* table2.id -------- 右外部连接select stockname from table1union [all] ----- union合并查询结果集,all-保留重复行select stockname from table213、insert 语句insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")value (select Stockname , Stocknumber from Stock_table2)---value为select语句14、update语句update table_name set Stockname = "xxx" [where Stockid = 3]Stockname = defaultStockname = nullStocknumber = Stockname + 415、delete语句delete from table_name where Stockid = 3truncate table_name ----------- 删除表中所有行,仍保持表的完整性drop table table_name --------------- 完全删除表16、alter table*** --- 修改数据库表结构alter table database.owner.table_name add column_name char(2) null .....sp_help table_name ---- 显示表已有特征create table table_name (name char(20), age smallint, lname varchar(30))insert into table_name select ......... ----- 实现删除列的方法(创建新表)alter table table_name drop constraint Stockname_default ---- 删除Stockname的default约束17、常用函数----统计函数----AVG --求平均值COUNT --统计数目MAX --求最大值MIN --求最小值SUM --求和--AVGuse panguselect avg(e_wage) as dept_avgWagefrom employeegroup by dept_id--MAX--求工资最高的员工姓名use panguselect e_namefrom employeewhere e_wage =(select max(e_wage)from employee)--STDEV()--STDEV()函数返回表达式中所有数据的标准差--STDEVP()--STDEVP()函数返回总体标准差--VAR()--VAR()函数返回表达式中所有值的统计变异数--VARP()--VARP()函数返回总体变异数----算术函数----/***三角函数***/SIN(float_expression) --返回以弧度表示的角的正弦COS(float_expression) --返回以弧度表示的角的余弦TAN(float_expression) --返回以弧度表示的角的正切COT(float_expression) --返回以弧度表示的角的余切/***反三角函数***/ASIN(float_expression) --返回正弦是FLOAT 值的以弧度表示的角ACOS(float_expression) --返回余弦是FLOAT 值的以弧度表示的角ATAN(float_expression) --返回正切是FLOAT 值的以弧度表示的角ATAN2(float_expression1,float_expression2)--返回正切是float_expression1 /float_expres-sion2的以弧度表示的角DEGREES(numeric_expression)--把弧度转换为角度返回与表达式相同的数据类型可为--INTEGER/MONEY/REAL/FLOAT 类型RADIANS(numeric_expression) --把角度转换为弧度返回与表达式相同的数据类型可为--INTEGER/MONEY/REAL/FLOAT 类型EXP(float_expression) --返回表达式的指数值LOG(float_expression) --返回表达式的自然对数值LOG10(float_expression)--返回表达式的以10 为底的对数值SQRT(float_expression) --返回表达式的平方根/***取近似值函数***/CEILING(numeric_expression) --返回>=表达式的最小整数返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型FLOOR(numeric_expression) --返回<=表达式的最小整数返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型ROUND(numeric_expression) --返回以integer_expression 为精度的四舍五入值返回的数据--类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型ABS(numeric_expression) --返回表达式的绝对值返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型SIGN(numeric_expression) --测试参数的正负号返回0 零值1 正数或-1 负数返回的数据类型--与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型PI() --返回值为π即3.1415926535897936RAND([integer_expression]) --用任选的[integer_expression]做种子值得出0-1 间的随机浮点数18、字符串函数ASCII() --函数返回字符表达式最左端字符的ASCII 码值CHAR() --函数用于将ASCII 码转换为字符--如果没有输入0 ~ 255 之间的ASCII 码值CHAR 函数会返回一个NULL 值LOWER() --函数把字符串全部转换为小写UPPER() --函数把字符串全部转换为大写STR() --函数把数值型数据转换为字符型数据LTRIM() --函数把字符串头部的空格去掉RTRIM() --函数把字符串尾部的空格去掉LEFT(),RIGHT(),SUBSTRING() --函数返回部分字符串CHARINDEX(),PATINDEX() --函数返回字符串中某个指定的子串出现的开始位置SOUNDEX() --函数返回一个四位字符码--SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0值DIFFERENCE() --函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异 --0 两个SOUNDEX 函数返回值的第一个字符不同--1 两个SOUNDEX 函数返回值的第一个字符相同--2 两个SOUNDEX 函数返回值的第一二个字符相同--3 两个SOUNDEX 函数返回值的第一二三个字符相同--4 两个SOUNDEX 函数返回值完全相同QUOTENAME() --函数返回被特定字符括起来的字符串/*select quotename('abc', '{') quotename('abc')运行结果如下----------------------------------{{abc} [abc]*/REPLICATE() --函数返回一个重复character_expression 指定次数的字符串/*select replicate('abc', 3) replicate( 'abc', -2)运行结果如下----------- -----------abcabcabc NULL*/REVERSE() --函数将指定的字符串的字符排列顺序颠倒REPLACE() --函数返回被替换了指定子串的字符串/*select replace('abc123g', '123', 'def')运行结果如下----------- -----------abcdefg*/SPACE() --函数返回一个有指定长度的空白字符串STUFF() --函数用另一子串替换字符串指定位置长度的子串19、数据类型转换函数----CAST() 函数语法如下CAST() (<expression> AS <data_ type>[ length ])CONVERT() 函数语法如下CONVERT() (<data_ type>[ length ], <expression> [, style])select cast(100+99 as char) convert(varchar(12), getdate())运行结果如下------------------------------ ------------199 Jan 15 200020、日期函数----DAY() --函数返回date_expression 中的日期值MONTH() --函数返回date_expression 中的月份值YEAR() --函数返回date_expression 中的年份值DATEADD(<datepart> ,<number> ,<date>)--函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期DATEDIFF(<datepart> ,<number> ,<date>)--函数返回两个指定日期在datepart 方面的不同之处DATENAME(<datepart> , <date>) --函数以字符串的形式返回日期的指定部分DATEPART(<datepart> , <date>) --函数以整数值的形式返回日期的指定部分GETDATE() --函数以DATETIME 的缺省格式返回系统当前的日期和时间21、系统函数----APP_NAME() --函数返回当前执行的应用程序的名称COALESCE() --函数返回众多表达式中第一个非NULL 表达式的值COL_LENGTH(<'table_name'>, <'column_name'>) --函数返回表中指定字段的长度值COL_NAME(<table_id>, <column_id>) --函数返回表中指定字段的名称即列名DATALENGTH() --函数返回数据表达式的数据的实际长度DB_ID(['database_name']) --函数返回数据库的编号DB_NAME(database_id) --函数返回数据库的名称HOST_ID() --函数返回服务器端计算机的名称HOST_NAME() --函数返回服务器端计算机的名称IDENTITY(<data_type>[, seed increment]) [AS column_name])--IDENTITY() 函数只在Select INTO 语句中使用用于插入一个identity column列到新表中/*select identity(int, 1, 1) as column_nameinto newtablefrom oldtable*/ISDATE() --函数判断所给定的表达式是否为合理日期ISNULL(<check_expression>, <replacement_value>) --函数将表达式中的NULL 值用指定值替换ISNUMERIC() --函数判断所给定的表达式是否为合理的数值NEWID() --函数返回一个UNIQUEIDENTIFIER 类型的数值NULLIF(<expression1>, <expression2>)--NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1 的值22、数学函数1.绝对值S:select abs(-1) valueO:select abs(-1) value from dual2.取整(大)S:select ceiling(-1.001) valueO:select ceil(-1.001) value from dual3.取整(小)S:select floor(-1.001) valueO:select floor(-1.001) value from dual4.取整(截取)S:select cast(-1.002 as int) valueO:select trunc(-1.002) value from dual5.四舍五入S:select round(1.23456,4) value 1.23460O:select round(1.23456,4) value from dual 1.23466.e为底的幂S:select Exp(1) value 2.7182818284590451O:select Exp(1) value from dual 2.718281827.取e为底的对数S:select log(2.7182818284590451) value 1O:select ln(2.7182818284590451) value from dual; 1 8.取10为底对数S:select log10(10) value 1O:select log(10,10) value from dual; 19.取平方S:select SQUARE(4) value 16O:select power(4,2) value from dual 1610.取平方根S:select SQRT(4) value 2O:select SQRT(4) value from dual 211.求任意数为底的幂S:select power(3,4) value 81O:select power(3,4) value from dual 8112.取随机数S:select rand() valueO:select sys.dbms_random.value(0,1) value from dual;13.取符号S:select sign(-8) value -1O:select sign(-8) value from dual -1----------数学函数14.圆周率S:Select PI() value 3.1415926535897931O:不知道15.sin,cos,tan 参数都以弧度为单位例如:select sin(PI()/2) value 得到1(SQLServer)16.Asin,Acos,Atan,Atan2 返回弧度17.弧度角度互换(SQLServer,Oracle不知道) DEGREES:弧度-〉角度RADIANS:角度-〉弧度---------数值间比较18. 求集合最大值S:select max(value) value from(select 1 valueunionselect -2 valueunionselect 4 valueunionselect 3 value)aO:select greatest(1,-2,4,3) value from dual19. 求集合最小值S:select min(value) value from(select 1 valueunionselect -2 valueunionselect 4 valueunionselect 3 value)aO:select least(1,-2,4,3) value from dual20.如何处理null值(F2中的null以10代替)S:select F1,IsNull(F2,10) value from TblO:select F1,nvl(F2,10) value from Tbl--------数值间比较21.求字符序号S:select ascii('a') valueO:select ascii('a') value from dual22.从序号求字符S:select char(97) valueO:select chr(97) value from dual23.连接S:select '11'+'22'+'33' valueO:select CONCAT('11','22')||33 value from dual 23.子串位置 --返回3S:select CHARINDEX('s','sdsq',2) valueO:select INSTR('sdsq','s',2) value from dual23.模糊子串的位置 --返回2,参数去掉中间%则返回7S:select patindex('%d%q%','sdsfasdqe') valueO:oracle没发现,但是instr可以通过第四霾问刂瞥鱿执问?BR>select INSTR('sdsfasdqe','sd',1,2) value from dual 返回624.求子串S:select substring('abcd',2,2) valueO:select substr('abcd',2,2) value from dual25.子串代替返回aijklmnefS:Select STUFF('abcdef', 2, 3, 'ijklmn') valueO:Select Replace('abcdef', 'bcd', 'ijklmn') value from dual26.子串全部替换S:没发现O:select Translate('fasdbfasegas','fa','我' ) value from dual27.长度S:len,datalengthO:length28.大小写转换 lower,upper29.单词首字母大写S:没发现O:select INITCAP('abcd dsaf df') value from dual30.左补空格(LPAD的第一个参数为空格则同space函数)。
SQ基础查询(一) 选择列表选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。
1、选择所有列例如,下面语句显示testtable表中所有列的数据:Select * FROM testtable2、选择部分列并指定它们的显示次序查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。
例如:Select nickname,email FROM testtable3、更改列标题在选择列表中,可重新指定列标题。
定义格式为:列标题=列名列名列标题如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题:Select 昵称=nickname,电子邮件=email FROM testtable4、删除重复行Select语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。
使用DISTINCT选项时,对于所有重复的数据行在Select返回的结果集合中只保留一行。
5、限制返回的行数使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。
例如:Select TOP 2 *FROM testtable Select TOP 20 PERCENT * FROM testtable(二) FROM子句FROM子句指定Select语句查询及与查询相关的表或视图。
在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。
在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。
例如在usertable和cityta ble表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定:Select username,citytable.cityid FROM usertable,citytableWhere usertable.cityid=citytable.cityid在FROM子句中可用以下两种格式为表或视图指定别名:表名 as 别名表名别名例如上面语句可用表的别名格式表示为:Select username,b.cityid FROM usertable a,citytable b Where a.cityid=b.cityidSelect不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。
常用的SQL语句下面列举了一些我们在开发中常常会使用到的SQL语句,供大家参考学习。
1. 查询所有数据:SELECT * FROM table_name;2. 查询指定列数据:SELECT column1, column2 FROM table_name;3. 带条件查询:SELECT * FROM table_name WHERE condition;4. 带条件查询并排序:SELECT * FROM table_name WHERE condition ORDER BY column_name ASC/DESC;5. 带分组的查询:SELECT column1, COUNT(*) FROM table_name GROUP BY column1;6. 带分组和排序的查询:SELECT column1, COUNT(*) FROM table_name GROUP BY column1 ORDER BY COUNT(*) DESC;7. 带聚合函数的查询:SELECT AVG(column1), MAX(column2), MIN(column3) FROM table_name;8. 带子查询的查询:SELECT * FROM table_name WHERE column1 IN (SELECT column1 FROM other_table);9. 带连接条件的查询:SELECT * FROM table1 JOIN table2 ON table1.column1 = table2.column2;10. 带连接和排序条件的查询:SELECT * FROM table1 JOIN table2 ON table1.column1 = table2.column2 ORDER BY table1.column2 ASC;11. 带连接和分组条件的查询:SELECT * FROM table1 JOIN table2 ON table1.column1 = table2.column2 GROUP BY table1.column2;12. 带连接和聚合函数条件的查询:SELECT * FROM table1 JOIN table2 ON table1.column1 = table2.column2 GROUP BY table1.column2 HAVING AVG(table2.column3) > 0;13. 插入数据:INSERT INTO table_name (column1, column2) VALUES (value1, value2);14. 更新数据:UPDATE table_name SET column1 = value1 WHERE condition;15. 删除数据:DELETE FROM table_name WHERE condition;16. 清空表数据:TRUNCATE TABLE table_name;17. 创建表:CREATE TABLE table_name (column1 datatype, column2 datatype, ...);18. 修改表结构:ALTER TABLE table_name ADD column_name datatype;19. 删除表:DROP TABLE table_name;20. 查看表结构:DESCRIBE table_name;21. 查看表数据量:SELECT COUNT(*) FROM table_name;22. 查看表索引:SHOW INDEX FROM table_name;23. 创建索引:CREATE INDEX index_name ON table_name (column_name);24. 删除索引:DROP INDEX index_name ON table_name;25. 批量插入数据:INSERT INTO table_name (column1, column2) VALUES (value1, value2), (value3, value4), ...;26. 批量更新数据:UPDATE table_name SET column1 = value1 WHERE condition, column2 = value2 WHERE condition, ...;27. 批量删除数据:DELETE FROM table_name WHERE condition, ...;28. 分页查询:SELECT * FROM table_name LIMIT offset, limit;29. 子查询嵌套查询:(SELECT column1 FROM other_table WHERE condition) IN (SELECT column1 FROM another_table WHERE condition);30. UNION操作符查询:SELECT * FROM table1 UNION SELECT * FROM table2。
SQL基础知识大全SQL语言由命令、子句、运算和集合函数等构成。
在SQL中,数据定义语言DDL(用来建立及定义数据表、字段以及索引等数据库结构)包含的命令有CREATE、DROP、ALTER;数据操纵语言DML(用来提供数据的查询、排序以及筛选数据等功能)包含的命令有SELECT、INSERT、UPDATE、DELETE。
一、SQL语句(1)Select 查询语句语法:SELECT [ALL|DISTINCT] <目标列表达式> [AS 列名][,<目标列表达式> [AS 列名] ...] FROM <表名> [,<表名>…][WHERE <条件表达式> [AND|OR <条件表达式>...][GROUP BY 列名[HAVING <条件表达式>]][ORDER BY 列名[ASC | DESC]]解释:[ALL|DISTINCT] ALL:全部;DISTINCT:不包括重复行<目标列表达式> 对字段可使用A VG、COUNT、SUM、MIN、MAX、运算符等<条件表达式>查询条件谓词比较=、>,<,>=,<=,!=,<>,确定范围BETWEEN AND、NOT BETWEEN AND确定集合IN、NOT IN字符匹配LIKE(“%”匹配任何长度,“_”匹配一个字符)、NOT LIKE空值IS NULL、IS NOT NULL子查询ANY、ALL、EXISTS集合查询UNION(并)、INTERSECT(交)、MINUS(差)多重条件AND、OR、NOT<GROUP BY 列名> 对查询结果分组[HA VING <条件表达式>] 分组筛选条件[ORDER BY 列名[ASC | DESC]] 对查询结果排序;ASC:升序DESC:降序例1:select student.sno as 学号, as 姓名, course as 课程名, score as 成绩from score,student where student.sid=score.sid and score.sid=:sid例2:select student.sno as 学号, as 姓名,A VG(score) as 平均分from score,student where student.sid=score.sid and student.class=:class and (term=5 or term=6) group by student.sno, having count(*)>0 order by 平均分DESC例3:select * from score where sid like '9634'例4:select * from student where class in (select class from student where name='陈小小')(2)INSERT插入语句语法:INSERT INTO <表名> [(<字段名1> [,<字段名2>, ...])] V ALUES (<常量1> [,<常量2>, ...])语法:INSERT INTO <表名> [(<字段名1> [,<字段名2>, ...])] 子查询例子:INSERT INTO 借书表(rid,bookidx,bdate)V ALUES (edit1.text,edit2.text,date)例子:INSERT INTO score1(sno,name) SELECT sno,name FROM student WHERE class=‟9634‟(3)UPDATE-SQL语法:UPDA TE 〈表名〉SET 列名1 = 常量表达式1[,列名2 = 常量表达式2 ...]WHERE <条件表达式> [AND|OR <条件表达式>...]例子:update score set credithour=4 where course='数据库'(4)DELETE-SQL语法:DELETE FROM〈表名〉[WHERE <条件表达式> [AND|OR <条件表达式>...]]例子:Delete from student where sid='003101'(5)CREATE TABLECREATE TABLE | DBF TableName1 [NAME LongTableName] [FREE](FieldName1 FieldType [(nFieldWidth [, nPrecision])][NULL | NOT NULL][CHECK lExpression1 [ERROR cMessageText1]][DEFAULT eExpression1][PRIMARY KEY | UNIQUE][REFERENCES TableName2 [TAG TagName1]][NOCPTRANS][, FieldName2 ...][, PRIMARY KEY eExpression2 TAG TagName2|, UNIQUE eExpression3 TAG TagName3][, FOREIGN KEY eExpression4 TAG TagName4 [NODUP]REFERENCES TableName3 [TAG TagName5]][, CHECK lExpression2 [ERROR cMessageText2]])| FROM ARRAY ArrayName(6)ALTER TABLEALTER TABLE TableName1ADD | ALTER [COLUMN] FieldName1FieldType [(nFieldWidth [, nPrecision])][NULL | NOT NULL][CHECK lExpression1 [ERROR cMessageText1]][DEFAULT eExpression1][PRIMARY KEY | UNIQUE][REFERENCES TableName2 [TAG TagName1]][NOCPTRANS](7)DROP TABLEDROP TABLE [路径名.]表名(8)CREATE INDEXCREATE INDEX index-name ON table-name(column[,column…])例:CREATE INDEX uspa ON 口令表(user,password)(9)DROP INDEXDROP INDEX table-name.index-name|PRIMARY例:DROP INDEX 口令表.uspa二、在程序中使用静态SQL语句在程序设计阶段,将SQL命令文本作为TQuery组件的SQL属性值设置。
SQL查询语句(⼀)——单表查询------------恢复内容开始------------⼀、查询语句语句执⾏顺序FROM ——> SELECTSELECT select_listFROM table_name;查询多列数据SELECTlastname,firstname,jobtitleFROMemployees;⼆、排序数据语句执⾏顺序FROM --> SELECT --> ORDER BYSELECTselect_listFROMtable_nameORDER BYcolumn1 [ASC|DESC],column2 [ASC|DESC],...;如果未明确指定任何排序规则,默认(升序)使⽤ORDER BY ASC升序 ASCORDER BY column1 ASC;降序 DESCORDER BY column1 DESC;多列对结果集进⾏排序ORDER BYcolumn1,column2;第⼀个名字降序排列,然后将客户的姓⽒排序SELECTcontactLastname,contactFirstnameFROMcustomersORDER BYcontactLastname DESC,contactFirstname ASC;orderNumber,orderlinenumber,quantityOrdered * priceEachFROMorderdetailsORDER BYquantityOrdered * priceEach DESC;按订单状态进⾏排序SELECTorderNumber,statusFROMordersORDER BYFIELD(status,'In Process','On Hold','Cancelled','Resolved','Disputed','Shipped');三、过滤数据WHERE⼦句,为查询返回的⾏指定搜索条件语句执⾏顺序FROM --> WHERE-->SELECT --> ORDER BYSELECTlastname,firstname,jobtitleFROMemployeesWHEREjobtitle = 'Sales Rep';WHERE⼦句与AND运算符查找职务为Sales Rep且办公代码为1的员⼯SELECTlastname,firstname,jobtitle,officeCodeFROMemployeesWHEREjobtitle = 'Sales Rep' ANDofficeCode = 1;WHERE⼦句与OR运算符查找职务为的Sales Rep员⼯或使⽤办公代码1查找办公室的员⼯SELECTlastName,firstName,jobTitle,officeCodeFROMemployeesWHEREjobtitle = 'Sales Rep' ORofficeCode = 1ORDER BYofficeCode ,jobTitle;WHERE⼦句与BETWEEN运算符查找办公室代码为1到3的办公室中的员⼯SELECTFROMemployeesWHEREofficeCode BETWEEN 1 AND 3ORDER BY officeCode;WHERE和LIKE运算符查询查找姓⽒以字符串结尾的员⼯'son'SELECTfirstName,lastNameFROMemployeesWHERElastName LIKE '%son'ORDER BY firstName;WHERE和IN操作符查找位于办公室的办公室代码为1的员⼯SELECTfirstName,lastName,officeCodeFROMemployeesWHEREofficeCode IN (1 , 2, 3)ORDER BYofficeCode;WHERE和 IS NULL 操作符在数据库世界中,NULL是⼀个标记,指⽰⼀条信息丢失或未知。
常用sql查询语句大全常用SQL查询语句大全SQL (Structured Query Language) 是一种用于管理关系型数据库的编程语言,它可以用来从数据库中检索、插入、更新和删除数据。
以下是一些常用的SQL查询语句:1. SELECT语句:用于检索数据库中的数据。
- SELECT * FROM table_name; -- 检索表中的所有列和行- SELECT column1, column2 FROM table_name; -- 检索表中指定的列- SELECT column1, column2 FROM table_name WHERE condition; -- 检索满足条件的行2. INSERT语句:用于向数据库中插入新的数据。
- INSERT INTO table_name (column1, column2) VALUES (value1, value2); -- 插入指定的列和值- INSERT INTO table_name VALUES (value1, value2); -- 插入所有列和值3. UPDATE语句:用于更新数据库中的数据。
- UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition; -- 更新满足条件的行的值4. DELETE语句:用于从数据库中删除数据。
- DELETE FROM table_name WHERE condition; -- 删除满足条件的行5. WHERE子句:用于指定条件。
- SELECT * FROM table_name WHERE column_name = value; -- 检索满足条件的行- SELECT * FROM table_name WHERE column_name LIKE 'value%'; -- 使用通配符进行模糊匹配- SELECT * FROM table_name WHERE column_name IN (value1, value2); -- 检索列值在指定列表中的行6. ORDER BY子句:用于对结果进行排序。
sql查询语句大全及实例1.提取查询(SELECT)SELECT 语句用于从数据库表中提取数据:实例:从"Persons"表中提取数据:SELECT * FROM Persons3.排序(ORDER BY)ORDER BY 语句用于在查询结果中对取出的数据排序:实例:依据金额(Amount)和日期(OrderDate)字段,对"Orders"表中的记录进行从高到低(desc)排序:SELECT * FROM Orders ORDER BY Amount DESC, OrderDate4.过滤(WHERE)WHERE 子句通常用于在 SELECT、UPDATE 和 DELETE 语句中来过滤选择的数据:5.上下文过滤(HAVING)HAVING 子句仅对聚合函数(AVG,COUNT,SUM 等)出现的结果进行过滤:实例:从"Orders"表中选择超过 5000 的订单:SELECT * FROM OrdersHAVING SUM(Amount) > 50006.插入(INSERT)INSERT 语句用于向数据库插入新记录:实例:向"Persons"表中插入一条新记录:INSERT INTO Persons (firstname, lastname, age, address, city)VALUES ('Glenn', 'Quagmire', 33, 'Coolsville', 'Anchorage');7.更新(UPDATE)UPDATE 语句用于更新数据库中的记录:9.创建数据库(CREATE DATABASE)CREATE DATABASE 语句用于创建新的数据库:实例:创建新的数据库“MyDataBase”:CREATE DATABASE MyDataBase实例:在“MyDataBase”中创建一个新表“Persons”:CREATE TABLE Persons(PersonID int,LastName varchar(255),FirstName varchar(255),Address varchar(255),City varchar(255))。
sql常用语句SQL(结构化查询语言)是用于存取和操作关系型数据库的一种标准语言。
SQL语言的使用可帮助我们快速、有效地控制数据库中的数据,在工作中,sql常用语句对于我们来说是非常实用的。
SQL常用语句主要由以下几类组成:1.询语句:最常用的查询语句是SELECT、FROM和WHERE,它们分别表示从数据库中查找满足特定条件的特定记录。
这些SQL语句可以用于过滤数据、聚合数据或将两个表中的数据联系起来查询结果。
2.加语句:INSERT是最常用的增加语句,它用于将新的记录插入到表中。
这个语句通常与VALUES一起使用,可以将新的数据插入到指定的表中。
3.新语句:UPDATE是SQL中最常用的更新语句之一,用于更新数据库中现有记录的值。
这个语句可以根据特定条件来更新记录,也可以将所有符合特定条件的记录更新为相同的值。
4.除语句:DELETE是SQL中最常用的删除语句,用于从数据库中删除满足特定条件的记录。
这个语句也可以通过WHERE子句来指定特定的条件,这样可以确保只删除符合指定条件的记录。
5.建语句:CREATE TABLE是SQL中最常用的创建语句,它用于在数据库中创建新的表。
这个语句也可以用于创建新的表,以及添加和修改表中的列。
6. 事务语句:事务语句包含BEGIN TRANSACTION、COMMIT和ROLLBACK,它们用于控制数据库中的事务。
事务是一系列可以决定数据库状态的操作,BEGIN TRANSACTION用于开始一个事务,COMMIT用于提交一个事务,而ROLLBACK用于取消一个事务。
7.储过程语句:存储过程语句主要包括CREATE PROCEDURE和EXECUTE,这些语句用于存储一系列的SQL语句,以便更方便地实现某种功能。
SQL中的常用语句主要由以上7种语句组成,它们可以构成一个完整的SQL语句来执行大多数数据库的操作。
因此,SQL语句的使用对于数据库的操作和管理至关重要。
sql 语言最常用的语句SQL语言是一种用于管理和操作关系型数据库的标准化语言。
它提供了一系列的命令和语句,用于查询、插入、更新和删除数据。
以下是SQL语言中最常用的十个语句:1. SELECT语句:用于从数据库中查询数据。
可以选择特定的列或所有的列,并可以设置条件来过滤数据。
示例:SELECT * FROM table_name WHERE condition;2. INSERT语句:用于向数据库表中插入新的数据记录。
示例:INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);3. UPDATE语句:用于更新数据库表中的数据记录。
可以更新特定的列或所有的列,并可以设置条件来过滤要更新的数据。
示例:UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;4. DELETE语句:用于从数据库表中删除数据记录。
可以设置条件来过滤要删除的数据。
示例:DELETE FROM table_name WHERE condition;5. CREATE TABLE语句:用于创建新的数据库表。
示例:CREATE TABLE table_name (column1 datatype, column2 datatype, ...);6. ALTER TABLE语句:用于修改数据库表的结构,例如添加或删除列。
示例:ALTER TABLE table_name ADD column_name datatype;7. DROP TABLE语句:用于删除数据库表。
示例:DROP TABLE table_name;8. JOIN语句:用于在多个表之间建立关联,并基于关联条件查询数据。
示例:SELECT * FROM table1 JOIN table2 ON table1.column_name = table2.column_name;9. GROUP BY语句:用于对查询结果进行分组,并对每个组进行聚合操作。
SQL(结构化查询语言)是用于管理关系数据库系统的标准语言。
以下是一些基本的SQL查询语句的示例:1. **选择所有列**```sqlSELECT * FROM 表名;```2. **选择特定列**```sqlSELECT 列名1, 列名2 FROM 表名;```3. **添加条件**```sqlSELECT * FROM 表名WHERE 条件;```4. **排序结果**```sqlSELECT * FROM 表名ORDER BY 列名ASC/DESC;```5. **插入数据**```sqlINSERT INTO 表名(列名1, 列名2, ...) VALUES (值1, 值2, ...);```6. **更新数据**```sqlUPDATE 表名SET 列名1 = 值1, 列名2 = 值2, ... WHERE 条件; ```7. **删除数据**```sqlDELETE FROM 表名WHERE 条件;```8. **连接表**```sqlSELECT * FROM 表名1 JOIN 表名2 ON 表名1.列名= 表名2.列名; ```9. **聚合函数**```sqlSELECT COUNT(列名) FROM 表名WHERE 条件; --计数SELECT SUM(列名) FROM 表名WHERE 条件; --求和SELECT AVG(列名) FROM 表名WHERE 条件; --平均值SELECT MAX(列名) FROM 表名WHERE 条件; --最大值SELECT MIN(列名) FROM 表名WHERE 条件; --最小值```10. **分组和筛选**```sqlSELECT 列名, COUNT(*) FROM 表名GROUP BY 列名HAVING COUNT(*) > 值; --分组和筛选聚合数据```11. **子查询**```sqlSELECT * FROM 表名WHERE 列名IN (SELECT 列名FROM 表名WHERE 条件); -- IN 子查询SELECT * FROM 表名WHERE 列名= (SELECT 列名FROM 表名WHERE 条件); -- = 子查询(通常用于单行子查询)```12. **插入多行数据** (在某些数据库中可能不支持)```sqlINSERT INTO 表名(列名1, 列名2, ...) VALUES (值1a, 值2a, ...), (值1b, 值2b, ...), ...;```请注意,上述SQL语句仅为基本示例,实际使用时可能需要根据具体的数据库系统和需求进行调整。
超详细的sql查询语法SQL查询语法详解一、SELECT语句SELECT语句是最常用的SQL查询语句,用于从数据库中检索数据。
其基本语法如下:SELECT 列名FROM 表名[WHERE 条件][ORDER BY 列名 [ASC|DESC]][LIMIT 数字]1. 列名:指定需要检索的列,可以使用通配符“*”代表所有列。
2. 表名:指定要查询的表名。
3. WHERE条件:可选项,用于筛选满足条件的记录。
4. ORDER BY子句:可选项,用于按指定列对查询结果进行排序,ASC表示升序,DESC表示降序。
5. LIMIT子句:可选项,用于限制查询结果的数量。
例如,查询员工表中所有员工的姓名和工资:SELECT 姓名, 工资FROM 员工表;二、WHERE条件WHERE条件用于筛选满足特定条件的记录。
常用的条件运算符有:1. 等于(=):用于判断两个值是否相等。
2. 不等于(<>或!=):用于判断两个值是否不相等。
3. 大于(>)和小于(<):用于判断一个值是否大于或小于另一个值。
4. 大于等于(>=)和小于等于(<=):用于判断一个值是否大于等于或小于等于另一个值。
5. BETWEEN...AND...:用于判断一个值是否在某个范围内。
6. LIKE:用于模糊匹配,可以使用通配符“%”表示任意字符,使用“_”表示单个字符。
例如,查询员工表中工资大于5000的员工:SELECT *FROM 员工表WHERE 工资 > 5000;三、ORDER BY子句ORDER BY子句用于对查询结果进行排序。
可以按照一个或多个列进行排序,可以指定升序(ASC)或降序(DESC)。
例如,查询员工表中的员工按照工资降序排列:SELECT *FROM 员工表ORDER BY 工资 DESC;四、LIMIT子句LIMIT子句用于限制查询结果的数量。
可以指定返回的记录数量。
例如,查询员工表中薪资前5名的员工:SELECT *FROM 员工表ORDER BY 薪资 DESCLIMIT 5;五、使用聚合函数聚合函数用于对数据进行统计和计算。
数据库sql查询语句以下是常用的SQL查询语句:1. 查询表中所有数据:SELECT * FROM table_name;2. 查询表中指定数据列:SELECT column1, column2, column3 FROM table_name;3. 根据条件查询数据:SELECT * FROM table_name WHERE column_name = value;4. 查询符合多个条件的数据:SELECT * FROM table_name WHERE column_name1 = value1 AND column_name2 = value2;5. 查询符合任意一个条件的数据:SELECT * FROM table_name WHERE column_name1 = value1 OR column_name2 = value2;6. 查询符合一定范围条件的数据:SELECT * FROM table_name WHERE column_name BETWEEN value1 AND value2;7. 查询符合模糊匹配的数据:SELECT * FROM table_name WHERE column_name LIKE '%value%';8. 查询符合多个条件的数据,按照指定字段排序:SELECT * FROM table_name WHERE column_name1 = value1 AND column_name2 = value2 ORDER BY column_name3 ASC;9. 查询数据条数限制:SELECT * FROM table_name LIMIT 10;10. 查询特定数据条数:SELECT * FROM table_name LIMIT 5, 10;以上是一些基本的SQL查询语句,可以根据实际需求进行修改和组合。
常用sql查询语句大全以下是SQL中常用的查询语句:1. SELECT语句:选择表中的数据。
```SELECT column1, column2, column3FROM table_nameWHERE conditionORDER BY column_name DESC, column_name ASC```上面的查询语句将选择名为“column1”、“column2”和“column3”的表中的所有数据,并按照“column_name”的升序和降序进行排序。
2. INSERT INTO语句:将数据插入到表中。
```INSERT INTO table_name (column1, column2, column3)VALUES (value1, value2, value3)```上面的查询语句将创建一个名为“table_name”的表,该表包含三个字段,分别为“column1”、“column2”和“column3”,并插入三条数据,分别为“value1”、“value2”和“value3”。
3. UPDATE语句:更新表中的数据。
```UPDATE table_nameSET column1 = value1, column2 = value2, column3 = value3 WHERE condition```上面的查询语句将根据给定的“condition”更新名为“table_name”的表中的“column1”、“column2”和“column3”三个字段中的数据,并将结果输出到查询结果中。
4. DELETE语句:删除表中的数据。
```DELETE FROM table_nameWHERE condition```上面的查询语句将根据给定的“condition”从名为“table_name”的表中删除所有数据。
sql常用语句大全以下是SQL中常用的语句:1. 查询语句:用于从数据库中检索数据。
- SELECT语句:用于从表中选择数据。
- FROM语句:用于从表中选择数据。
- WHERE语句:用于筛选数据。
- ORDER BY语句:用于排序数据。
- BY语句:用于对查询结果进行分组和排序。
2. 更新语句:用于更新数据库中的数据。
- UPDATE语句:用于在表中更新数据。
- WHERE语句:用于指定更新条件。
- SET语句:用于更新数据。
3. 删除语句:用于在数据库中删除数据。
- DELETE语句:用于从表中删除数据。
- WHERE语句:用于指定删除条件。
4. 创建语句:用于创建数据库、表、索引等。
-CREATE TABLE语句:用于创建一个表。
- AS语句:用于为表命名并提供别名。
- CONSTRAINT语句:用于为表创建约束条件。
5. 插入语句:用于向数据库中插入数据。
-INSERT INTO语句:用于向表中插入数据。
- VALUES语句:用于指定插入的数据。
6. 数据定义语句:用于定义数据库中的数据模型。
- PRIMARY KEY语句:用于为表创建主键。
- FOREIGN KEY语句:用于为表创建外键。
- KEY语句:用于为表创建索引。
7. 查询优化语句:用于优化查询性能。
- ANSI JOIN语句:用于连接两个表。
- NOT NULL语句:用于指定字段是否为非空。
- UNIQUE KEY语句:用于指定字段是否唯一。
8. 视图语句:用于简化复杂的查询。
- 视图定义语句:用于定义视图。
- 视图查询语句:用于查询视图中的数据。
9. 存储过程语句:用于执行复杂的操作并将结果存储回数据库中。
- 存储过程定义语句:用于定义存储过程。
- 存储过程执行语句:用于执行存储过程。
以上是SQL中常用的语句列表,SQL语句的使用可以极大地提高数据库的性能和灵活性。
数据库查询sql语句大全一、常用查询语句1. SELECT:查询语句,用于从表中选取数据。
2. FROM:指定要查询的表名称。
4. ORDER BY:将结果集按照指定的列进行排序。
二、数据过滤语句1. WHERESELECT * FROM 表名 WHERE 列名=值; --- 查找指定值SELECT * FROM 表名 WHERE 列名<>值; --- 不等于指定值SELECT * FROM 表名 WHERE 列名>值; --- 大于指定值SELECT * FROM 表名 WHERE 列名>=值; --- 大于等于指定值SELECT * FROM 表名 WHERE 列名<值; --- 小于指定值SELECT * FROM 表名 WHERE 列名<=值; --- 小于等于指定值SELECT * FROM 表名 WHERE 列名 BETWEEN 值1 AND 值2; --- 查找指定范围内的值SELECT * FROM 表名 WHERE 列名 LIKE '值%'; --- 查找以指定值开头的值SELECT * FROM 表名 WHERE 列名 LIKE '%值'; --- 查找以指定值结尾的值SELECT * FROM 表名 WHERE 列名 LIKE '%值%'; --- 查找包含指定值的值2. INSELECT * FROM 表名 WHERE 列名 IN (值1,值2,...); --- 查找在指定值列表中的值3. NOT IN4. EXISTS6. LIKE三、运算符1. 加法 +SELECT 列名1 + 列名2 AS 别名 FROM 表名;2. 减法 -3. 乘法 *4. 除法 /5. 取模 %四、数据排序1. ORDER BYSELECT * FROM 表名 ORDER BY 列名 ASC; --- 升序排序SELECT * FROM 表名 ORDER BY 列名 DESC; --- 降序排序2. 多列排序五、数据聚合1. COUNT2. SUM3. AVG4. MAX六、数据分组SELECT 列名1,COUNT(列名2) AS 别名 FROM 表名 GROUP BY 列名1; --- 按照列名1分组,计算列名2的计数七、数据连接1. 内连接SELECT * FROM 表1 INNER JOIN 表2 ON 条件; --- 内连接表1和表2,并按照条件进行匹配八、数据更新和删除1. UPDATE2. DELETEDELETE FROM 表名 WHERE 条件; --- 删除表中满足条件的记录1. CREATE TABLEDROP TABLE 表名; --- 删除表十、数据备份和还原1. 备份mysqldump -u用户名 -p密码数据库名 > 备份文件.sql;2. 还原以上就是数据库查询SQL语句大全中文部分了。
SQL基本常用查询语句--selectselect * from student;--all 查询所有select all sex from student;--distinct 过滤重复select distinct sex from student;--count 统计select count(*) from student;select count(sex) from student;select count(distinct sex) from student;--top 取前N条记录select top 3 * from student;--alias column name 列重命名select id as 编号, name '名称', sex 性别 from student; --alias table name 表重命名select id, name, , from student s;--column 列运算select (age + id) col from student;select + '-' + from classes c, student s where = ; --where 条件select * from student where id = 2;select * from student where id > 7;select * from student where id < 3;select * from student where id <> 3;select * from student where id >= 3;select * from student where id <= 5;select * from student where id !> 3;select * from student where id !< 5;--and 并且select * from student where id > 2 and sex = 1;--or 或者select * from student where id = 2 or sex = 1;--between ... and ... 相当于并且select * from student where id between 2 and 5;select * from student where id not between 2 and 5;--like 模糊查询select * from student where name like '%a%';select * from student where name like '%[a][o]%'; select * from student where name not like '%a%'; select * from student where name like 'ja%';select * from student where name not like '%[j,n]%'; select * from student where name like '%[j,n,a]%'; select * from student where name like '%[^ja,as,on]%';select * from student where name like '%[ja_on]%';--in 子查询select * from student where id in (1, 2);--not in 不在其中select * from student where id not in (1, 2);--is null 是空select * from student where age is null;--is not null 不为空select * from student where age is not null;--order by 排序select * from student order by name;select * from student order by name desc;select * from student order by name asc;--group by 分组按照年龄进行分组统计select count(age), age from student group by age;按照性别进行分组统计select count(*), sex from student group by sex;按照年龄和性别组合分组统计,并排序select count(*), sex from student group by sex, age order by age;按照性别分组,并且是id大于2的记录最后按照性别排序select count(*), sex from student where id > 2 group by sex order by sex;查询id大于2的数据,并完成运算后的结果进行分组和排序select count(*), (sex * id) new from student where id > 2 group by sex * id order by sex * id;--group by all 所有分组按照年龄分组,是所有的年龄select count(*), age from student group by all age;--having 分组过滤条件按照年龄分组,过滤年龄为空的数据,并且统计分组的条数和现实年龄信息select count(*), age from student group by age having age is not null;按照年龄和cid组合分组,过滤条件是cid大于1的记录select count(*), cid, sex from student group by cid, sex having cid > 1;按照年龄分组,过滤条件是分组后的记录条数大于等于2select count(*), age from student group by age having count(age) >= 2;按照cid和性别组合分组,过滤条件是cid大于1,cid的最大值大于2select count(*), cid, sex from student group by cid, sexhaving cid > 1 and max(cid) > 2;Ø嵌套子查询子查询是一个嵌套在select、insert、update或delete语句或其他子查询中的查询。
任何允许使用表达式的地方都可以使用子查询。
子查询也称为内部查询或内部选择,而包含子查询的语句也成为外部查询或外部选择。
# from (select … table)示例将一个table的查询结果当做一个新表进行查询select * from (select id, name from student where sex = 1) t where > 2;上面括号中的语句,就是子查询语句(内部查询)。
在外面的是外部查询,其中外部查询可以包含以下语句:1、包含常规选择列表组件的常规select查询2、包含一个或多个表或视图名称的常规from语句3、可选的where子句4、可选的group by子句5、可选的having子句# 示例查询班级信息,统计班级学生人生select *, (select count(*) from student where cid = as num from classes order by num;# in, not in子句查询示例查询班级id大于小于的这些班级的学生信息select * from student where cid in (select id from classes where id > 2 and id < 4);查询不是班的学生信息select * from student where cid not in (select id from classes where name = '2班')in、not in 后面的子句返回的结果必须是一列,这一列的结果将会作为查询条件对应前面的条件。
如cid对应子句的id;# exists和not exists子句查询示例查询存在班级id为的学生信息select * from student where exists (select * from classes where id = and id = 3);查询没有分配班级的学生信息select * from student where not exists (select * from classes where id =);exists和not exists查询需要内部查询和外部查询进行一个关联的条件,如果没有这个条件将是查询到的所有信息。
如:id等于;# some、any、all子句查询示例查询班级的学生年龄大于班级的学生的年龄的信息select * from student where cid = 5 and age > all ( select age from student where cid = 3);select * from student where cid = 5 and age > any ( select age from student where cid = 3);select * from student where cid = 5 and age > some ( select age from student where cid = 3);Ø聚合查询1、 distinct去掉重复数据select distinct sex from student;select count(sex), count(distinct sex) from student; 2、 compute和compute by汇总查询对年龄大于的进行汇总select age from studentwhere age > 20 order by age compute sum(age) by age;对年龄大于的按照性别进行分组汇总年龄信息select id, sex, age from studentwhere age > 20 order by sex, age compute sum(age) by sex;按照年龄分组汇总select age from studentwhere age > 20 order by age, id compute sum(age);按照年龄分组,年龄汇总,id找最大值select id, age from studentwhere age > 20 order by age compute sum(age), max(id);compute进行汇总前面是查询的结果,后面一条结果集就是汇总的信息。