MySQL常用语句
1.查看当前所有数据库
show databases;
2.打开指定的库
use 库名;
3.查看当前库中的所有表
show tables;
4.查看其他库的表
show tables from 库名;
5.创建表
create stuinfo(
列名 列属性,
列名 列属性,
...
);
6.查看表结构
desc 表名;
7.查看数据库版本
>mysql select version();
>dos mysql --V // mysql --version
MySQL语法规范
1.不区分大小写,建议关键字大写,表名列名小写。
2.每条命令最好分号结尾(\g也行)
3.每条命令根据需要,可以缩进或者换行
4.注释
单行注释:#注释文字
单行注释:-- 注释文字 一定要空格
多行注释:/* 注释文字 */
MySQL DML(DQL + DML)
基础查询
语法:
select 查询列表
from 表名
1.查询常量值
select 100;
select 'SHAO';
2.查询表达式
select 100*98;
3.查询函数
select version(); //调用该方法得到返回值并显示
4.为字段起别名
/*
1)便于理解
2)如果查询字段有重名,使用别名可以区分
*/
select 100%98 as 结果;
select last_name as 姓, first_name as 名 from mysql;
select 100%98 结果;
select last_name 姓, first_name 名 from mysql;
举例子:
select salary as out put from employees; //错误,别名不能使用特殊符号,若存在可以使用双引号表示别名,如下
select salary as "out put" from employees;
5.去重
查询涉及到的所有部门编号
select distinct department_id from employees;
6.+号的用处 仅有运算符功能
查询员工名和姓链接为一个字段,并显示为姓名
select last_name+first_name as name from employees; //错误
select 90+100;
select '123'+90; 其中一方为字符型,试图将字符型转换为数值。转换成功则继续进行加法运算
select 'join'+90; 如果转换失败,则将字符型数值转换为0
select NULL+100; 如果一方为NULL,结果必定为NULL
字符拼接使用函数CONCAT(str1,str2,...)
select concat(last_name,first_name) as name from employees;
select ifnull(查询内容,当内容为NULL时的返回值)
条件查询
语法:
select 查询列表
from 表名
where 筛选条件
1.条件表达式筛选
条件运算符: > < = ! <>(!= 推荐<>) >= <=
2.逻辑表达式筛选
逻辑运算符: && || ! 推荐 and or not
主要作用:连接条件表达式
3.模糊查询
1)like
例子1:查询员工中包含字符a的员工信息
给出的条件比较模糊
select * from employees where last_name like '%a%'; //此处%为通配符,代表任意多个字符
(1)一般和通配符搭配使用 通配符 % 任意多个字符 _ 任意单个字符
例子2:如果查询要查_字符
select last_name from employees where last_name like '_\_%' #这里使用转义字符\让_表示原来意思。
select last_name from employees where last_name like '_@_%' escape @ #这里使用@作为转义字符
2)betweeen and
例子1:查询员工编号在100到120之间的员工信息
原:select * from employees where employee_id <= 120 and employee_id >= 100;
使用between and
select * from employees where employee_id between 100 and 120;
(1)使用between and 让语句简洁
(2)包含边界值
(3)不能颠倒两者顺序,语句和原语句等价。
3)in 用于判断某字段的值是否述语in列表中的某一项
例子1:查询员工的工种编号为IT_PROG、AD_VP、AD_PRES中的一个员工名和工种编号
原:
select last_name,job_id
from employees
where job_id = 'AD_VP' or job_id = 'IT_PROG' or job_id = 'AD_PRES';
现:
select last_name,job_id
from employees
where job_id in('IT_PROG','AD_VP','IT_PROG');
(1)使用in提高语句简洁度
(2)in列表的值类型必须一致或者兼容
4)is null
例子1:查询没有奖金的员工名和奖金率
select last_name,commission_pct from employees where commission _pct = NULL; //错误,等于号不能判断NULL值
select last_name,commission_pct from employees where commission _pct is NULL; //正确
(1)is只用来判断NULL
补充:
安全等于 <=> 可以去判断NULL值,也和 = 效果一致
select last_name,commission_pct from employees where commission _pct <=> NULL; 可读性较低