SQL语句
数据库sql查询语句大全
数据库sql查询语句大全数据库SQL查询语句是用来从数据库中检索数据的命令。
以下是一些常见的SQL查询语句大全:1. SELECT语句,用于从数据库中选择数据。
例如,SELECT FROM 表名;2. WHERE子句,用于过滤数据,只返回满足特定条件的行。
例如,SELECT FROM 表名 WHERE 列名 = '条件';3. ORDER BY子句,用于对结果集按照指定列进行排序。
例如,SELECT FROM 表名 ORDER BY 列名;4. GROUP BY子句,用于对结果集按照指定列进行分组。
例如,SELECT 列名1, 列名2 FROM 表名 GROUP BY 列名1;5. HAVING子句,用于过滤分组后的数据。
例如,SELECT 列名1, COUNT(列名2) FROM 表名 GROUP BY 列名1 HAVING COUNT(列名2) > 10;6. JOIN子句,用于在多个表之间建立关联。
例如,SELECT FROM 表名1 INNER JOIN 表名2 ON 表名1.列名 = 表名2.列名;7. UNION操作符,用于合并两个或多个SELECT语句的结果集。
例如,SELECT 列名1 FROM 表名1 UNION SELECT 列名2 FROM 表名2;8. INSERT INTO语句,用于向数据库表中插入新记录。
例如,INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2);9. UPDATE语句,用于更新数据库表中的记录。
例如,UPDATE 表名 SET 列名 = 值 WHERE 条件;10. DELETE FROM语句,用于从数据库表中删除记录。
例如,DELETE FROM 表名 WHERE 条件;以上是一些常见的SQL查询语句,它们可以帮助用户从数据库中检索、过滤、排序、分组和更新数据。
当然,SQL语言还有很多其他的功能和语法,这些只是其中的一部分。
SQL查询语句大全
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函数)。
sql 数据加工 常用语句
sql 数据加工常用语句SQL数据加工是指对数据库中的数据进行查询、过滤、排序、统计等操作,以得到所需的结果。
下面是10个常用的SQL数据加工语句:1. SELECT语句:用于从数据库中选择指定的列或所有列的数据。
例如:SELECT * FROM table_name;2. WHERE语句:用于筛选满足指定条件的数据。
例如:SELECT * FROM table_name WHERE condition;3. ORDER BY语句:用于对查询结果按指定列进行排序。
例如:SELECT * FROM table_name ORDER BY column_name;4. GROUP BY语句:用于对查询结果按指定列进行分组。
例如:SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name;5. HAVING语句:与GROUP BY语句配合使用,在分组后对结果进行筛选。
例如:SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name HAVING COUNT(*) > 10;6. JOIN语句:用于将多个表的数据进行关联查询。
例如:SELECT * FROM table1 JOIN table2 ON table1.column_name = table2.column_name;7. UNION语句:用于将多个查询结果合并为一个结果集。
例如:SELECT column_name FROM table1 UNION SELECT column_name FROM table2;8. INSERT INTO语句:用于向数据库中插入新的数据。
例如:INSERT INTO table_name (column1, column2) VALUES (value1, value2);9. UPDATE语句:用于更新数据库中的数据。
SQL语句大全
8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名;
Select S#,Sname from (select Student.S#,Student.Sname,score ,(select score from SC SC_2 where SC_2.S#=Student.S# and SC_2.C#='002') score2
update SC set score=(select avg(SC_2.score)
from SC SC_2
where SC_2.C#=SC.C# ) from Course,Teacher where Course.C#=SC.C# and Course.T#=Teacher.T# and Teacher.Tname='叶平');
10、查询没有学全所有课的同学的学号、姓名;
select Student.S#,Student.Sname
from Student,SC
where Student.S#=SC.S# group by Student.S#,Student.Sname having count(C#) <(select count(C#) from Course);
FROM SC L ,SC AS R
WHERE L.C# = R.C# and
L.score = (SELECT MAX(IL.score)
FROM SC AS IL,Student AS IM
WHERE L.C# = IL.C# and IM.S#=IL.S#
from Student left Outer join SC on Student.S#=SC.S#
sql包含的语句
sql包含的语句SQL(Structured Query Language)是用于管理关系型数据库的标准化语言。
它可以用于查询、插入、更新和删除数据库中的数据。
下面将列举10个常见的SQL语句及其用途。
1. SELECT语句:SELECT语句用于从数据库中检索数据。
它可以检索特定的列或所有列,并可以进行条件筛选、排序和分组。
例如:SELECT * FROM employees;SELECT name, age FROM customers WHERE country='China';2. INSERT INTO语句:INSERT INTO语句用于向数据库中插入新的行。
可以指定要插入的表、要插入的列和要插入的值。
例如:INSERT INTO customers (name, age, country) VALUES ('Alice', 25, 'USA');3. UPDATE语句:UPDATE语句用于更新数据库中的现有行。
可以指定要更新的表、要更新的列和更新的值,还可以使用WHERE子句来指定更新的条件。
例如:UPDATE employees SET salary=5000 WHERE department='IT';4. DELETE FROM语句:DELETE FROM语句用于从数据库中删除行。
可以指定要删除的表和要删除的条件。
例如:DELETE FROM customers WHERE country='China';5. CREATE TABLE语句:CREATE TABLE语句用于创建新的数据库表。
可以指定表的名称、列的名称和数据类型以及其他约束。
例如:CREATE TABLE employees (id INT PRIMARY KEY,name VARCHAR(50),age INT,department VARCHAR(50));6. ALTER TABLE语句:ALTER TABLE语句用于修改现有的数据库表。
SQL语句大全(百度查询)
创建数据库创建之前判断该数据库是否存在if exists (select * from sysdatabases where name='databaseName')drop database databaseNamegoCreate DATABASE database-name删除数据库drop database dbname备份sql server--- 创建备份数据的deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack','c:\mssql7backup\MyNwind_1.dat'--- 开始备份BACKUP DATABASE pubs TO testBack创建新表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)根据已有的表创建新表:A:gouse 原数据库名goselect * into 目的数据库名.dbo.目的表名from 原表名(使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 创建序列create sequence SIMON_SEQUENCEminvalue 1 -- 最小值maxvalue 999999999999999999999999999 -- 最大值start with 1 -- 开始值increment by 1 -- 每次加几cache 20;删除新表drop table tabname增加一个列Alter table tabname add colname coltype删除一个列Alter table tabname drop column colname添加主键Alter table tabname add primary key(col)说明:删除主键:Alter table tabname drop primary key(col)创建索引create [unique] index idxname on tabname(col…。
经典SQL语句大全(超全)
一、基础1、说明:创建数据库CREATE DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1. dat'--- 开始备份BACKUP DATABASE pubs TO testBack4、说明:创建新表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)根据已有的表创建新表:A:create table tab_new like tab_old (使用旧表创建新表)B:create table tab_new as select col1,col2… from tab_old definition only5、说明:删除新表drop table tabname6、说明:增加一个列Alter table tabname add column col type注:列增加后将不能删除。
DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
7、说明:添加主键:Alter table tabname add primary key(col)说明:删除主键: Alter table tabname drop primary key(col)8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname注:索引是不可更改的,想更改必须删除重新建。
9、说明:创建视图:create view viewname as select statement删除视图:drop view viewname10、说明:几个简单的基本的sql语句选择:select * from table1 where 范围插入:insert into table1(field1,field2) values(value1,value2)删除:delete from table1 where 范围更新:update table1 set field1=value1 where 范围查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!排序:select * from table1 order by field1,field2 [desc]总数:select count as totalcount from table1求和:select sum(field1) as sumvalue from table1平均:select avg(field1) as avgvalue from table1最大:select max(field1) as maxvalue from table1最小:select min(field1) as minvalue from table111、说明:几个高级查询运算词A:UNION 运算符UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。
sql语句大全(详细)
sql语句大全(详细)sql语句大全(详细)数据库操作1.查看所有数据库show databases;2.查看当前使用的数据库select database();3.创建数据库create databases 数据库名 charset=utf8;4.删除数据库drop database 数据库名5.使用数据句库use database 数据库名6.查看数据库中所有表show tables;表的操作1.查看表结构desc 表名2.创建表结构的语法create table table_name(字段名数据类型可选的约束条件);demo:创建班级和学生表create table classes(id int unsigned auto_increment primary key not null, name varchar(10));create table students(id int unsigned primary key auto_increment not null, name varchar(20) default '',age tinyint unsigned default 0,height decimal(5,2),gender enum('男','女','人妖','保密'),cls_id int unsigned default 0)3.修改表–添加字段alter table 表名 add 列名类型demo:alter table students add birthday datetime;4.修改表–修改字段–重命名版alert table 表名 change 原名新名类型及约束demo:alter table syudents change birthday birth datetime not null;5.修改表–修改字段–不重命名alter table 表名 modify 列名类型及约束demo : alter table students modify birth date nout noll;6.删除表–删除字段alter table 表名 drop 列名demo :later table students drop birthday;7.删除表drop table 表名demo:drop table students;8.查看表的创建语句–详细过程show create table 表名demo : show create tabele students;查询基本使用1.查询所有列select * from 表名例:select * from classes;2.查询指定列select 列1,列2,...from 表名;例:select id,name from classes;增加说明:主键列是自动增长,但是在全列插入时需要占位,通常使用空值(0或者null) ; 字段默认值 default 来占位,插入成功后以实际数据为准1.全列插入:值的顺序与表结构字段的顺序完全一一对应此时字段名列表不用填写insert into 表名 values (...)例:insert into students values(0,’郭靖',1,'蒙古','2016-1-2');2.部分列插入:值的顺序与给出的列顺序对应此时需要根据实际的数据的特点填写对应字段列表insert into 表名 (列1,...) values(值1,...)例:insert into students(name,hometown,birthday) values('黄蓉','桃花岛','2016-3-2');上面的语句一次可以向表中插入一行数据,还可以一次性插入多行数据,这样可以减少与数据库的通信3.全列多行插入insert into 表名 values(...),(...)...;例:insert into classes values(0,'python1'),(0,'python2');4.部分列多行插入insert into 表名(列1,...) values(值1,...),(值1,...)...;例:insert into students(name) values('杨康'),('杨过'),('小龙女');修改update 表名 set 列1=值1,列2=值2... where 条件例:update students set gender=0,hometown='北京' where id=5;删除delete from 表名 where 条件例:delete from students where id=5;逻辑删除,本质就是修改操作update students set isdelete=1 where id=1;as关键字1.使用 as 给字段起别名select id as 序号, name as 名字, gender as 性别 from students;2.可以通过 as 给表起别名select s.id,,s.gender from students as s;条件语句查询where后面支持多种运算符,进行条件的处理比较运算符逻辑运算符模糊查询范围查询空判断比较运算符等于: =大于: >大于等于: >=小于等于: <=不等于: != 或 <>例1:查询编号大于3的学生select * from students where id > 3;例2:查询编号不大于4的学生select * from students where id <= 4;例3:查询姓名不是“黄蓉”的学生select * from students where name != '黄蓉';例4:查询没被删除的学生select * from students where is_delete=0;逻辑运算符andornot例5:查询编号大于3的女同学select * from students where id > 3 and gender=0;例6:查询编号小于4或没被删除的学生select * from students where id < 4 or is_delete=0;模糊查询like%表示任意多个任意字符_表示一个任意字符例7:查询姓黄的学生select * from students where name like '黄%';例8:查询姓黄并且“名”是一个字的学生select * from students where name like '黄_';例9:查询姓黄或叫靖的学生select * from students where name like '黄%' or name like '%靖';范围查询分为连续范围查询和非连续范围查询in表示在一个非连续的范围内例10:查询编号是1或3或8的学生select * from students where id in(1,3,8);between … and …表示在一个连续的范围内例11:查询编号为3至8的学生select * from students where id between 3 and 8;例12:查询编号是3至8的男生select * from students where (id between 3 and 8) and gender=1;空判断判断为空例13:查询没有填写身高的学生select * from students where height is null;注意: 1. null与’'是不同的 2. is null判非空is not null例14:查询填写了身高的学生select * from students where height is not null;例15:查询填写了身高的男生select * from students where height is not null and gender=1;优先级优先级由高到低的顺序为:小括号,not,比较运算符,逻辑运算符and比or先运算,如果同时出现并希望先算or,需要结合()使用排序排序查询语法:select * from 表名 order by 列1 asc|desc [,列2 asc|desc,...]语法说明:将行数据按照列1进行排序,如果某些行列1 的值相同时,则按照列2 排序,以此类推asc从小到大排列,即升序desc从大到小排序,即降序默认按照列值从小到大排列(即asc关键字)例1:查询未删除男生信息,按学号降序select * from students where gender=1 and is_delete=0 order by id desc;例2:查询未删除学生信息,按名称升序select * from students where is_delete=0 order by name;例3:显示所有的学生信息,先按照年龄从大–>小排序,当年龄相同时按照身高从高–>矮排序select * from students order by age desc,height desc;分页select * from 表名 limit start=0,count说明从start开始,获取count条数据start默认值为0也就是当用户需要获取数据的前n条的时候可以直接写上xxx limit n;例1:查询前3行男生信息select * from students where gender=1 limit 0,3;关于分页的一个有趣的推导公式已知:每页显示m条数据,当前显示第n页求总页数:此段逻辑后面会在python项目中实现查询总条数p1使用p1除以m得到p2如果整除则p2为总数页如果不整除则p2+1为总页数获取第n页的数据的SQL语句求解思路第n页前有n-1页所在第n页前已经显示的数据的总量是(n-1)*m由于数据的下标从0开始所以第n页前所有的网页的下标是0,1,…,(n-1)*m-1所以第n页的数据起始下标是(n-1)*m获取第n页数据的SQL语句select * from students where is_delete=0 limit (n-1)*m,m注意:在sql语句中limit后不可以直接加公式聚合函数总数count(*) 表示计算总行数,括号中写星与列名,结果是相同的例1:查询学生总数select count(*) from students;最大值max(列) 表示求此列的最大值例2:查询女生的编号最大值select max(id) from students where gender=2;最小值min(列) 表示求此列的最小值例3:查询未删除的学生最小编号select min(id) from students where is_delete=0;求和sum(列) 表示求此列的和例4:查询男生的总年龄select sum(age) from students where gender=1;–平均年龄select sum(age)/count(*) from students where gender=1;平均值avg(列) 表示求此列的平均值例5:查询未删除女生的编号平均值select avg(id) from students where is_delete=0 andgender=2;分组group bygroup by + group_concat()group_concat(字段名)根据分组结果,使用group_concat()来放置每一个分组中某字段的集合group by + 聚合函数通过group_concat()的启发,我们既然可以统计出每个分组的某字段的值的集合,那么我们也可以通过集合函数来对这个值的集合做一些操作group by + havinghaving 条件表达式:用来过滤分组结果having作用和where类似,但having只能用于group by 而where是用来过滤表数据group by + with rollupwith rollup的作用是:在最后新增一行,来记录当前表中该字段对应的操作结果,一般是汇总结果。
常用sql查询语句大全
常用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语句大全.pdf
SQL 语句教程SQL语句教程(01) SELECT (2)SQL语句教程(02) DISTINCT (2)SQL语句教程(03) WHERE (2)SQL语句教程(04) AND OR (3)SQL语句教程(05) IN (3)SQL语句教程(06) BETWEEN (4)SQL语句教程(07) LIKE (4)SQL语句教程(08) ORDER BY (5)SQL语句教程(09) 函数 (5)SQL语句教程(10) COUNT (6)SQL语句教程(11) Group By (6)SQL语句教程(12) HAVING (7)SQL语句教程(13) ALIAS (7)SQL语句教程(14) 连接 (8)SQL语句教程(15) 外部连接 (9)SQL语句教程(16) Subquery (9)SQL语句教程(17) UNION (10)SQL语句教程(18) UNION ALL (11)SQL语句教程(19) INTERSECT (11)SQL语句教程(20) MINUS (12)SQL语句教程(21) Concatenate (12)SQL语句教程(22) Substring (13)SQL语句教程(23) TRIM (14)SQL语句教程(24) Create Table (14)SQL语句教程(25) Create View (15)SQL语句教程(26) Create Index (16)SQL语句教程(27) Alter Table (16)SQL语句教程(28) 主键 (18)SQL语句教程(29) 外来键 (18)SQL语句教程(30) Drop Table (19)SQL语句教程(31) Truncate Table (20)SQL语句教程(32) Insert Into (20)SQL语句教程(33) Update (20)SQL语句教程(34) Delete (21)SQL语句教程(01) SELECT是用来做什么的呢?一个最常用的方式是将资料从数据库中的表格内选出。
什么是SQL语句
什么是SQL语句1.1 SQL语句介绍1.1.1 什么是SQL?全称Structured Query Language,简称SQL,中⽂叫结构化查询语⾔。
关系数据库语⾔的国际标准。
SQL92、SQL99不只是mysql还有其他数据库,在SQL92或者SQL99这些国际SQL标准基础之上,它们还扩展了⾃⼰的⼀些SQL语句,⽐如MySQL中的limit 关键字1.1.2 SQL分类:1. 数据定义语⾔:简称DDL(Data Definition Language),⽤来定义数据库对象:数据库,表,列等。
关键字:create,alter,drop等2. 数据操作语⾔:简称DML(Data Manipulation Language),⽤来对数据库中表的记录进⾏更新。
关键字:insert,delete,update等3. 数据控制语⾔:简称DCL(Data Control Language),⽤来定义数据库的访问权限和安全级别,及创建⽤户;关键字:grant等4. 数据查询语⾔:简称DQL(Data Query Language),⽤来查询数据库中表的记录。
关键字:select,from,where等1.2 SQL语句使⽤1.2.1 数据库操作:database创建数据库语法:create database 数据库名;create database 数据库名 character set 字符集;查看数据库查看数据库服务器中的所有的数据库:show databases;查看某个数据库的定义的信息:show create database 数据库名;删除数据库drop database 数据库名称;其他的数据库操作命令切换数据库:use 数据库名;查看正在使⽤的数据库:select database();例如:#创建数据库create database day06;#使⽤数据库use day06;1.2.2 表操作:table1.2.2.1 字段类型常⽤的类型有:数字型:int浮点型:double字符型:varchar(可变长字符串)⽇期类型:date(只有年⽉⽇,没有时分秒)datetime(年⽉⽇,时分秒)boolean类型:不⽀持分类类型名称说明整数类型tinyInt很⼩的整数smallint⼩的整数mediumint中等⼤⼩的整数int(integer)普通⼤⼩的整数⼩数类型float单精度浮点数double双精度浮点数decimal(m,d)压缩严格的定点数------开发时⽤⽇期类型year YYYY 1901~2155time HH:MM:SS -838:59:59~838:59:59date YYYY-MM-DD 1000-01-01~9999-12-3datetime-开发⽤YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00~9999-12-31 23:59:59timestamp YYYY-MM-DD HH:MM:SS 1970~01~01 00:00:01UTC~2038-01-19 03:14:07UTC⽂本、⼆进制类型CHAR(M) M为0~255之间的整数VARCHAR(M) M为0~65535之间的整数TINYBLOB允许长度0~255字节BLOB允许长度0~65535字节MEDIUMBLOB允许长度0~167772150字节LONGBLOB允许长度0~4294967295字节TINYTEXT允许长度0~255字节TEXT允许长度0~65535字节MEDIUMTEXT允许长度0~167772150字节LONGTEXT允许长度0~4294967295字节VARBINARY(M)允许长度0~M个字节的变长字节字符串BINARY(M)允许长度0~M个字节的定长字节字符串创建表create table 表名(字段名类型(长度) 约束,字段名类型(长度) 约束);单表约束:* 主键约束:primary key* 唯⼀约束:unique* ⾮空约束:not null* 注意:主键约束 = 唯⼀约束 + ⾮空约束例如:###创建分类表CREATE TABLE sort (sid INT PRIMARY KEY, #分类IDsname VARCHAR(100) #分类名称);查看表查看数据库中的所有表:show tables;查看表结构:desc 表名;删除表drop table 表名;修改表alter table 表名 add 列名类型(长度) 约束; --修改表添加列.alter table 表名 modify 列名类型(长度) 约束; --修改表修改列的类型长度及约束. alter table 表名 change 旧列名新列名类型(长度) 约束; --修改表修改列名. alter table 表名 drop 列名; --修改表删除列.rename table 表名 to 新表名; --修改表名alter table 表名 character set 字符集; --修改表的字符集。
sql查询语句大全及实例
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查询语句的示例: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语句用法
SQL语句大全--语句功能--数据操作SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行DELETE --从数据库表中删除数据行UPDATE --更新数据库表中的数据--数据定义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 --从数据库中删除一个域--数据控制GRANT --授予用户访问权限DENY --拒绝用户访问REVOKE --解除用户访问权限--事务控制COMMIT --结束当前事务ROLLBACK --中止当前事务SET TRANSACTION --定义当前事务数据访问特征--程序化SQLDECLARE --为查询设定游标EXPLAN --为查询描述数据访问计划OPEN --检索查询结果打开一个游标FETCH --检索一行查询结果CLOSE --关闭游标PREPARE --为动态执行准备SQL 语句EXECUTE --动态地执行SQL 语句DESCRIBE --描述准备好的查询---局部变量declare id char(10)--set id = '10010001'select id = '10010001'---全局变量---必须以开头--IF ELSEdeclare 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'--CASEuse 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.06else e_wage*1.05end--WHILE CONTINUE BREAKdeclare 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 = 1end--WAITFOR--例等待1 小时2 分零3 秒后才执行SELECT 语句waitfor delay ’01:02:03’select * from employee--例等到晚上11 点零8 分后才执行SELECT 语句waitfor time ’23:08:00’select * from employee***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 stock*** = '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_name select 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 table2***insert***insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx") value (select Stockname , Stocknumber from Stock_table2)---value为select语句***update***update table_name set Stockname = "xxx" [where Stockid = 3]Stockname = defaultStockname = nullStocknumber = Stockname + 4***delete***delete from table_name where Stockid = 3truncate table_name ----------- 删除表中所有行,仍保持表的完整性drop table table_name --------------- 完全删除表***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约束***function(/*常用函数*/)***----统计函数----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.97936RAND([integer_expression]) --用任选的[integer_expression]做种子值得出0-1 间的随机浮点数----字符串函数----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() --函数用另一子串替换字符串指定位置长度的子串----数据类型转换函数----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 2000----日期函数----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 的缺省格式返回系统当前的日期和时间----系统函数----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的值sql中的保留字action add aggregate allalter after and asasc avg avg_row_length auto_incrementbetween bigint bit binaryblob bool both bycascade case char characterchange check checksum columncolumns comment constraint createcross current_date current_time current_timestamp data database databases datedatetime day day_hour day_minute day_second dayofmonth dayofweek dayofyeardec decimal default delayeddelay_key_write delete desc describedistinct distinctrow double dropend else escape escapedenclosed enum explain existsfields file first floatfloat4 float8 flush foreignfrom for full functionglobal grant grants grouphaving heap high_priority hourhour_minute hour_second hosts identifiedignore in index infileinner insert insert_id intinteger interval int1 int2int3 int4 int8 intoif is isam joinkey keys kill last_insert_idleading left length likelines limit load locallock logs long longbloblongtext low_priority max max_rowsmatch mediumblob mediumtext mediumintmiddleint min_rows minute minute_secondmodify month monthname myisamnatural numeric no notnull on optimize optionoptionally or order outeroutfile pack_keys partial passwordprecision primary procedure processprocesslist privileges read realreferences reload regexp renamereplace restrict returns revokerlike row rows secondselect set show shutdownsmallint soname sql_big_tables sql_big_selectssql_low_priority_updates sql_log_off sql_log_update sql_select_limit sql_small_result sql_big_result sql_warnings straight_joinstarting status string tabletables temporary terminated textthen time timestamp tinyblobtinytext tinyint trailing totype use using uniqueunlock unsigned update usagevalues varchar variables varyingvarbinary with write whenwhere year year_month zerofill查看全文分类: ( 一般分类 ) :: 评论 (0) :: 静态网址 :: 引用 (0)常用SQL命令和ASP编程发表人:kendy517 | 发表时间: 2007年二月09日, 11:57在进行数据库操作时,无非就是添加、删除、修改,这得设计到一些常用的SQL语句,如下:SQL常用命令使用方法:(1) 数据记录筛选:sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"sql="select * from 数据表 where 字段名 like %字段值% order by 字段名 [desc]"sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]"sql="select * from 数据表 where 字段名 in (值1,值2,值3)"sql="select * from 数据表 where 字段名 between 值1 and 值2"(2) 更新数据记录:sql="update 数据表 set 字段名=字段值 where 条件表达式"sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式"(3) 删除数据记录:sql="delete from 数据表 where 条件表达式"sql="delete from 数据表" (将数据表所有记录删除)(4) 添加数据记录:sql="insert into 数据表 (字段1,字段2,字段3 …) valuess (值1,值2,值3 …)"sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表)(5) 数据记录统计函数:AVG(字段名) 得出一个表格栏平均值COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计MAX(字段名) 取得一个表格栏最大的值MIN(字段名) 取得一个表格栏最小的值SUM(字段名) 把数据栏的值相加引用以上函数的方法:sql="select sum(字段名) as 别名 from 数据表 where 条件表达式"set rs=conn.excute(sql)用 rs("别名") 获取统的计值,其它函数运用同上。
SQL语句大全
创建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根据已有的表创建新表: A:go use 原数据库名 go select * into 目的数据库名.dbo.目的表名 from 原表名(使用旧表创建新表)
判断表是否存在
if not exists (select * from sysobjects where [name] = '表名' and xtype='U')
begin --这里创建表 end
判断存储过程是否存在
if exists (select * from sysobjects where id = object_id(N'[存储过程名]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
排序:select * from table1 order by field1,field2 [desc]
总数:select count(*) as totalcount from table1
求和:select sum(field1) as sumvalue from table1
drop database databaseName
go
Create DATABASE database-name
删除数据库
drop database dbname
备份sql server
SQL常用基本语句及示例
SQL基本语句及示例1 . SQL SELECT 语句SELECT 语句用于从表中选取数据。
结果被存储在一个结果表中(称为结果集)。
SQL SELECT 语法以及:2. SQL SELECT DISTINCT 语句在表中,可能会包含重复值。
这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。
关键词DISTINCT 用于返回唯一不同的值。
语法:使用DISTINCT 关键词如果要从"Company" 列中选取所有的值,我们需要使用SELECT 语句:现在,在结果集中,"W3School" 仅被列出了一次。
3. WHERE 子句如需有条件地从表中选取数据,可将WHERE 子句添加到SELECT 语句。
语法引号的使用请注意,我们在例子中的条件值周围使用的是单引号。
SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。
如果是数值,请不要使用引号。
文本值:数值:5. ORDER BY 语句ORDER BY语句用于对结果集进行排序实例4以逆字母顺序显示公司名称,并以数字顺序显示顺序号:6. INSERT INTO 语句INSERT INTO 语句用于向表格中插入新的行。
语法我们也可以指定所要插入数据的列:SQL 语句:SQL 语句:7. DELETE 语句DELETE 语句用于删除表中的行。
语法删除某行"Fred Wilson" 会被删除:删除所有行可以在不删除表的情况下删除所有的行。
这意味着表的结构、属性和索引都是完整的:1.SQL AVG() 语法例子1现在,我们希望计算"OrderPrice" 字段的平均值。
我们使用如下SQL 语句:例子2现在,我们希望找到OrderPrice 值高于OrderPrice 平均值的客户。
我们使用如下SQL 语句:2.SQL COUNT() 函数COUNT() 函数返回匹配指定条件的行数。
sql的语句类型
sql的语句类型SQL(Structured Query Language)是用于管理关系数据库的标准编程语言。
以下是SQL中的一些主要语句类型:1. 数据定义语言 (DDL)`CREATE` - 用于创建数据库、表、视图等。
+ 例如:`CREATE DATABASE`, `CREATE TABLE`, `CREATE VIEW``ALTER` - 用于修改数据库、表等结构。
+ 例如:`ALTER TABLE``DROP` - 用于删除数据库、表、视图等。
+ 例如:`DROP DATABASE`, `DROP TABLE`, `DROP VIEW` `TRUNCATE` - 用于删除表中的所有数据,但不删除表本身。
2. 数据操纵语言 (DML)`INSERT` - 用于向表中插入数据。
`UPDATE` - 用于修改表中的数据。
`DELETE` - 用于从表中删除数据。
3. 数据查询语言 (DQL)`SELECT` - 用于从数据库表中检索数据。
4. 事务控制语言 (TCL)`COMMIT` - 用于提交事务。
`ROLLBACK` - 用于回滚事务。
`SAVEPOINT` - 用于设置保存点。
5. 其他`SET` - 用于设置SQL会话参数。
`SHOW` - 用于显示数据库、表、视图等的结构或状态。
`DESCRIBE` - 用于显示表的结构。
6. 组合和特定数据库的语句SQL包含许多子语句、关键字和函数,可以根据需要组合使用,以满足各种复杂的查询和操作需求。
此外,不同的数据库管理系统(如MySQL、Oracle、SQL Server等)可能有其特定的扩展和语法。
sql常用语句大全
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语句的使用可以极大地提高数据库的性能和灵活性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SQL语句及运用
1.SQL简单查询
(1)对“课程”表进行查询,显示课程全部信息
SELECT___*___FROM 课程
(2)列出前5个教师的姓名和工龄。
SELECT top 5 姓名,Year(Date())-Year(工作时间) AS 工龄 FROM 教师
(3)求出所有教师的平均年龄。
SELECT AVG(年龄) AS平均年龄 FROM 教师
2.带条件查询
(1)列出成绩在80分以上的学生记录。
SELECT * FROM 选课成绩 WHERE 成绩 >80
(2)求出福建住址的学生平均年龄。
SELECT AVG(年龄) AS 平均年龄 FROM 学生 WHERE 住址 LIKE"*福建*"
(3)列出北京海淀区和上海住址的学生名单。
SELECT 学生编号,姓名,住址 FROM 学生 WHERE 住址 IN ("北京海淀区" ,"上海") (4)列出成绩在80分到100分之间的学生名单。
SELECT 学生编号,成绩 FROM 选课成绩 WHERE 成绩 BETWEEN 80 AND 100
(5)列出所有的姓“张”的学生名单。
SELECT 学生编号,姓名 FROM 学生 WHERE 姓名 LIKE "张*"
(6)列出所有成绩为空值的学生编号和课程编号。
SELECT 学生编号,课程编号 FROM 选课成绩 WHERE 成绩 IS NULL
3.排序
(1)按性别顺序列出学生编号、姓名、性别、年龄及住址,性别相同的再按年龄由大
到小排序。
SELECT 学生编号,姓名,性别,年龄,住址 FROM 学生 ORDER BY "性别" , "年龄" DESC
(2)将学生成绩降序排序,只显示前30%的记录。
SELECT top 30 percent * FROM 选课成绩 ORDER BY 成绩 DESC
4.分组查询。
(1)分别统计“学生”表中男女生人数。
SELECT 性别,COUNT(*) AS 人数 FROM 学生 GROUP BY 性别
(2)分别统计“教师”表中男女同志政治面目为非党员的人数。
SELECT 性别,COUNT(*) AS 人数 FROM 教师 WHERE 政治面目 <> "党员" GROUP BY
性别
(3)列出平均成绩大于75分的课程编号,并按平均成绩升序排序。
SELECT 课程编号,AVG(成绩) AS 平均成绩
FROM 选课成绩
GROUP BY 课程编号 HAVING AVG(成绩)>75
ORDER BY AVG(成绩) ASC
(4)统计每个学生选修课程的门数(超过1门的学生才统计),要求输出学生编号和选
修门数,查询结果按选课门数降序排列,若门数相同,按学生编号升序排列。
SELECT 学生编号,COUNT(课程编号) AS 选课门数
FROM 选课成绩
GROUP BY 学生编号 HAVING count(课程编号)>1
ORDER BY 2 DESC,1
5.嵌套查询
(1)列出选修“高等数学”的所有学生的学生编号。
SELECT 学生编号 FROM 选课成绩 WHERE 课程编号=
(SELECT 课程编号 FROM 课程 WHERE 课程名称="高等数学")
(2)列出选修“101”课的学生中成绩比选修“105”的最低成绩高的学生编号和成绩。
SELECT 学生编号,成绩 FROM 选课成绩
WHERE 课程编号="101"And 成绩>Any
(SELECT 成绩 FROM 选课成绩 WHERE 课程编号="105")
(3)列出选修“101”课的学生,这些学生的成绩比选修“105”课的最高成绩还要高
的学生编号和成绩。
SELECT 学生编号,成绩 FROM 选课成绩
WHERE 课程编号="101" And 成绩>All
(SELECT 成绩 FROM 选课成绩 WHERE 课程编号="105")
(4)列出选修“高等数学”或“英语”的所有学生的学生编号。
SELECT 学生编号 FROM 选课成绩
WHERE 课程编号 IN
(SELECT 课程编号 FROM 课程 WHERE 课程名称="高等数学" or 课程名称="英语" )
6.联接查询
(1)输出所有学生的成绩单,要求给出学生编号、姓名、课程编号、课程名称和成绩。
SELECT a.学生编号,姓名,b.课程编号,课程名称,成绩
FROM 学生 a,选课成绩 b,课程 c
WHERE a.学生编号=b.学生编号 And b.课程编号=c.课程编号
(2)列出团员学生的选课情况,要求列出学生编号、姓名、课程编号、课程名称和成
绩。
SELECT a.学生编号,a.姓名,b.课程编号,课程名称,成绩
FROM 学生 a,选课成绩 b,课程 c
WHERE a.学生编号 = b.学生编号 and b.课程编号=c.课程编号
(3)求选修“101”课程的女生的平均年龄。
SELECT AVG(年龄) AS 平均年龄 FROM 学生,选课成绩
WHERE 学生.学生编号=选课成绩.学生编号 AND 课程编号="101"
7.联合查询
对“教学管理”数据库,列出选修“101”或“102”课程的所有学生的学生编号和姓
名,要求建立联合查询。
SELECT 学生.学生编号,学生.姓名 FROM 选课成绩,学生
WHERE 课程编号="101" AND 选课成绩.学生编号=学生.学生编号
UNION SELECT 学生.学生编号,学生.姓名 FROM 选课成绩,学生
WHERE 课程编号="102" AND 选课成绩.学生编号=学生.学生编号。