MySQL常用命令
0、登录数据库;
格式: mysql -h主机地址 -u用户名 -p用户密码
mysql -h10.20.101.91 -uzradmin -pQwmxKn6Nvu -P3306
或者: mysql -u 用户名 -p // 回车后要求输入密码,密码不可见
mysql -u root -p
1、查看当前用户下有哪些数据库;
show databases;
2、创建数据库;
create database stt_db;
3、使用创建的数据库;
use stt_db;
4、查看当前使用的数据库;
select database ();
5、查看当前数据库下有哪些数据表;
show tables;
6、创建一个数据表;
CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));
create table stt_table(id int(20),username VARCHAR(20)) ;
7、查看数据表结构;
DESCRIBE 表名;
describe stt_table;
desc test;
或 describe test;
或show columns from test;
8、给数据表结构添加一个字段;
alter table 表名 ADD 字段 类型 NOT NULL Default 0;
alter table stt_table add sex varchar(20) NOT NULL Default 0;
9、给数据表插入多条数据;
insert into stt_table(id,username,sex) values (1,'zhangsan','男');
insert into stt_table(id,username,sex) values (2,'wangwu','女');
insert into stt_table(id,username,sex) values (3,'wangwuwu','女');
10、查看数据表中的所有记录;
select * from stt_table;
11、更改数据表的某个字段的值;
update stt_table set username='lisi' where id=1;
12、查看数据表数据(要求要进行分组、排序、limit限制)
select * from stt_table group by sex order by id desc limit 20;
select id from test where name='tom' group by id order by id desc limit 2;
13、删除数据表中的某一行数据;
delete from stt_table where id=2;
14、删除数据表中的所有数据;
delete from stt_table;
或truncate table test;
15、删除数据表结构中的某一个字段;
ALTER TABLE table_name DROP COLUMN field_name;
alter table stt_table drop column sex;
16、删除数据表;
drop table stt_table;
17、删除数据库;
drop database stt_db;
Where 子句
搜索 empno 等于 7900 的数据:
Select * from emp where empno=7900;
Where +条件(筛选行)
条件:列,比较运算符,值
比较运算符包涵:= > < >= ,<=, !=,<> 表示(不等于)
Select * from emp where ename='SMITH';
例子中的 SMITH 用单引号引起来,表示是字符串,字符串要区分大小写。
逻辑运算
And:与 同时满足两个条件的值。
Select * from emp where sal > 2000 and sal < 3000;
查询 EMP 表中 SAL 列中大于 2000 小于 3000 的值。
Or:或 满足其中一个条件的值
Select * from emp where sal > 2000 or comm > 500;
查询 emp 表中 SAL 大于 2000 或 COMM 大于500的值。
Not:非 满足不包含该条件的值。
select * from emp where not sal > 1500;
查询EMP表中 sal 小于等于 1500 的值。
逻辑运算的优先级:
() not and or
特殊条件
1.空值判断: is null
Select * from emp where comm is null;
查询 emp 表中 comm 列中的空值。
2.between and (在 之间的值)
Select * from emp where sal between 1500 and 3000;
查询 emp 表中 SAL 列中大于 1500 的小于 3000 的值。
注意:大于等于 1500 且小于等于 3000, 1500 为下限,3000 为上限,下限在前,上限在后,查询的范围包涵有上下限的值。
3.In
Select * from emp where sal in (5000,3000,1500);
查询 EMP 表 SAL 列中等于 5000,3000,1500 的值。
4.like
Like模糊查询
Select * from emp where ename like 'M%';
查询 EMP 表中 Ename 列中有 M 的值,M 为要查询内容中的模糊信息。
- % 表示多个字值,_ 下划线表示一个字符;
- M% : 为能配符,正则表达式,表示的意思为模糊查询信息为 M 开头的。
- %M% : 表示查询包含M的所有内容。
- %M_ : 表示查询以M在倒数第二位的所有内容。
order by
ORDER BY 多列的时候,先按照第一个column name排序,在按照第二个column name排序;如上述教程最后一个例子:
Lemon_shark
jip***_chen@163.com
ORDER BY 多列的时候,eg:
order by A,B 这个时候都是默认按升序排列 order by A desc,B 这个时候 A 降序,B 升序排列 order by A ,B desc 这个时候 A 升序,B 降序排列