常用的语句
"SELECT * FROM Persons" // 从 "Persons" 表中选取所有的列
"UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson'" // 修改地址(address),'并添加'城市名称(city)
"DELETE FROM Person WHERE LastName = 'Wilson' " // 删除"LastName"内容为"Wilson"的整一行
"DELETE FROM Person WHERE LastName = 'Wilson'and id='1' " // 删除"LastName"内容为"Wilson"且"id"为"1"的整一行
"SELECT LastName,FirstName FROM Persons" // 取名为 "LastName" 和 "FirstName" 的列的内容(从名为 "Persons" 的数据库表)
"delete from table_name where id='5'and user='ceshi'" // 多信息定位删除
"SELECT * FROM Persons WHERE City='Beijing'" // 单信息查询
"SELECT * FROM table_name where id='5' and user='ceshi'" // 多信息查询一
"SELECT * FROM table_name WHERE user='Thomas' OR id='1'" // 多信息查询二
"SELECT * FROM table_name where (user = ceshi or user = admin) and id > 200" // or加and的用法
"INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)" // 插入数据方法一
"INSERT INTO 表名称 VALUES (值1, 值2,....)" // 插入数据方法二
"SELECT Company FROM Orders" // 从"Orders"表中 "Company" 列中所有的值
"SELECT DISTINCT Company FROM Orders " // 从 "Orders"表中Company" 列中仅选取唯一不同的值
"SELECT LastName,FirstName FROM Persons" // 获取名为 "LastName" 和 "FirstName" 的列的内容(从名为 "Persons" 的数据库表)
"SELECT * FROM Persons" // 从 "Persons" 表中选取所有的列(用符号 * 取代列的名称)
Top Like 通配符
"SELECT TOP 2 * FROM Persons" // 从 "Persons" 表中选取头两条记录
"SELECT TOP 50 PERCENT * FROM Persons" // 从 "Persons" 表中选取 50% 的记录
"SELECT * FROM Persons WHERE City LIKE 'N%'" // 从"Persons" 表中选取居住在以 "N" 开始的城市里的人
"SELECT * FROM Persons WHERE City LIKE '%g'" // 从 "Persons" 表中选取居住在以 "g" 结尾的城市里的人
"SELECT * FROM Persons WHERE City LIKE '%lon%'" // 从 "Persons" 表中选取居住在包含 "lon" 的城市里的人
"SELECT * FROM Persons WHERE City NOT LIKE '%lon%'" // 从 "Persons" 表中选取居住在不包含 "lon" 的城市里的人
"SELECT * FROM Persons WHERE City LIKE 'Ne%'" // 从 "Persons" 表中选取居住在以 "Ne" 开始的城市里的人
"SELECT * FROM Persons WHERE FirstName LIKE '_eorge'" // 从"Persons" 表中选取名字的第一个字符之后是 "eorge" 的人
"SELECT * FROM Persons WHERE LastName LIKE 'C_r_er'" // 从 "Persons" 表中选取的这条记录的姓氏以 "C" 开头,然后是一个任意字符,然后是 "r",然后是任意字符,然后是 "er"
"SELECT * FROM Persons WHERE City LIKE '[ALN]%'" // 从 "Persons" 表中选取居住的城市以 "A" 或 "L" 或 "N" 开头的人
"SELECT * FROM Persons WHERE City LIKE '[!ALN]%'" // 从 "Persons" 表中选取居住的城市不以 "A" 或 "L" 或 "N" 开头的人
In Betweem Aliases
"SELECT * FROM Persons WHERE LastName IN ('Adams','Carter')" // 从表中选取姓氏为 Adams 和 Carter 的人
"SELECT * FROM Persons WHERE LastName BETWEEN 'Adams' AND 'Carter'" // 以字母顺序显示介于 "Adams"(包括)和 "Carter"(不包括)之间的人
"SELECT * FROM Persons WHERE LastName NOT BETWEEN 'Adams' AND 'Carter'" // 用上面的例子显示范围之外的人,请使用 NOT 操作符
"SELECT po.OrderID, p.LastName, p.FirstName FROM Persons AS p, Product_Orders AS po WHERE p.LastName='Adams' AND p.FirstName='John'" // 假设我们有两个表分别是:"Persons" 和 "Product_Orders"。我们分别为它们指定别名 "p" 和 "po"。现在,我们希望列出 "John Adams" 的所有定单。
SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据
"SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons, Orders WHERE Persons.Id_P = Orders.Id_P" // 通过引用两个表的方式,从两个表中获取数据
"SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons INNER JOIN Orders ON Persons.Id_P = Orders.Id_P ORDER BY Persons.LastName" // 除了上面的方法,我们也可以使用关键词 JOIN 来从两个表中获取数据
"SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons INNER JOIN Orders ON Persons.Id_P=Orders.Id_P ORDER BY Persons.LastName" // 列出所有人的定购,内连接(INNER JOIN)
' --LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
"SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons LEFT JOIN Orders ON Persons.Id_P=Orders.Id_P ORDER BY Persons.LastName" // 列出所有的人,以及他们的定购 - 如果有的话
' --RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。
"SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons RIGHT JOIN Orders ON Persons.Id_P=Orders.Id_P ORDER BY Persons.LastName" // 列出所有的定单,以及定购它们的人 - 如果有的话
"SELECT column_name(s) FROM table_name1 FULL JOIN table_name2 ON table_name1.column_name=table_name2.column_name" // 只要其中某个表存在匹配,FULL JOIN 关键字就会返回行
"SELECT E_Name FROM Employees_China UNION SELECT E_Name FROM Employees_USA" // 列出所有在中国和美国的不同的雇员名‘注释:这个命令无法列出在中国和美国的所有雇员。在上面的例子中,我们有两个名字相同的雇员,他们当中只有一个人被列出来了。UNION 命令只会选取不同的值。
"SELECT E_Name FROM Employees_China UNION ALL SELECT E_Name FROM Employees_USA" // UNION ALL 命令和 UNION 命令几乎是等效的,不过 UNION ALL 命令会列出所有的值。
"CREATE DATABASE my_db" // 创建一个名为 "my_db" 的数据库
"CREATE TABLE 表名称 (列名称1 数据类型,列名称2 数据类型,列名称3 数据类型,)" // CREATE TABLE Persons(Id_P int,LastName varchar(255),FirstName varchar(255),Address varchar(255),City varcha(255))‘创建名为 "Person" 的表,该表包含 5 个列,列名分别是:"Id_P"、"LastName"、"FirstName"、"Address" 以及 "City"
"ALTER TABLE Persons ADD Birthday date" // 在表 "Persons" 中添加一个名为 "Birthday" 的新列
"ALTER TABLE Person DROP COLUMN Birthday" // 删除 "Person" 表中的 "Birthday" 列
查询某字段值重复的数据展开目录
查询
查询 tableName 表中,data 字段值重复的数据及重复次数
select `data`,count(*) as count from `tableName` group by `data` having count>1;
替换 sql 语句展开目录
将 cdb_pms 表 subject 字段中的 Welcom to 替换成 欢迎光临
UPDATE `cdb_pms`
SET `subject` = REPLACE(`subject`, 'Welcome to', '欢迎光临')
WHERE INSTR(`subject`,'Welcome to') > 0
替换 cdb_posts 表的 message 字段,将 “viewthread.php?tid=3989” 替换成 “viewthread.php?tid=16546”
UPDATE `cdb_posts`
SET `message`= REPLACE(`message`, 'viewthread.php?tid=3989', 'viewthread.php?tid=16546')
WHERE INSTR(`message`,'viewthread.php?tid=3989') > 0 ;
删除所有的空格
UPDATE `es_product` SET `pro_pub_time` = TRIM(`pro_pub_time`)
删除所有饱含 '[' 或者 ']' 或者 '.' 的字符
UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, '[','') WHERE INSTR(`pro_pub_time`,'[') > 0
UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, ']','') WHERE INSTR(`pro_pub_time`,']') > 0
UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, '.','-') WHERE INSTR(`pro_pub_time`,'.') > 0
替换所有含中文 '-' 的为英文 '-'
UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, '-','-') WHERE INSTR(`pro_pub_time`,'-') > 0
将所有的年月都替换成 '-'
UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, '年','-') WHERE INSTR(`pro_pub_time`,'年') > 0
UPDATE `es_product` SET `pro_pub_time` = REPLACE(`pro_pub_time`, '月','-') WHERE INSTR(`pro_pub_time`,'月') > 0
将所有 '2005-04-' 这种类型的替换成 '2005-04-01'
UPDATE `es_product` SET `pro_pub_time` = CONCAT( `pro_pub_time`, '01') WHERE SUBSTRING_INDEX( `pro_pub_time`, '-', -1) = '' AND LENGTH(`pro_pub_time`) > 0 AND LENGTH(`pro_pub_time`) > 5
将所有 '2005-' 这种类型替换成 '2005-01-01'
UPDATE `es_product` SET `pro_pub_time` = CONCAT( `pro_pub_time`, '01-01') WHERE INSTR(`pro_pub_time`,'-') > 0 AND LENGTH(`pro_pub_time`) = 5
将所有 饱含 '-', 但是位数小于 8 的改成追加 '-01'
UPDATE `es_product` SET `pro_pub_time` = CONCAT( `pro_pub_time`, '-01') WHERE INSTR(`pro_pub_time`,'-') > 0 AND LENGTH(`pro_pub_time`) < 8
将所有 '2005' 这样的改成 '2005-01-01'
UPDATE `es_product` SET `pro_pub_time` = CONCAT(`pro_pub_time`,'-01-01') WHERE INSTR(`pro_pub_time`,'-') = 0 AND LENGTH(`pro_pub_time`) = 4
最后将所有 '2005-01-01' 格式化成 '2005 年 01 月'
UPDATE `es_product` SET `pro_pub_time` = DATE_FORMAT(`pro_pub_time`,'%Y年%m月') WHERE INSTR(`pro_pub_time`,'-') > 0
本文转载自本文 《常用的 Mysql 语句》 为 「木小果」 的原创文章,本文观点不代表欣奇网立场,版权归原作者所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ pbootcms伪静态教程12/04
- ♥ 备忘录(WAP)-插眼10/24
- ♥ 世界,您好!11/18
- ♥ 自用的通达信版面05/18
- ♥ 测试代码高亮10/14
- ♥ 烦人的FF新推荐如何彻底删除03/10
内容反馈