MySQL基础操作语句
数据库的建立:
查看当前所有库:show databases;
建库:creat database if not exists 库名;
进入某个数据库:use 库名;
查看当前库内所有表:show tables;
查看某库中的所有表:show tables from 库名;
查看某个表的结构:desc 表名;
删除某个数据库:drop database if exists 数据库名
基础查询语句
主要由select关键字完成 查询语句是SQL中最复杂、功能最丰富的语句。
## 基础查询
可查询常量、表达式、函数和表中数据,
查询常量: select 10;select '男'; #不来自任何表 显示的字段名就是它本身
查询表达式: select 100%98; #等于select 2;
select salary*12 from 表名;#配合别名使用可以直观展示
查询函数: select version(); select now();
查询表中所有数据:select * from 表名;
在一个表里查询一个或者多个字段:
select 字段名1,字段名2
from 表名;
还可以给要查询的字段、常量等起别名,当显示查询结果时别名作为结果的字段名:
select 字段1 as 别名1 ,字段2 as 别名2
from 表名;
as 可以省略 即别名直接跟在表名空格后边
常用的几个搭配查询语句的关键字
去重:distinct
select DISTINCT * from 表名;
去除查询结果中重复的行;
字段连接:concat将要查询的字段合一
select concat(字段1,字段2)
from 表名;
PS:如果此时查询的字段值里有为null的,会导致concat的结果值也为null
SQL中“+”只能做运算符 当两个操作数都为数值可加时就运算
若不是可加值,尝试转换 例如:'123'+123
无法转换就视为null,与null相加的结果都为null
ifnull函数:ifnull(可能为null的字段名,为null时要替换的值)
select concat(字段1,ifnull(字段1,为null时要显示的数值)) from 表名;
条件查询 where
select 字段1 别名,字段2 别名
from 表名
where 筛选条件;
筛选分三种:
1.按条件表达式 > < = <>#(不等于)
2.按逻辑表达式 and or not
3.模糊查询
a.like 将属性包含此通配字符的都选中
通配符:% 任意多个字符 _ 仅一个字符
例:select last_name
from employees
where last_name like '__e_a%';
b.between and (not between and) 字段的值是否在某个区间里
c.in 查询结果是几个中的一个
where salary IN(100,120,140);
d.is null 判断字段的值是否为null
where 字段 is null;
e.<=> 安全等于 判断是否等于 包括null也可判断是否等于 可读性差
表的结构操作
创建表:creat table [模式名.]表名(
字段名1 数据类型1 约束1,
字段名2 数据类型2 约束2,
......
)
修改字段名: alter table 表名 change column 旧列名 新列名 类型(此时也可以在这里修改类型);
修改类的类型或者约束:alter table 表名 modify column 列名 新类型;
增添列:alter table 表名 add column 列名 类型;
删除列:alter table 表名 drop column 列名;
修改表名:alter table 表名 rename to 新表名;
对表中值的操作
插入值语句:
insert into 表名【(列名1,列名2,...)】 values(值1,值2,...);
insert into 表名 set 列名=值,列名=值,...;
更新值语句(可进阶连接查询更新):
update 表名
set 字段1=新值1,字段2=新值2
where 筛选条件;
删除值语句(可进阶连接查询删除):
delete from 表名
where 筛选条件;