![03e4af1a5582382d7a1ebb0e1236a6c1.png](https://i-blog.csdnimg.cn/blog_migrate/3ae857ba008a38f1cc289851a0e72f86.jpeg)
常用的sql命令
mysql -u root -p //进入root账户中
show databases //显示所有的数据库
use databasename //使用某个数据库
show tables //看本数据库中有多少张表
describe tablename //查看表结构 ==desc tavlename
show create table tablename //查看建表语句
select * from tablename //查看表数据
binary关键字
binary:mysql的where子句的字符串比较是不区分大小学的,可以使用binary关键字来设定where子句的字符串比较是区分大小写的
select * from student where binary name="zhang";//区分大小写,zhang和ZHANG是不一样的
select * from student where name="zhang"; //不区分大小写,zhang和ZHANG是一样的
union:此操作符用来连接两个以上的select语句的结果组合到结果集合中。多个 SELECT 语句会删除重复的数据。
union all:
join:是用来连接两张表的,大致分为内连接,外连接,右连接,左连接,自然连接。
内连接(inner join):获取两个表中字段匹配关系的记录
左连接(left join):获取左表所有记录,即使右表没有对应匹配的记录
右连接(right join):获取右表所有记录,即使左表没有对应匹配的记录
mysql之like模糊查询
%:表示任意个字符,可以是0个或多个,可匹配任意类型和长度的字符。
_:表示单个字符,常用来限制表达式的字符长度。
1.like '%国%' 查询所有含国字的记录
select * from student where name like '%国%';
2.like '%国%' and like '%飞%'查询既有国字又有飞字的记录,国字和飞字不分先后
select * from student where name like '%国%'and name like '%飞%';
3.like '%国%飞%'查询既有国字又有飞字的记录,国字必须在前,飞字必须在后。
select * from student where name like '%国%飞%';
4.like '张__'查询姓张的记录,张后面有两横杠,所以必须是三个字的
select * from student where name like '张__';
5.like '%张__%'查询姓张的记录,可以是两个字的也可以是三个字的
select * from student where name like '%张__%';
数据库操作
create database databasename;//创建数据库
drop database databasename;//删除数据库
use databasename;//选择数据库
表操作-插入数据
insert into tablename(column1,column2)
values
("values1","values2");//指定列插入一条数据
insert into tablename
values
("values1","values2");//全部列插入一条数据
insert into tablename(column1,column2)
values
("values1","values2"),
("values1","values2"),
......;//插入多条数据
表操作-删除数据
delete from tablename;//删除某个表的全部数据
delete from tablename where cause;//删除指定条件的数据
表操作-更新数据
update tablename set field1=new-values1,field2=new-values2
[where cause]
limit的使用
select * from tablename limit m,n;//m表示从第几天开始记录数据,n代表记录多少条数据
select * from tablename limit 0,5;//表示从第一条开始记录数据,取出第一到第五的数据
select * from tablename limit 5,5;//表示取出第六条到第十条的数据,取出五条数据
select * from tablename limit m,n;//表示跳过m条数据,然后记录n条数据
select * from tablename limit m offset n;//表示跳过n条记录,然后记录m条数据
MySQL中查询sql语句的运行时间
查看执行时间步骤:
1.show profiles;
![a2314b6f1993fbc5c13b679fb389365b.png](https://i-blog.csdnimg.cn/blog_migrate/dba765afc0be8fb54973ad9eda9a2008.png)
2.show variables;查看 profiling是否是on状态;
![c853d4a1eb2a7296d09b8ff4cf50484c.png](https://i-blog.csdnimg.cn/blog_migrate/65b072965b09d51eb7ff5f91f5bb51bf.png)
3.如果是off,执行命令 set profiling=1;
![cd4d6001f842545941408ff6a78fd3d7.png](https://i-blog.csdnimg.cn/blog_migrate/36b7e2b1013fc7eeb9a022bf809dfd5d.png)
4.执行sql语句
![c975d15225fedb6aad79d84b2ae70d65.png](https://i-blog.csdnimg.cn/blog_migrate/eee7cd21aa2474f1fb8c05b80c35af9b.png)
5.show profiles;然后就可以看到sql语句的执行时间了
![506e326162b64c1f999e61ea7592c72f.png](https://i-blog.csdnimg.cn/blog_migrate/656418f9282611c4ca2a866892f9aa55.png)