2、检索数据 检索一列:SELECT prod_name FROM products; 检索多列:SELECT prod_name,prod_id FROM products; 检索所有列:SELECT * FROM products; 检索不同的行:SELECT DISTINCT prod_id FROM products; 限定返回行数:SELECT * FROM products LIMIT 5; 返回前5行 SELECT * FROM products LIMIT 3,2; 返回第3行开始的后2行 3、排序检索数据 排序数据:SELECT prod_name FROM products ORDER BY prod_name; 多个列排序:SELECT prod_name, prod_id FROM products ORDER BY prod_name,prod_id; 指定排序顺序:SELECT prod_name FROM products ORDER BY prod_name DESC; ASC关键字--升序(默认)/DESC--降序 4、过滤数据 WHERE子句:SELECT prod_name FROM products WHERE prod_id = "JP1000"; WHERE子句操作符: 比较:=,<,>,>=,<=,<>,!=,!>,!< 逻辑运算符:AND、OR、NOT、XOR 范围检索:SELECT prod_name FROM products WHERE prod_name BETWEEN 5 AND 8; | BETWEEN...AND、NOT BETWEEN...AND 列表检索:SELECT prod_name FROM products WHERE prod_id IN (1,5,4,9); | IN、NOT IN 通配符匹配:SELECT prod_name FROM products WHERE prod_id LIKE "%NT2"; | LIKE、NOT LIKE %匹配多个个数字符_匹配一个字符 空值检索:SELECT prod_name FROM products WHERE prod_id IS NULL; | IS NULL 、IS NOT NULL 5、正则表达式进行搜索 SELECT prod_name FROM products WHERE prod_id REGEXP "00"; .匹配任意一个字符 6、计算字段 拼接字段:SELECT Concat(prod_id,‘(‘,prod_name,‘)‘) FROM products; 别名:SELECT Concat(prod_id,‘(‘,prod_name,‘)‘) AS "Concat" FROM products; 算数运算:SELECT prod_price*prod_price FROM products; 结果为一列计算过的新计算列 7、数据处理函数 (1)字符串处理函数 返回串左边字符:Left() 返回串右边字符:Right() 返回串的长度:Length() 找出串的一个字串:Locate() 将串转换为小写:Lower() 将串转换为大写:Upper() 去掉串左边的空格:LTrim() 去掉串右边的空格:RTrim() 返回串的SOUNDEX值:Soundex() soundex是一个将任何文本串转换为描述其语音表示的字母数字模式的算法。 (2)数学函数 返回x的绝对值:ABS() 返回0~1的随机数:RAND() 返回x四舍五入到小数点后y位的结果:ROUND(x,y) x的y次幂:POW() 8、日期和时间处理函数 增加一个日期(天、周等):AddDate() 增加一个时间(时、分等):AddTime() 返回当前日期:CurDate() 返回当前时间:CurTime() 返回当前日期和时间:Now() 返回日期时间的日期部分:Date() 返回日期时间的时间部分:Time() 返回一个日期的年份部分:Year() 返回一个日期的月份部分:Month() 返回一个日期的天数部分:Day() 返回一个时间的小时部分:Hour() 返回一个时间的分钟部分:Minute() 返回一个时间的秒部分:Second() 计算两个日期之差:DateDiff() 高度灵活的日期计算函数:Date_Add() 返回一个格式化的日期或时间串:Date_Format() 9、汇总数据,聚集函数 返回某列平均值:AVG() 返回某列行数:COUNT() 返回某列最大值:MAX() 返回某列最小值:MIN() 返回某列和:SUM() 其他函数 返回上一条SELECT语句(或show语句等)查询结果集的记录数:FOUND_ROWS() 返回上一条SQL语句,对表数据进行修改操作后影响的记录数:ROW_COUNT() (如果非修改操作语句,而是查询语句,会返回-1。如果上一条SQL语句是UPDATE语句,但是UPDATE后所有数据的值并没有改变,则返回 0) 10、联结表 等值联结 SELECT custom_name,custom_price,product_name FROM custom INNER JOIN product ON custom.vent_id=product.vent_id; SELECT custom_name,custom_price,product_name FROM custom,product WHERE custom.vent_id=product.vent_id; 外部联结 SELECT customers_id,order_num FROM customers LEFT OUTER JOIN order ON sustomers.cust_id = order.cust_id; SELECT customers_id,order_num FROM customers RIGHT OUTER JOIN order ON sustomers.cust_id = order.cust_id; 复合条件联结 SELECT companyname,productname,price,sellordernumber FROM customer,product,sell_order WHERE customer.customerid=sell_order.customerid AND product.productid=sell_order.productid AND companyname = "布丁科技有限公司"; 11、子查询 使用场景:查询的结果在一个表中,查询的条件在另一个表中 SELECT departmentname FROM department WHERE departmentid IN (SELECT departmentid FROM employee WHERE employeename = "徐亮"); 11、使用视图 创建视图:CREATE VIEW viewName AS ...
修改视图:ALTER VIEW viewName AS
...
创建或替换一个视图:CREATE OR REPLACE VIEW viewName AS
... 调用:SELECT * FROM viewName; 删除视图:DROP VIEW viewName; 12、创建索引 (1) UNIQUE | FULLTEXT | SPATIAL 唯一索引 | 全文索引 | 空间索引 (2) INDEX 普通索引 建表时创建索引: ... name varchar(20) NOT NULL UNIQUE KEY,
... 或: ... PRIMARY KEY index_name(id) FULLTEXT KEY index_name(name) ); 在已有表上创建索引: CREATE UNIQUE INDEX index_name ON table_name(name) 13、创建存储过程 改变语句结束符号:DELIMITER $ 创建 CREATE PROCEDURE proceduName( IN a int(11) //数据传入传出处理 ) COMMENT "" BEGIN ... END$ 调用:CALL procedureName[(传入参数)]; 14、触发器 tips:1 声明变量:DECLARE a type 2 new表与old表:在每次数据更新操作的时候,总会产生临时表(new表和old表),用以记录
这条操作更改前后的变化 在INSERT型的触发器中,new表存储将要before或已经after插入的新记录,old表不创建 在DELETE型的触发器中,new表不创建,old表存储已经删除的记录 在UPDATE型的触发器中,new表存储修改后的记录,old表存储修改前的记录 创建触发器: CREATE TRIGGER tri_Name --tri_Name代表触发器名称 trigger_time trigger_event ON tableName --trigger_time为触发时机,可选AFTER/BEFORE(之后/之前),trigger_event为触发事件,如INSERT/UPDATE/DELETE FOR EACH ROW --这句在mysql是固定的,表示触发的执行间隔,每隔一行执行一次动作 BEGIN ... END;;
相关文章
- Mysql 定位执行效率低的sql 语句
- Log4j使用详解(log4j.properties格式)
- mysql5.7安装配置,常用命令,常见问题
- MySQL缓存机制详解(一)
- [MySQL FAQ]系列 — processlist中哪些状态要引起关注 解决mysql cpu过高问题
- 如何从javascript中的UTC字符串中获取(MM-DD-YYYY)格式? [重复]
- "Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs
- 《MySQL高级篇》十四、多版本并发控制
- PHP MySQL从半径用户的位置获取位置
- java获取json格式中的值