MySQL基本命令
2020-02-19 本文已影响0人
我思故我在2020
MySQL基本命令
1. 检查 MySQL 服务器是否启动
ps -ef | grep mysqld
2. 启动 MySQL 服务器
cd /usr/bin
./mysqld_safe &
3. 关闭 MySQL 服务器
cd /usr/bin
./mysqladmin -u root -p shutdown
Enter password:******
4. 登录
mysql [-hhost] -uroot -p
Enter password:******
5. 创建用户并授权
create user 'username'@'%' identified by 'password';
grant privileges on databasename.tablename to 'username'@'%';
6. 更改用户密码
set password for 'username'@'%' = PASSWORD('newpassword');
设置当前登录用户密码
set password = PASSWORD('newpassword');
7. 撤销用户权限
revoke privileges on databasename.tablename to 'username'@'%';
8. 删除用户
drop user 'username'@'%';
9. 列出数据库列表
show databases;
10. 选择要操作的数据库
use database;
11. 创建数据库
create database 数据库名;
12. 删除数据库
drop database 数据库名;
13. 显示指定数据库的所有表
show tables;
14. 显示表的列信息
show columns from table;
15. 显示表的索引
show index from table;
16. 创建表
create table 表名 (
列名 列属性,
列名 列属性,
...
)
例:
create table if not exists `user` (
`id` int unsigned auto_increment,
`name` varchar(100) not null,
`loginName` varchar(100) not null,
`password` varchar(100) not null,
`createOn` date,
primary key (`id`)
)engine=innoDB defalut charset=utf8;
17. 删除表
drop table 表名;
18. 插入数据
insert into 表名 (列1, 列2, 列3, ...列N)
values
( value1, value2, value3, ...valueN);
18. 查询语句
select 列1, 列2, 列3 from 表名
[Where 子句]
[Limit N]
[Offset M];
使用 Where 子句指定查询条件
使用 Limit 属性设定返回的记录数
使用 Offset 属性设定开始查询的数据偏移量,默认情况下偏移为 0
19. 更新语句
update 表名 set 列1=值1, 列2=值2, 列3=值3
[Where 子句];
20. 删除语句
delete from 表名
[Where 子句]
21. Like 子句
我们知道,在 Where 子句中可以使用等号=
来设定获取数据的条件。但有时我们需要根据一个字段是否含有某子串来获取数据,这个时候就需要用到 Like 子句。
Like子句中使用百分号%
来表示任意字符。
Where 列名 Like '%somevalue%'
22. Union 操作符
Union 操作符用来连接两个以上的 Select 语句的结果到一个结果集中,多个 Select 语句会删除重复的数据。
Select expression1, expression2, ... expressionN
from tables
[Where conditions]
Union [ALL | DISTINCT]
Select expression1, expression2, ... expressionN
from tables
[Where conditions]
23. Order By 子句
select field1, field2, ... fieldN from table1, table2 ...
order by field1 [, field2] [ASC [DESC]]
24. Group By 子句
select column_name, function(column_name)
from table_name
where conditions
Group byb column_name;
25. 在 Where 子句中,如何判断 NULL 值
Where column_name Is NULL
Where column_name is not NULL
26. 正则表达式
我们已经知道,MySQL 可以通过 Like ... % 来进行模糊匹配。
MySQL 同样支持正则表达式的匹配,MySQL 使用 REGEXP 操作符来进行正则表达式的匹配。
Where column_name REGEXP '正则表达式'
27. 连接的使用 (JOIN)
待补充
28. ALTER 命令
修改数据表名或者修改数据表字段
删除字段
alter table 表名 drop 字段名;
添加字段
alter table 表明 add 字段名 字段属性;
修改字段属性
alter table 表名 modify 字段名 新属性;
修改字段名和属性
alter table 表名 change 原字段名 新字段名 新属性;
修改字段默认值
alter table 表名 alter 字段名 set default 默认值;
删除字段默认值
alter table 表名 alter 字段名 drop default;
修改表名
alter table 表名 rename to 新表名;
29. 索引
普通索引
创建
create index 索引名 on 表名(列名(length))
修改表结构(添加索引)
alter table 表名 add index 索引名(列名)
创建表时直接指定
create table mytable (
id int not null,
username varchar(16) not null,
index [索引名] (username(length))
);
删除索引
drop index 索引名 on 表名;
唯一索引
创建
create unique index 索引名 on 表名(列名(length))
修改表结构
alter table 表名 add unique [索引名] (列名(length))
创建表时直接指定
create table 表名 (
id int not null,
username varchar(16) not null,
unique [索引名] (username(length))
);
显示索引信息
show index from 表名;