MySQL常用语句
Posted 枫凌01
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL常用语句相关的知识,希望对你有一定的参考价值。
1、mysql数据库的安装
数据库,主要用于数据的存放
2、MySQL规范
sql语句可单行或多行书写,以分号结尾
语句为大写,变量名为小写
3、MySQL数据库的操作
创建——CREATE DATABASE db_name;
查看——SHOW DATABASES;
修改数据库的字符串格式——ALTER DATABASE db_name character set utf8;
删除数据库——DROP DATABASE db_name;
使用/切换数据库——USE db_name;
4、数据表的增删改查
创建一个员工表
CREATE TABLE employee(
id INT PRIMARY KEY auto_increment,
name VARCHAR(20),
resume TEXT);
约束:primary key(非空且唯一);主键能够区分当前记录的字段
unique 唯一
not null 不为空
auto_increment 用于主键字段,必须是数字类型
查看表的信息
DESC tab_name ——查看表结构
SHOW TABLES——查看当前数据库所有的表
修改表的结构
1、增加列(字段)
ALTER TABLE tab_name ADD 列名 类型 约束条件 [first | after 字段名];
2、修改列类型
ALTER TABLE tab_name MODIFY 列名类型约束;
3、修改列名
ALTER TABLE tab_name CHANGE 列名 新列名 类型约束;
4、删除一列
ALTER TABLE tab_name DROP 列名;
5、修改表名
RENAME TABLE 表名 to 新表名;
6、修改表所用的字符集
ALTER TABLE student CHARACTER SET utf8;
7、删除表
DROP TABLE tab_name;
对数据表的操作
增加插入数据——INSERT tab_name (field1....) VALUES (value1.....);
修改表记录——UPDATE tab_name SET field1=value1,......也可以加WHERE语句
删除表记录——DELETE FROM tab_name 也可以加WHERE语句
使用TRUNCATE删除表记录——TRUNCATE TABLE tab_name
查询记录表(重点)
查看数据表信息——SELECT *FROM 表名
查询语法——FROM tab_name
WHERE 条件
GROUP BY feild
HAVING 筛选
LIMIT 限制条数
使用WHERE语句,进行过滤查询
SELECT * FROM tab_name WHERE name=‘yuan‘;
比较运算符: > < >= <= != between 80 and 100 值在10到20之间 in(80,90,100) 值是10或20或30 like ‘yuan%‘ 以yuan开头的字符串
逻辑运算符: 在多个条件直接可以使用逻辑运算符 and or not
ORDER BY 排序
SELECT * FROM tab_name ORDER BY field DESC|ASC;
ASC为默认——从小到大,DESC——从大到小
GROUP BY分组查询
对购物车按类名分组后显示每一组商品价格总和超过150的商品
SELECT class,SUM(price) FROM order_menu GROUP BY class HAVING SUM(price)>150;
having 和 where两者都可以对查询结果进行进一步的过滤,差别有: <1>where语句只能用在分组之前的筛选,having可以用在分组之后的筛选; <2>使用where语句的地方都可以用having进行替换 <3>having中可以用聚合函数,where中就不行。
聚合函数
COUNT(列名):统计行的个数
SUM(列名):统计满足条件的内容和
AVG(列名):求平均数
MAX、MIN:求最高分和最低分
LIMIT记录条数限制
SELECT * from ExamResult limit 1; SELECT * from ExamResult limit 2,5; -- 跳过前两条显示接下来的五条纪录 SELECT * from ExamResult limit 2,2;
正则表达式
SELECT * FROM employee WHERE emp_name REGEXP ‘^yu‘; SELECT * FROM employee WHERE emp_name REGEXP ‘yun$‘; SELECT * FROM employee WHERE emp_name REGEXP ‘m{2}‘;
外键约束
FOREIGN KEY (charger_id) REFERENCES charge(id)
增加外键和删除外键
ALTER TABLE student ADD CONSTRAINT abc FOREIGN KEY(charger_id) REFERENCES classcharger(id); ALTER TABLE student DROP FOREIGN KEY abc;
多表查询
内连接
select * from employee inner join department on employee.dept_id = department.dept_id;
左外连接:在内连接的基础上增加左边有右边没有的结果
select * from employee left join department on employee.dept_id = department.dept_id;
右外连接:在内连接的基础上增加右边有左边没有的结果
select * from employee right join department on employee.dept_id = department.dept_id;
DISTINCT——去重
以上是关于MySQL常用语句的主要内容,如果未能解决你的问题,请参考以下文章