MySQL查询语句大全集锦(经典珍藏)

合集下载

mysql数据库查询语句大全

mysql数据库查询语句大全

mysql数据库查询语句大全MySQL是一个功能强大的关系型数据库管理系统,支持多种查询语句,涵盖了数据检索、更新、删除等操作。

下面是一些常见的MySQL查询语句:数据查询:1.SELECT:从数据库中检索数据。

SELECT column1,column2 FROM table_name WHERE condition;2.DISTINCT:返回唯一不同的值。

SELECT DISTINCT column FROM table_name;3.WHERE:添加筛选条件。

SELECT*FROM table_name WHERE column=value;4.ORDER BY:按特定列排序检索结果。

SELECT*FROM table_name ORDER BY column ASC/DESC;5.LIMIT:限制返回的记录数。

SELECT*FROM table_name LIMIT 10;数据更新和删除:1.UPDATE:更新表中的数据。

UPDATE table_name SET column=value WHERE condition;2.DELETE:从表中删除行。

DELETE FROM table_name WHERE condition;表操作:1.CREATE TABLE:创建表格。

CREATE TABLE table_name(column1 datatype,column2 datatype,...);2.ALTER TABLE:修改表格。

ALTER TABLE table_name ADD column datatype;3.DROP TABLE:删除表格。

DROP TABLE table_name;4.TRUNCATE TABLE:清空表格数据。

TRUNCATE TABLE table_name;聚合函数:1.SUM:返回特定列的总和。

SELECT SUM(column)FROM table_name;2.COUNT:返回行数。

mysql数据库常用语句大全

mysql数据库常用语句大全

mysql数据库常用语句大全1.连接数据库:连接本地数据库:mysql -u root -p连接远程数据库:mysql -h 192.169.22.199 -u root -p退出数据库:exit2.创建数据库:create database payment;使用 mysqladmin 创建数据库mysqladmin -u root -p create abc_db; 3.显示所有数据库:show databases;4.删除数据库:drop database payment;使用 mysqladmin 删除数据库mysqladmin -u root -p drop abc_db5.选择数据库:use home_db;6.数据类型:数值类型:TINYINT:SMALLINT:MEDIUMINT:INT(INTEGER):BIGINT:FLOAT:DOUBLE:DECIMAL:日期和时间类型:DATE:TIEM:DATETIME:YEAR:TIMESTAMP:字符串类型:CHAR:VARCHAR:TINYBLOB:TINYTEXT:BLOB:TEXT:MEDIUMBLOB:MEDIUMTEXT:LONGBLOB:LONGTEXT:7.创建数据表:CREATE TABLE IF NOT EXISTS `t_order`( `id` INT(10) UNSIGNED AUTO_INCREMENT,`title` VARCHAR(100) NOT NULL,PRIMARY KEY(`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;8.删除数据表:DROP TABLE t_order;9.insert 插入:插入一条数据:INSERT INTO t_order(title)VALUES('手机');INSERT 插入多条数据:INSERT INTO t_order(title)VALUES('笔记本'),('平板电脑');10.select 查询:所有字段查询:SELECT * FROM t_order;某些字段查询:SELECT t_order.id, t_order.title FROM t_order;分页查询:SELECT t_order.title FROM t_order WHERE id LIMIT 1,10 11.where 条件:OR,AND的应用:SELECT * FROM t_order WHERE title ='手机' OR title='笔记本';SELECT * FROM t_order WHERE title ='手机' AND id=2;12.update 更新:UPDATE t_order SET title='苹果手机' WHERE id =2;13.delete 删除:DELETE FROM t_order WHERE id=2;14.like 查询SELECT * FROM t_order WHERE title LIKE '%手机%';SELECT * FROM t_order WHERE title LIKE '_机';14.union 联合查询:连接两个以上的 SELECT 语句合并成一个结果集合SELECT * FROM t_order UNION SELECT * FROM t_user; SELECT * FROM t_order UNION ALL SELECT * FROM t_user;15.order by 排序:升序排序:SELECT * FROM t_order ORDER BY id ASC;降序排序:SELECT * FROM t_order ORDER BY id DESC;16.group by 分组:SELECT title, count(*) as total FROM t_order GROUP BY title;17.join 连接:inner join(内连接) on:获取两个表中字段匹配关系的记录SELECT * FROM t_order o INNER JOIN t_user u ON o.id =u.id;left join(左连接)on:获取左表所有记录,即使右表没有对应匹配的记录SELECT * FROM t_order o LEFT JOIN t_user u ON o.id =u.id;right join(右连接)on:获取右表所有记录,即使左表没有对应匹配的记录SELECT * FROM t_order o RIGHT JOIN t_user u ON o.id =u.id;18.null的处理:null值的判断:SELECT * FROM t_user WHERE name IS NULL;非null值的判断:SELECT * FROM t_user WHERE name IS NOT NULL;19.REGEXP 正则表达式:SELECT * FROM t_order WHERE title REGEXP('手机$'); SELECT * FROM t_order WHERE title REGEXP('^笔');。

最全的mysql查询语句整理

最全的mysql查询语句整理

最全的mysql查询语句整理-- 基本查询select * from pet-- 列出指定的列select name, owner form pet-- 直接进⾏算术运算,对字段起别名select sin(1+2) as sin--where 条件select * from pet where (birth>'1980' and species='dog') or species='bird'-- 对null 的条件select * from pet where sex is not null-- 所有名字第四位是n 的宠物信息是select * from pet where owner like '___n%'-- 所有主⼈名叫gwen 或benny 的宠物select * from pet where owner in ('gwen' , 'benny')-- 查询出⽣⽇期在90 年代是宠物,相当与 >= and <=select * from pet where birth between '1990' and '1999'-- 按主⼈姓名排序,相同的按宠物姓名倒序排列select * from pet order by owner, name desc-- 查询性别为公的宠物,按⽣⽇倒序排列select * from pet where sex='m' order by birth desc--char_lenngth() 返回的字符的长度,length() 返回字节长度SELECT owner,length(owner),char_length(owner) FROM pet p;-- 列出养有宠物狗的⼈名select distinct owner from pet where species='dog'-- ⽤两种⽅法查询出所有狗和猫的名字、出⽣年份、出⽣⽉份select name, left(birth,4) as year, mid(birth, 6, 2) as month from petwhere species='dog' or species='cat'select name, year(birth) as year, month(birth) as month from petwhere species in('dog','cat')-- 查询所有名字中存在字母'e' 的⼈,将他们养的宠物按类别、年龄排序select name, species, birthfrom pet-- 数字函数select round(2.345,2), truncate(2.345,2), mod(323,5)-- ⽇期函数select now(), curdate(), curtime()select adddate('2007-02-02', interval 31 day)-- 求出所有宠物的年龄select name,birth,truncate(datediff(now(),birth)/365,0) as age1,year(now())-year(birth) - (dayofyear(birth)>dayofyear(now())) as age2 from pet-- 分组函数select min(birth),max(birth),avg(birth),count(*),count(sex),sum(birth)from pet-- 每种宠物各有⼏只select species,count(*)from petgroup by species-- 查询年龄最⼤的宠物的信息select * from pet where birth =(select max(birth) from pet)-- 每年各出⽣了⼏只宠物select year(birth), count(*) from pet group by year(birth)-- 鸟和猫的性别⽐例select species, sex, count(*)from petwhere species in ('cat','bird')group by species, sex-- 各种宠物年龄的和select species, sum(truncate(datediff(now(),birth)/365,0)) as SumAge from petgroup by species-- 数量⼤于1 的宠物种类select species, count(*) as chaving c>=2-- 基本双表关联select ,a.species, a.sex,b.date, b.type, b.remark from pet a,event bwhere = -- 查询宠物产仔时的年龄select , a.species,truncate(datediff(b.date,a.birth)/365,0) as agefrom pet a,event bwhere = and b.type='litter'--90 年代出⽣的狗的事件列表select ,birth,species,sex,date,type,remarkfrom pet a,event bwhere = and birth between '1990' and '1999' and species='dog'-- 活着的宠物按发⽣的事件类型分组,看各种事件发⽣的次数select type, count(*)from pet a, event bwhere = and a.death is nullgroup by type-- 记录的事件数量超过1 条的宠物信息select ,species,sex,count(*)from pet a, event bwhere = group by having count(*)>=2-- 列出发⽣了两件事情的宠物的事件记录信息select ,type,date,remark,b.species,b.sex,b.owner from event a, pet bwhere = and in(select namehaving count(*)=2)-- 插⼊语句insert into pet (name,species,birth)values ('KKK','snake','2007-01-01');insert into petvalues ('KK','Diane','cat','f',null,null);insert into pet set name='k',owner='Benny'-- 更新语句update pet set species='snake',sex='f',birth=now()where name='k'-- 将事件表中⽣⽇的⽇期,更新到pet 表中相应宠物的birth 字段update pet aset birth = (select datefrom event bwhere = and b.type='birthday')where in (select namefrom eventwhere type='birthday')-- 删除语句delete from pet where name like 'k%'基本查询语句SELECT * FROM `test` WHERE 1 //简单查询SELECT id,uid FROM newdb.`test` WHERE 1 //查询ID、UID等字段SELECT remark as r FROM `test` WHERE 1 //别名查询SELECT * FROM `test` WHERE id=1,3 //条件查询,相等SELECT * FROM `test` WHERE id<>2,3 //条件按查,不相等SELECT * FROM `test` WHERE id in (1,2,4) //in查询,即查询ID为1,2,4的数据SELECT * FROM `test` WHERE not in (2,3) //in查询,查询ID不是2,3的数据SELECT * FROM `test` WHERE `uid` like '%王%' //like模糊查询,%*%前后匹配SELECT * FROM `test` WHERE id BETWEEN 1 and 3 //条件查询,中间数据SELECT * FROM `test` WHERE id NOT BETWEEN 1and3 //条件查询SELECT * FROM `test` WHERE id=1 and `remark`='学⽣' //多个条件SELECT * FROM `test` group by `remark` //查询排序ASC 升序、DESC降序。

mysql查询语句

mysql查询语句

mysql查询语句mysql 查询语句select * from school;指定查询列select id,name from school;起别名select id,name as 姓名,sex as 性别,age as 年龄 from student;去重查询select distinct sex from student;where查询过滤select * from student where sex='男' and age>18;⽐较运算符 < <= > >= !=select * from student where age<18;select * from student where age<=20;select * from student where age>18;select * from student where age>=18;select * from student where age!=18;逻辑运算符 (AND,OR, NOT)select * from student where age>18 and age<20;select * from student where age<19 or age>20;select * from student where `name` not like "王五";范围运算符 BETWEENselect * from student where age between 18 and 20;列表运算符 INselect * from student where age in(19,20);⾮条件(!=)select * from student where `name` != "王五";模糊查询 LIKE通配符: %任意多个字符,_单个字符,[]指定范围的单个字符,[^]不在指定范围的单个字符select * from student where name like '%⼩%';order by排序语句asc升序(默认),desc降序select *from student order by age desc;group by语句统计函数COUNT 求组中项数SUM 求和AVG 求平均值MAX 求最⼤值MIN 求最⼩值select class_id,avg(age),max(age) from student group by class_id;操作多表数据join语句内连接select * from student join class on class.id=student.class_id;左外连接select * from student left outer join class on class.id=student.class_id;右外连接select * from student right outer join class on class.id=student.class_id;left join语句select student.id, , as class_name from student left join class on student.class_id=class.id;。

mysql查询语句大全及用法

mysql查询语句大全及用法

mysql查询语句大全及用法MySQL是一种常用的关系型数据库管理系统,提供了强大的查询语言(SQL)来操作和管理数据库。

下面是一些常见的MySQL查询语句及其用法:1. SELECT语句:-用法:用于从数据库中检索数据。

-示例:SELECT * FROM 表名;(检索表中的所有数据)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. WHERE子句:-用法:用于在SELECT、UPDATE和DELETE语句中指定条件。

-示例:SELECT * FROM 表名WHERE 列= 值;(根据条件检索数据)6. ORDER BY子句:-用法:用于对结果进行排序。

-示例:SELECT * FROM 表名ORDER BY 列ASC/DESC;(根据指定列的升序或降序排序数据)7. GROUP BY子句:-用法:用于将结果分组。

-示例:SELECT 列, COUNT(*) FROM 表名GROUP BY 列;(根据指定列对数据进行分组并计数)8. JOIN语句:-用法:用于在多个表之间建立连接。

-示例:SELECT * FROM 表1 JOIN 表2 ON 表1.列= 表2.列;(根据指定列在两个表之间建立连接)9. DISTINCT关键字:-用法:用于返回唯一的结果。

-示例:SELECT DISTINCT 列FROM 表名;(返回指定列的唯一结果)10. LIMIT关键字:-用法:用于限制结果集的行数。

mysql必背50条语句

mysql必背50条语句

mysql必背50条语句1. 创建数据库:```sqlCREATE DATABASE dbname;```2. 删除数据库:```sqlDROP DATABASE dbname;```3. 选择数据库:```sqlUSE dbname;```4. 显示所有数据库:```sqlSHOW DATABASES;```5. 创建表:```sqlCREATE TABLE tablename (column1 datatype,column2 datatype,...);```6. 查看表结构:```sqlDESC tablename;```7. 删除表:```sqlDROP TABLE tablename;```8. 插入数据:```sqlINSERT INTO tablename (column1, column2, ...) VALUES (value1, value2, ...);```9. 查询数据:```sqlSELECT * FROM tablename;```10. 条件查询:```sqlSELECT * FROM tablename WHERE condition;```11. 更新数据:```sqlUPDATE tablename SET column1 = value1, column2 = value2 WHERE condition;```12. 删除数据:```sqlDELETE FROM tablename WHERE condition;```13. 查找唯一值:```sqlSELECT DISTINCT column FROM tablename;```14. 排序数据:```sqlSELECT * FROM tablename ORDER BY column ASC/DESC;```15. 限制结果集:```sqlSELECT * FROM tablename LIMIT 10;```16. 分页查询:```sqlSELECT * FROM tablename LIMIT 10 OFFSET 20;```17. 计算行数:```sqlSELECT COUNT(*) FROM tablename;```18. 聚合函数:```sqlSELECT AVG(column), SUM(column), MIN(column), MAX(column) FROM tablename;```19. 连接表:```sqlSELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column;```20. 创建索引:```sqlCREATE INDEX indexname ON tablename (column);```21. 查看索引:```sqlSHOW INDEX FROM tablename;```22. 删除索引:```sqlDROP INDEX indexname ON tablename;```23. 备份整个数据库:```sqlmysqldump -u username -p dbname > backup.sql;```24. 恢复数据库:```sqlmysql -u username -p dbname < backup.sql;```25. 修改表结构:```sqlALTER TABLE tablename ADD COLUMN newcolumn datatype;```26. 重命名表:```sqlRENAME TABLE oldname TO newname;```27. 增加主键:```sqlALTER TABLE tablename ADD PRIMARY KEY (column);```28. 删除主键:```sqlALTER TABLE tablename DROP PRIMARY KEY;```29. 增加外键:```sqlALTER TABLE tablename ADD CONSTRAINT fk_name FOREIGN KEY (column) REFERENCES othertable(column);```30. 删除外键:```sqlALTER TABLE tablename DROP FOREIGN KEY fk_name;```31. 查看活动进程:```sqlSHOW PROCESSLIST;```32. 杀死进程:```sqlKILL process_id;```33. 给用户授权:```sqlGRANT permission ON dbname.tablename TO 'username'@'host';```34. 撤销用户权限:```sqlREVOKE permission ON dbname.tablename FROM 'username'@'host';```35. 创建用户:```sqlCREATE USER 'username'@'host' IDENTIFIED BY 'password';```36. 删除用户:```sqlDROP USER 'username'@'host';```37. 修改用户密码:```sqlSET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');```38. 查看用户权限:```sqlSHOW GRANTS FOR 'username'@'host';```39. 启用外键约束:```sqlSET foreign_key_checks = 1;```40. 禁用外键约束:```sqlSET foreign_key_checks = 0;```41. 启用查询缓存:```sqlSET query_cache_type = 1;```42. 禁用查询缓存:```sqlSET query_cache_type = 0;```43. 查看服务器版本:```sqlSELECT VERSION();```44. 查看当前日期和时间:```sqlSELECT NOW();```45. 查找匹配模式:```sqlSELECT * FROM tablename WHERE column LIKE 'pattern';```46. 计算平均值:```sqlSELECT AVG(column) FROM tablename;```47. 查找空值:```sqlSELECT * FROM tablename WHERE column IS NULL;```48. 日期比较:```sqlSELECT * FROM tablename WHERE date_column > '2022-01-01';```49. 将结果导出为CSV 文件:```sqlSELECT * INTO OUTFILE 'output.csv' FIELDS TERMINATED BY ',' FROM tablename;```50. 将结果导入其他表:```sqlLOAD DATA INFILE 'input.csv' INTO TABLE tablename FIELDS TERMINATED BY ',';。

mysql一些常用的查询语句总结

mysql一些常用的查询语句总结

mysql⼀些常⽤的查询语句总结⼯作中会遇到⼀些⽐较有⽤的mysql查询语句,有了它,可以对mysql进⾏更全⾯的维护和管理,下⾯就写⼀下我记录的1、按照字段ru_id查询dsc_order_goods表中ru_id出现次数由多到少排序SELECT ru_id,count(*) AS count FROM `dsc_order_goods` GROUP BY ru_id ORDER BY count DESC;2、允许远程⽤户登陆mysqlgrant all PRIVILEGES on *.* to root@'192.168.1.101' identified by 'pwd';3、EXPLAIN⽤法sql语句前⾯加上EXPLAIN可以查看这段sql的性能其中⾥⾯的举两个栗⼦EXPLAIN SELECT * FROM `dsc_merchants_server` ;如上图rows代表要查询的⾏数,type如果是ALL就是所有⾏都要查,显然这很慢,所以我们要改⼀下EXPLAIN SELECT server_id FROM `dsc_merchants_server` WHERE server_id=1;按需查询然后配合EXPLAIN会⼤⼤提⾼⼤数据量时候的查询速度4、mysql centos备份数据库(直接操作shell命令⾏即可)mysqldump -uroot -ppwd dbname > /mnt/sql_back/`date +%Y-%m-%d_%H%M%S`.sql5、查看单张mysql表的⼤⼩select concat(round((data_length+index_length)/1024/1024,2),'MB') as data,table_rows from information_schema.tables wheretable_schema='db_100' and table_name='dsc_order_info';查看多张⽤select concat(round((data_length+index_length)/1024/1024,2),'MB') as data,table_rows,table_name from information_schema.tables where table_schema='db_100';6、复制表中的内容然后进⾏插⼊,做数据时候⽤到insert into t_item (sellerId) select sellerId from t_item where 1;7、查看连接数show processlist;8、查看mysql的信息show variables;。

mysql数据库常用语句大全

mysql数据库常用语句大全

以下是一些 MySQL 数据库中常用的 SQL 语句,包括创建、查询、更新和删除等操作。

请注意,这只是一个概览,实际使用中可能需要根据具体情况进行调整。

创建数据库和表
1.创建数据库:
2.使用数据库:
3.创建表:
插入数据
1.插入单行数据:
2.插入多行数据:
查询数据
1.查询所有数据:
2.条件查询:
3.排序查询:
4.分组统计:
5.连接查询:
更新和删除数据1.更新数据:
2.删除数据:
数据库维护
1.备份数据库:
2.还原数据库:
3.删除表:
4.删除数据库:
这只是 MySQL 中常见的一些 SQL 语句,具体的使用还需要根据实际情况进行调整。

注意在执行删除和更新语句时要格外小心,确保条件和目标是正确的,以免误删或误改数据。

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

ibSQL查询语句大全集锦MYSQL查询语句大全集锦1:使用SHOW语句找出在服务器上当前存在什么数据库:mysql> SHOW DATABASES;2:2、创建一个数据库MYSQLDATAmysql> CREATE DATABASE MYSQLDATA;3:选择你所创建的数据库mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!) 4:查看现在的数据库中存在什么表mysql> SHOW TABLES;5:创建一个数据库表mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));6:显示表的结构:mysql> DESCRIBE MYTABLE;7:往表中加入记录mysql> insert into MYTABLE values (”hyq”,”M”);8:用文本方式将数据装入数据库表中(例如D:/mysql.txt)mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE;9:导入.sql文件命令(例如D:/mysql.sql)mysql>use database;mysql>source d:/mysql.sql;10:删除表mysql>drop TABLE MYTABLE;11:清空表mysql>delete from MYTABLE;12:更新表中数据mysql>update MYTABLE set sex=”f” where name=’hyq’;以下是无意中在网络看到的使用MySql的管理心得,在windows中MySql以服务形式存在,在使用前应确保此服务已经启动,未启动可用net start mysql命令启动。

而Linux中启动时可用“/etc/rc.d/init.d/mysqld start”命令,注意启动者应具有管理员权限。

刚安装好的MySql包含一个含空密码的root帐户和一个匿名帐户,这是很大的安全隐患,对于一些重要的应用我们应将安全性尽可能提高,在这里应把匿名帐户删除、 root帐户设置密码,可用如下命令进行:use mysql;delete from User where User=”";update User set Password=PASSWORD(’newpassword’) where User=’root’;如果要对用户所用的登录终端进行限制,可以更新User表中相应用户的Host字段,在进行了以上更改后应重新启动数据库服务,此时登录时可用如下类似命令:mysql -uroot -p;mysql -uroot -pnewpassword;mysql mydb -uroot -p;mysql mydb -uroot -pnewpassword;上面命令参数是常用参数的一部分,详细情况可参考文档。

此处的mydb是要登录的数据库的名称。

在进行开发和实际应用中,用户不应该只用root用户进行连接数据库,虽然使用root用户进行测试时很方便,但会给系统带来重大安全隐患,也不利于管理技术的提高。

我们给一个应用中使用的用户赋予最恰当的数据库权限。

如一个只进行数据插入的用户不应赋予其删除数据的权限。

MySql的用户管理是通过 User表来实现的,添加新用户常用的方法有两个,一是在User表插入相应的数据行,同时设置相应的权限;二是通过GRANT命令创建具有某种权限的用户。

其中GRANT的常用用法如下:grant all on mydb.* to NewUserName@HostName identified by “password” ;grant usage on *.* to NewUserName@HostName identified by “password”;grant select,insert,update on mydb.* to NewUserName@HostName identified by “password”;grant update,delete on mydb.TestTable to NewUserName@HostName identified by “password”;若要给此用户赋予他在相应对象上的权限的管理能力,可在GRANT后面添加WITH GRANT OPTION选项。

而对于用插入User表添加的用户,Password字段应用PASSWORD 函数进行更新加密,以防不轨之人窃看密码。

对于那些已经不用的用户应给予清除,权限过界的用户应及时回收权限,回收权限可以通过更新User表相应字段,也可以使用REVOKE操作。

下面给出本人从其它资料()获得的对常用权限的解释:全局管理权限:FILE: 在MySQL服务器上读写文件。

PROCESS: 显示或杀死属于其它用户的服务线程。

RELOAD: 重载访问控制表,刷新日志等。

SHUTDOWN: 关闭MySQL服务。

数据库/数据表/数据列权限:ALTER: 修改已存在的数据表(例如增加/删除列)和索引。

CREATE: 建立新的数据库或数据表。

DELETE: 删除表的记录。

DROP: 删除数据表或数据库。

INDEX: 建立或删除索引。

INSERT: 增加表的记录。

SELECT: 显示/搜索表的记录。

UPDATE: 修改表中已存在的记录。

特别的权限:ALL: 允许做任何事(和root一样)。

USAGE: 只允许登录–其它什么也不允许做。

一、简单查询简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。

它们分别说明所查询列、查询的表或视图、以及搜索条件等。

例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。

复制内容到剪贴板代码:SELECT `nickname`,`email`FROM `testtable`WHERE `name`='张三'(一) 选择列表选择列表(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和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定:复制内容到剪贴板代码:SELECT `username`,citytable.cityidFROM `usertable`,`citytable`WHERE usertable.cityid=citytable.cityid在FROM子句中可用以下两种格式为表或视图指定别名:复制内容到剪贴板代码:表名 as 别名表名别名例如上面语句可用表的别名格式表示为:复制内容到剪贴板代码:SELECT `username`,b.cityidFROM usertable a,citytable bWHERE a.cityid=b.cityid SELECT不仅能从表或视图中检索数据,它还能够从其它查询语句所返回的结果集合中查询数据。

例如:复制内容到剪贴板代码:SELECT a.au_fname+a.au_lnameFROM authors a,titleauthor ta(SELECT `title_id`,`title`FROM `titles`WHERE ` ytd_sales`>10000) AS tWHERE a.au_id=ta.au_idAND ta.title_id=t.title_id此例中,将SELECT返回的结果集合给予一别名t,然后再从中检索数据。

(三) 使用WHERE子句设置查询条件WHERE子句设置查询条件,过滤掉不需要的数据行。

例如下面语句查询年龄大于20的数据:复制内容到剪贴板代码:SELECT * FROM usertable WHERE age>20 WHERE子句可包括各种条件运算符:比较运算符(大小比较):>、>=、=、、!>、!=10 AND age复制内容到剪贴板代码:SELECT * FROM `usertable` ORDER BY `age` DESC,`userid` ASC另外,可以根据表达式进行排序。

二、联合查询UNION运算符可以将两个或两个以上上SELECT语句的查询结果集合合并成一个结果集合显示,即执行联合查询。

UNION的语法格式为:复制内容到剪贴板代码:select_statementUNION [ALL] selectstatement[UNION [ALL] selectstatement][…n]其中selectstatement为待联合的SELECT查询语句。

相关文档
最新文档