select rand();-- 小技巧:从学生表中随机抽取一个学生select*from students orderby rand()limit1;
1.3 日期时间函数
1.3.1 current_date返回系统日期
current_data()
1.3.2 current_time返回系统时间
current_time()
1.3.3 返回系统日期和时间
now()
例子:日期和时间函数
DROPTABLEIFEXISTS a;CREATETABLE a (
id INTPRIMARYKEYNOTNULL,
indate datetime);insertinto a VALUES(1,'2021-6-25 14:16:01');INSERTINTO a VALUES(3,now());SELECT*FROM a;
id indate
12021-06-2500:33:0822021-06-2500:33:1832021-06-2500:33:26
-- 索引-- 例子1: 为students表的age字段创建一个索引,名为age_indexCREATEINDEX age_index ON students(age);-- 例子2:为students表的name字段创建一个索引,名为name_indexCREATEINDEX name_index ON students(name(10));
5.3 查看索引
-- WHERE 条件后面的字段,数据库系统自动会查找是否有索引SELECT*from students WHERE age =30;SELECT*from students WHERE`name`='李白';-- 无索引,不调用SELECT*FROM students WHERE sex ='女';
5.4 删除索引
DROPINDEX age_index ON students;DROPINDEX name_index ON students;-- 查询students表中的索引showindexfrom students;
5.5 索引优缺点
优点: - 大大提高了select语句的查询速度;
缺点: - 降低update、delete和insert语句的执行速度;
项目80%以上都是select,所以index必须的;
在实际工作中如果涉及到大量数据修改操作,修改之前可以将索引删除,修改完之后再把索引建立起来。
6. MySQL命令行
6.1 windows/linux cmd 命令窗口连接到mysql与退出mysql
6.2 MySQL命令行使用简介
7. 基于命令行的数据库管理操作
7.1 显示已有数据库
7.2 创建数据库
create database 数据库名称 default charset utf8;
7.3 删除数据库
7.4 增加新用户
grant all on 数据库名.表名 to @‘登录主机’ identified by ‘密码’ with grant option; - grant all on:代表为用户赋权; - 数据库名:可以是*,代表所有数据库; - 表名:可以是*,代表所有表,如数据库.表名 写为 . 代表可以对所有数据库和所有表操作; - to 用户名:指定要创建用户的名称; - @‘登录主机’:@‘localhost’:代表只能在本机登录,@’%’:代表可以远程登录; - with grant option:该用户是否能把权限分配给其他用户。
7.5 修改用户密码
本机登录密码修改(如果该用户存在就修改密码;如果该用户不存在就是创建用户) - grant all on 数据库名.表名 用户名 to @‘登录主机’ identified by ‘111111’ with grant option;
远程登录密码修改 - grant all on 数据库名.表名 用户名 to @’%’ identified by ‘111111’ with grant option;
7.6 删除用户
第一步:用root身份登录mysql - mysql -u root -p
第二部:选择mysql数据库 - use mysql;
第三步:回收用户test权限 - revoke all on . from test@‘localhost’; - revoke all on . from test@’%’;
第四步:删除用户test - delete from user where user = ‘test’;