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函数)S:select space(10)+'abcd' valueO:select LPAD('abcd',14) value from dual31.右补空格(RPAD的第一个参数为空格则同space函数)S:select 'abcd'+space(10) valueO:select RPAD('abcd',14) value from dual32.删除空格S:ltrim,rtrimO:ltrim,rtrim,trim33. 重复字符串S:select REPLICATE('abcd',2) valueO:没发现34.发音相似性比较(这两个单词返回值一样,发音相同)S:Select SOUNDEX ('Smith'), SOUNDEX ('Smythe')O:Select SOUNDEX ('Smith'), SOUNDEX ('Smythe') from dualSQLServer中用Select DIFFERENCE('Smithers', 'Smythers') 比较soundex的差返回0-4,4为同音,1最高23、日期函数35.系统时间S:select getdate() valueO:select sysdate value from dual36.前后几日直接与整数相加减。

SQL命令大全(可编辑修改word版)

SQL命令大全(可编辑修改word版)

下列语句部分是Mssql 语句,不可以在access 中使用。

SQL 分类:DDL 类型包括数据库、表的创建,修改,删除,声明—数据定义语言(CREATE,ALTER,DROP,DECLARE)DML 类型包括数据表中记录的查询,删除,修改,插入—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)DCL 类型包括数据库用户赋权,废除用户访问权限,提交当前事务,中止当前事务—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)首先,简要介绍基础语句:1、说明:创建数据库CREATE DATABASE db1(db1 代表数据库表,可自命名)2、说明:删除数据库drop database db1(db1 代表数据库表,可自命名)3、说明:备份sql server--- 创建备份数据的deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'--- 开始备份BACKUP DATABASE pubs TO testBack4、说明:创建新表create table tb1(Id int not null primary key,name varchar,..)(tb1 为数据表名,ID 为字段,int 为数据类型整型,not null 为数据是否可为空,Primary Key 为主键设置,其中not null,primary key 为可选项,字段,数据类型自定义。

)根据已有的表创建新表:A:create table tab_new like tab_old (使用旧表创建新表)B:create table tab_new as select col1,col2… from tab_old definition only5、说明:删除新表:drop table tb16、说明:增加一个列:Alter table tabname add column col type注:列增加后将不能删除。

sql命令语句

sql命令语句

sql命令语句嘿,朋友!你知道 SQL 命令语句吗?这玩意儿可太重要啦!就好比是一把神奇的钥匙,能打开数据库那神秘宝库的大门。

比如说,当你想要从一个超级大的数据库里找出特定的信息,这时候 SQL 的 SELECT 语句就派上用场啦!“SELECT * FROM table_name”,就像你在茫茫人海中精准地找到你要找的那个人一样神奇!你能想象没有它该怎么办吗?还有啊,INSERT 语句,那简直就是给数据库添加新东西的魔法棒呀!“INSERT INTO table_name (column1, column2, column3) VALUES (value1, value2, value3)”,这不就像是给一个空房间里添置新家具嘛,一下子就让它丰富起来了。

UPDATE 语句呢,就像是给已有的东西做个小改造,让它更符合你的需求。

“UPDATE table_name SET column1 = value1 WHERE condition”,这多像给一件衣服换个扣子或者改个颜色呀!DELETE 语句,哎呀,这可有点厉害咯!它就像是把不需要的东西直接清理掉。

“DELETE FROM table_name WHERE condition”,这就像你清理房间时扔掉那些没用的杂物一样果断。

我之前和一个朋友一起做项目,他对 SQL 命令语句不太熟悉,结果在处理数据的时候那叫一个手忙脚乱啊!我就跟他说:“嘿,你得好好学学 SQL 命令语句呀,不然这工作可没法干啦!”他还不信,后来吃了不少苦头才意识到重要性。

SQL 命令语句真的是太实用啦!它是我们和数据库沟通的桥梁,没有它,我们怎么能在数据的海洋里畅游呢?所以呀,一定要好好掌握它,让它为我们的工作和生活带来便利!这就是我的观点,SQL 命令语句,不可或缺!。

升序降序sql语句

升序降序sql语句

升序降序sql语句
sql升序和降序中降序DESC,升序ASC。

1、sql通过order by来控制排序,select * from 表名order by ID asc 表示按照id列升序,order by ID desc 则表示按照id降序,如果不指明是asc还是desc则是默认为asc升序。

order by xx代表对xx进行升序排列,order by xx desc 代表对xx进行降序排列,desc表示降序。

2、SQL语句汇总函数count求某列的行数,sum对某列数据求和,avg 对某列数据求平均值,max求某列数据的最大值,min求某列数据的最小值,count放在select之后,后加括号,括号内填入列名,count输出的是除去空值之后的行数,count表示输出整个表格的行数。

3、SQL是结构化查询语言的缩写。

SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。

在使用它时,只需要发出做什么的命令,怎么做是不用使用者考虑的。

SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。

查询表结构的sql语句

查询表结构的sql语句

查询表结构的sql语句查询表结构的SQL语句是用来查看数据库中表的结构信息的命令。

通过执行这些SQL语句,可以获取表的字段、数据类型、约束、索引等详细信息。

下面列举了十个常用的查询表结构的SQL语句。

1. 查询指定表的所有字段和数据类型```sqlDESCRIBE table_name;```这条SQL语句将返回指定表的字段名、数据类型、是否允许为空、默认值等信息。

2. 查询指定表的所有字段和约束```sqlSHOW CREATE TABLE table_name;```这条SQL语句将返回指定表的字段名、数据类型、主键、外键、唯一约束等详细信息。

3. 查询指定表的主键```sqlSHOW KEYS FROM table_name WHERE Key_name = 'PRIMARY';```这条SQL语句将返回指定表的主键字段名。

4. 查询指定表的外键```sqlSELECTCONSTRAINT_NAME,COLUMN_NAME,REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAMEFROMINFORMATION_SCHEMA.KEY_COLUMN_USAGEWHERETABLE_NAME = 'table_name' ANDREFERENCED_TABLE_NAME IS NOT NULL;```这条SQL语句将返回指定表的外键约束名称、字段名、引用的表名和字段名。

5. 查询指定表的索引```sqlSHOW INDEX FROM table_name;```这条SQL语句将返回指定表的索引名称、索引类型、字段名等信息。

6. 查询指定表的注释```sqlSELECTTABLE_NAME,COLUMN_NAME,COLUMN_COMMENTFROMINFORMATION_SCHEMA.COLUMNSWHERETABLE_SCHEMA = 'database_name' ANDTABLE_NAME = 'table_name';```这条SQL语句将返回指定表的字段注释。

SQL常用增删改查语句

SQL常用增删改查语句

SQL常用增删改查语句SQL常用增删改查语句同学们知道SQL常用增删改查语句有哪些吗?店铺在上三层架构的课之前,把SQL的一些常用语句复习了一遍。

下面特地整理给大家复习!整理如下:1增1.1【插入单行】insert [into] <表名> (列名) values (列值)例:insert into Strdents (姓名,性别,出生日期) values ('开心朋朋','男','1980/6/15')1.2【将现有表数据添加到一个已有表】insert into <已有的新表> (列名) select <原表列名> from <原表名>例:insert into tongxunlu ('姓名','地址','电子邮件')select name,address,emailfrom Strdents1.3【直接拿现有表数据创建一个新表并填充】select <新建表列名> into <新建表名> from <源表名>例:select name,address,email into tongxunlu from strdents1.4【使用union关键字合并数据进行插入多行】insert <表名> <列名> select <列值> tnion select <列值>例:insert Students (姓名,性别,出生日期)select '开心朋朋','男','1980/6/15' union(union表示下一行)select '蓝色小明','男','19**/**/**'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2删2.1【删除<满足条件的>行】delete from <表名> [where <删除条件>]例:delete from a where name='开心朋朋'(删除表a中列值为开心朋朋的行)2.2【删除整个表】truncate table <表名>truncate table tongxunlu注意:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能用语有外建约束引用的表~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~3改update <表名> set <列名=更新值> [where <更新条件>]例:update tongxunlu set 年龄=18 where 姓名='蓝色小名'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~4查4.1``精确(条件)查询select <列名> from <表名> [where <查询条件表达试>] [order by <排序的`列名>[asc或desc]]4.1.1【查询所有数据行和列】例:select * from a说明:查询a表中所有行和列4.1.2【查询部分行列--条件查询】例:select i,j,k from a where f=5说明:查询表a中f=5的所有行,并显示i,j,k3列4.1.3【在查询中使用AS更改列名】例:select name as 姓名 from a where xingbie='男'说明:查询a表中性别为男的所有行,显示name列,并将name 列改名为(姓名)显示4.1.4【查询空行】例:select name from a where email is null说明:查询表a中email为空的所有行,并显示name列;SQL 语句中用is null或者is not null来判断是否为空行4.1.5【在查询中使用常量】例:select name, '唐山' as 地址 from Student说明:查询表a,显示name列,并添加地址列,其列值都为'唐山'4.1.6【查询返回限制行数(关键字:top percent)】例1:select top 6 name from a说明:查询表a,显示列name的前6行,top为关键字例2:select top 60 percent name from a说明:查询表a,显示列name的60%,percent为关键字4.1.7【查询排序(关键字:order by , asc , desc)】例:select namefrom awhere chengji>=60order by desc说明:查询a表中chengji大于等于60的所有行,并按降序显示name列;默认为ASC升序4.2``模糊查询4.2.1【使用like进行模糊查询】注意:like运算副只用于字符串,所以仅与char和varchar数据类型联合使用例:select * from a where name like '赵%'说明:查询显示表a中,name字段第一个字为赵的记录4.2.2【使用between在某个范围内进行查询】例:select * from a where nianling between 18 and 20说明:查询显示表a中nianling在18到20之间的记录4.2.3【使用in在列举值内进行查询】例:select name from a where address in ('北京','上海','唐山') 说明:查询表a中address值为北京或者上海或者唐山的记录,显示name字段4.3``.分组查询4.3.1【使用group by进行分组查询】例:select studentID as 学员编号,AVG(score) as 平均成绩 (注释:这里的score是列名)from score (注释:这里的score是表名)group by studentID说明:在表score中查询,按strdentID字段分组,显示strdentID字段和score字段的平均值;select语句中只允许被分组的列和为每个分组返回的一个值的表达式,例如用一个列名作为参数的聚合函数4.3.2【使用having子句进行分组筛选】例:select studentID as 学员编号,AVG(score) as 平均成绩 (注释:这里的score是列名)from score (注释:这里的score是表名)group by studentIDhaving count(score)>1说明:接上面例子,显示分组后count(score)>1的行,由于where只能在没有分组时使用,分组后只能使用having来限制条件。

sql语句或者条件查询

sql语句或者条件查询

sql语句或者条件查询标题:SQL查询常用操作1. 查询员工表中所有员工的姓名和工资```sqlSELECT 姓名, 工资 FROM 员工表;```2. 查询员工表中工资大于5000的员工姓名和工资```sqlSELECT 姓名, 工资 FROM 员工表 WHERE 工资 > 5000;```3. 查询员工表中工资在3000到5000之间的员工姓名和工资```sqlSELECT 姓名, 工资FROM 员工表WHERE 工资BETWEEN 3000 AND 5000;```4. 查询员工表中工资最高的员工姓名和工资```sqlSELECT 姓名, 工资FROM 员工表WHERE 工资= (SELECT MAX(工资) FROM 员工表);```5. 查询员工表中不重复的部门名称```sqlSELECT DISTINCT 部门名称 FROM 员工表;```6. 查询员工表中每个部门的员工数量```sqlSELECT 部门名称, COUNT(*) AS 员工数量 FROM 员工表 GROUP BY 部门名称;```7. 查询员工表中工资排名前三名的员工姓名和工资```sqlSELECT 姓名, 工资 FROM 员工表 ORDER BY 工资 DESC LIMIT 3; ```8. 查询员工表中没有分配部门的员工姓名和工资```sqlSELECT 姓名, 工资 FROM 员工表 WHERE 部门名称 IS NULL;```9. 查询员工表中姓氏为"张"的员工姓名和工资```sqlSELECT 姓名, 工资 FROM 员工表 WHERE 姓名 LIKE '张%';```10. 查询员工表中工资低于平均工资的员工姓名和工资```sqlSELECT 姓名, 工资FROM 员工表WHERE 工资< (SELECT AVG(工资) FROM 员工表);```以上是SQL查询中的一些常用操作,包括基本的数据筛选、排序、分组、聚合等功能。

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语句:用于对查询结果进行分组,并对每个组进行聚合操作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQL语句命令SELECT-------------------------------------------------数据查询CREATE(创建)、DROP(删除)、ALTER(修改)------------- 数据定义INSERT(出入)、UPDATE(修改)、DELETE(删除)---------- 数据操纵DRANT(授权)、REVOKE恢复)--------------------------- 数据控制创建数据库CREATE DATABASE〈数据库文件名〉ON [PRIMARY](NAME=数据库逻辑文件名,FILENAME=‘数据库文件名后缀及存取路径’[,SIZE=初始容量值[,MAXSIZE=最大容量值|UNLIMITED][,FILEGROWTH=增加值]) [, …][LOG ON(NAME=数据库逻辑文件名,FILENAME=‘数据库文件名后缀及存取路径’[,SIZE=初始容量值[,MAXSIZE=最大容量值|UNLIMITED][,FILEGROWTH=增加值]) [, …][FOR LOAD| FOR ATTACH]①数据库名是新定义数据库的文件名称,最多由128个字符组成,其文件后缀是MDF②ON [PRIMARY]子句用来指定数据库文件信息,可以用逗号分开列出多个文件及文件组文件,默认第一个为主文件③SIZE用数值表示,单位是KB或MB,默认为1MB④MAXSIZE用数值表示,单位是KB或MB,默认为MB;UNLIMITED则为整个磁盘容量⑤LOG ON子句定义多个事务日志文件若忽略该子句,默认生成一个与数据库文件同名后缀为LDF,容量为1/4数据库文件大小的事务日志文件⑥FOR ATTACH子句可以为已经存在的数据库文件创建一个新的数据库⑦FOR LOAD子句可以将备份直接装入新建数据库例1:在指定路径“E:\测试\”中,创建一个学生管理系统的数据库:“学生”,主文件名为“学生-DATA.MDF”,初始大小为5MB,最大尺寸为无限,增长速度为10%,;事务日志文件文件名为:“LOG.LDF”,初始大小为1MB,最大尺寸为3MB,增长速度为1MB.在SQL Server2000中启动查询分析器,在查询窗口输入T-SQL命令:CREATE DATABASE 学生ON PRIMARY(NAME=′学生-DATA.MDF′,FILENAME=‵E:\测试\学生\-DATA.MDF′,SIZE=5,MAXSIZE=UNLIMITED,FILEGROWTH=10%)LOG ON(NAME=′学生-log′,FILENAME=‵E:\测试\学生\-LOG.LDF′,SIZE=1,MAXSIZE=3,FILEGROWTH=1)创建数据表⑪SQL Server 2000中CREATE TABLE [数据库名。

[所有者。

]|〈表名〉〈列名〉〈数据类型〉[[DEFAULT初值]|[IDENTITY[(初值,增量)]]][ROWGUIDCOL] [NULL]|NOT NULL]PRIMARY KEY|UNIQUE] [′…])[CHECK (逻辑表达式)]①表名是命令必需的,是用户要定义(创建)的新表名称②在圆括号中定义表的各列,必需定义列名、数据类型、长度,各列之间用逗号分隔③选项DEFAULT可以给定该列初始值④选项IDENTITY可以指定该列为表的标识列,注意此选项不能与DEFAULT选项同时使用⑤选项ROWGUIDCOL指定该列为该表的唯一标识行列⑥选项NULL和NOT NULL只能任选其一⑦选项PRIMARY KEY指定一列或多列组合为表的主码,一个表只有一个主码,系统会自动为此列或列组建立唯一索引⑧选项UNIQUE指定一列或多列组合为表候选码,在表中指定列对于各行具有唯一性⑨选项CHECK限定指定列的取值范围⑫Visual Foxpro 6.0CREATE TABLE|DBF〈表名〉[FREE](〈字段名1〉〈类型〉(〈长度〉[′〈小数位数〉])[′〈字段名2〉〈类型〉(〈长度〉[′〈小数位数〉])……][NULL][NOTNULL][DEFAULT字段初始值][ PRIMARY KEY][ UNIQUE][CHECK(表的有效性规则)] [ERROR“错误信息”]例2:建立学生数据表XS.DBF,其中有姓名XM、年龄NL、性别XB三个字段;其中姓名不为空,取值唯一CREATE TABLE XS(XM C(6) NOT NULL UNIQUE,NL N (4,1),XB L)还可以对年龄字段的值增加有效性和初值,执行以下命令:CREATE TABLEXS3(XM C(6) PRIMARY KEY,NL N (4,1) CHECK(NL>16 AND NL<26) ERROR“年龄值超出范围!” DEFAULT 18,XB L) 数据类型⑪SQL Server 2000中①字符型CHAR:按固定长度存放字符,每个字符占一个字节,用CHAR(n)的形式定义,范围1-8000VCHAR:不按固定长度存放,用VCHAR(n)的形式定义,范围1-8000NCHAR:与CHAR相同,但每个字符占两个字节,最多存放4000个字节NVCHAR: 与VCHAR相同,但每个字符占两个字节,最多存放4000个字节②整形数。

用于存放整数INT:存放-231-231-1之间的整数,一个整数占4个字节SMALLINT: 存放-215-215-1之间的整数,一个整数占2个字节TINYINT:存放0-255之间的正整数,一个整数占1个字节BIGINT: -263-263-1之间的整数,一个整数占8个字节③浮点数。

用来存放实数REAL:一个浮点数占4个字节,最大可以精确到7位FLOAT:默认为8个字节的浮点数,可以用FLOAT(n),精度15位DECIMAL和NUMERIC:这两个是同义的,一般使用DECIMAL,可以用DEC(p,s) ,精度38位.其中p表示精度位数(1-38),s表示小数位数(0-p)④日期时间。

存放日期和时间信息DATETIME:日期和时间混合存放,范围是1753年1月1日零时-9999年12月31日23时59分59秒,占8个字节SMALLDATETIME:只占4个字节存放数据,范围1900年1月1日-2079年6月6日,精确到分⑤货币型。

专门用于货币数据处理MONEY:按整数4个字节,小数4个字节的形式存放,可以精确到万分之一SMALLMONEY: 按整数2个字节,小数2个字节的形式存放,精确到万分之一⑥二进制数。

包括BINARY固定长度和VARBINARY可变长度两种定义类型⑦文本和图形。

TEXT:存放大文本数据NTEXT:与TEXT相同,但是每个字符占2个字节IMAGE:用于存放照片、目录图片或图画等⑧特殊类型。

TIMESTAMP:时间戳类型UNIQUEIDENTIFIER:全局标识代码⑫Visual Foxpro 6.0字符型(C);数值型(N);货币型(Y);日期型(D);日期时间型(T);逻辑型(L),只有真(.T.)和假(.F.)两种;备注型(M);通用型(G),用于存储OLE对象的数据修改表结构⑪SQL Server 2000中ALTER TABLE 表名ADD|ALTER COLUMN |DROP COLUMN〈字段名1〉[类型[(长度)]][NULL] [NOT NULL] […]⑫Visual Foxpro 6.0中ALTER TABLE 〈表名〉ADD|ALTER [COLUMN]〈字段名1〉〈类型〉(〈长度〉[,〈小数位数〉][NULL] [NOT NULL]例3:在学生数据库中有一个STUDENT1表,先添加列:院系YX CHAR(4),出生日期CSPQ DATETIME,备注BZ NTEXT;再将XH列改为INT型数据,将XM列改为长度10,将NL列改为SMALLINT型数据;最后删除ZP列和RQ列。

SQL Server 2000USE 学生ALTER TABLE STUDENT1 ADD YX CHAR(4),CSRQ DATETIME,BZ NTEXTALTER TABLE STUDENT1 ALTER COLUMN XH INTALTER TABLE STUDENT1 ALTER COLUMN XM CHAR(10)ALTER TABLE STUDENT1 ALTER COLUMN NL SMALLINTALTER TABLE STUDENT1 DROP COLUMN RQ,ZPVisual Foxpro 6.0中例4:要为学生数据表XS.DBF增加职称字段ZC,并将年龄字段NL的宽度改为两位小数ALTER TABLE XS ADD ZC C(6) ALTER NL N (2,0)表的删除在SQL Server 2000和Visual Foxpro 6.0中删除数据表的命令是一样的DROP TABLE 〈表名〉数据的插入SQL Server 2000INSERT [INTO]〈表名〉[(列名)] VALUES(表达式)①列名是要插入数据表的每个列名,各列名之间用逗号隔开,如果省略则表示所有列②表达式是要插入的各列值,各列值之间用逗号隔开,顺序和数据类型必须与表列一致。

表达式可以是常量、变量、函数或运算式例5:在SQL Server 2000中为STUDENT表插入3条记录,内容见表USE 学生INSERT STUDENT(XH,XM,XB,NL,CJ,RQ)VALUES(′20110211′,′范志刚′,′男′,21,91,NULL,GETDATE()) INSERT STUDENT(XH,XM,CJ)VALUES(′20110254′,′李明云′,87)INSERT STUDENT(XH,XM,XB,CJ)VALUES (′20110803′,′张岚′,′女′,94)Visual Foxpro 6.0中INSERT INTO〈表名〉(〈字段名1〉,[,〈字段名2〉]……) VALUES〈表达式1〉[〈,表达式2〉]……)例6:在Visual Foxpro 6.0中,要在“学生”表XS中插入一条记录(李莉,20,女),再插入一条记录(王小明),最后再用数组插入一条记录(张勇敢,21,男)INSERT INTO XS(XM,NL,XB) VALUES(“李莉”,20,.F.)INSERT INTO XS(XM) VALUES “王小明”)DIME(用来定义数组) XY[3]XY[1]= “张勇敢”XY[2]=21XY[3]=.T.INSERT INTO XS1 FROM ARRAY XY数据的更新SQL Server 2000UPDATE 〈表名〉 SET 列名=〈表达式|DEFAULT|NULL〉[,…][WHERE〈条件〉]例7:将STUDENT表中NL值都更新为20岁,再将李明云的XH改为20110251,成绩改为95分。

相关文档
最新文档