格式:
mysql -h 主机地址 -P 端口号 -u 用户名 -p用户密码
1.连接到本机上的MYSQL。
如果已经配置好环境变量,DOS窗口下键入命令
mysql -u root -p
,使用默认主机名localhost,默认端口号3306。回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码.如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql>
2.连接到远程主机上的MYSQL。
假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
# u与用户名之间可以不用加空格,h与后面的主机地址可以不用加空格
mysql -h110.110.110.110 -u root -pabcd123
3.退出MYSQL命令: exit (回车)
2.增加用户
3.操作数据库
3.1创建数据库
命令:create database <数据库名>
例1:建立一个名为xhkdb的数据库
mysql> create database xhkdb;
例2:创建数据库并分配用户
①CREATE DATABASE 数据库名;
②GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 数据库名.* TO 用户名@localhost IDENTIFIED BY '密码';
③SET PASSWORD FOR '数据库名'@'localhost' = OLD_PASSWORD('密码');
依次执行3个命令完成数据库创建。
注意:中文 “密码”和“数据库”是户自己需要设置的。
3.2显示数据库
命令:show databases;
(注意:最后有个s)
3.3 删除数据库
命令:drop database <数据库名>;
例如:删除名为 xhkdb的数据库
mysql> drop database xhkdb;
例子1:删除一个已经确定存在的数据库
mysql> drop database drop_database;
Query OK, 0 rows affected (0.00 sec)
3.4 连接数据库
命令: use <数据库名>;
使用USE语句为一个特定的当前的数据库做标记,不会阻碍您访问其它数据库中的表。下面的例子可以从db1数据库访问作者表,并从db2数据库访问编辑表:
mysql> USE db1;
mysql> SELECT author_name,editor_name FROM author,db2.editor
-> WHERE author.editor_id = db2.editor.editor_id;
退出数据库或连接其他数据库直接 use 其他数据库名称
就可以了。
3.5查看当前选择的数据库
mysql> use text
Database changed
mysql> select database();
+------------+
| database() |
+------------+
| text |
+------------+
1 row in set (0.00 sec)
MySQL中SELECT命令类似于其他编程语言里的print或者write,你可以用它来显示一个字符串、数字、数学表达式的结果等等。如何使用MySQL中SELECT命令的特殊功能?
(1). 显示MYSQL的版本
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.15 |
+-----------+
1 row in set (0.00 sec)
(2). 显示当前时间
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2021-01-30 09:37:30 |
+---------------------+
1 row in set (0.00 sec)
(3). 显示年月日
mysql> select year(current_date);
+--------------------+
| year(current_date) |
+--------------------+
| 2021 |
+--------------------+
1 row in set (0.00 sec)
mysql> select month(current_date);
+---------------------+
| month(current_date) |
+---------------------+
| 1 |
+---------------------+
1 row in set (0.00 sec)
mysql> select dayofmonth(current_date);
+--------------------------+
| dayofmonth(current_date) |
+--------------------------+
| 30 |
+--------------------------+
1 row in set (0.00 sec)
(4).显示字符串
mysql> select "hello,world";
+-------------+
| hello,world |
+-------------+
| hello,world |
+-------------+
1 row in set (0.00 sec)
(5).当计算器用
mysql> select ((4 * 4) / 10 ) + 25;
+----------------------+
| ((4 * 4) / 10 ) + 25 |
+----------------------+
| 26.6000 |
+----------------------+
1 row in set (0.00 sec)
(6).串接字符串
(7). 查看数据库的创建信息
4.操作表
1.创建表
命令:create table <表名> ( <字段名1> <类型1> [,...<字段名n> <类型n>]);
2.获取表结构
命令: desc 表名;
,或者show columns from 表名;
使用MySQL数据库,根据desc 表名
的结果,我们看到Key那一栏,可能会有4种值,即' ','PRI','UNI','MUL'。这些值的含义是什么呢?
3.删除表
命令:drop table <表名>
4.向表插入数据
5.查询表
查询所有行,使用命令: select <字段1,字段2,...> from < 表名 > where < 表达式 >
# 查看表member中所有数据,*表示所有字段
mysql> select * from member;
查询前几行数据
# 查看表member中前2行数据
mysql> select * from member order by id limit 0,2;
使用AS关键字给列名取别名
SELECT name AS "姓名",age AS "年龄"from student;
使用DISTINCT关键字去除重复行
SELECT DISTINCT name AS "姓名",age AS "年龄" from student;
结合where子句过滤查询:where子句紧跟随from子句
SELECT name,age FROM student where age > 23;
6.删除表
命令:delete from 表名 where 表达式
7.修改表中的数据
语法:update 表名 set 字段=新值,… where 条件
# 将member表中id等于2的tel改为18370430889
mysql> update member set tel = '18370430889' where id = 2;
8.增加表字段
命令:alter table 表名 add字段 类型 其他;
加索引:mysql> alter table 表名 add index 索引名 (字段名1[,字段名2 …]);
加主关键字的索引:mysql> alter table 表名 add primary key (字段名);
加唯一限制条件的索引:alter table 表名 add unique 索引名 (字段名);
删除某个索引:alter table 表名 drop index 索引名;
增加字段:ALTER TABLE table_name ADD field_name field_type;
修改原字段名称及类型:ALTER TABLE table_name CHANGE old_field_name new_field_name field_type;
修改字段类型:ALTER TABLE table_name MODIFY colum_name field_type new_type;
删除字段:ALTER TABLE table_name DROP field_name;
9.修改表名
命令:rename table 原表名 to 新表名;
10.查看表的创建信息
使用show create table 表名;
命令。这行命令可以查看到创建表时使用的字符集信息。
11.导入数据
在MySQL客户端下导入SQL文件:
source xxx.sql
12.排序
排序使用order by
子句,其涉及到的两个重要关键字ASC和DESC,分别表示升序和降序。
单列排序,不指定ASC或者DESC的其中一个,默认是升序的。
# 例如对年龄降序
SELECT * from student ORDER BY age DESC;
多列排序:在对多个列进行排序的时候,排序的第一列有相同的列值,才会对第二列进行排序。
# 例如对姓名,年龄进行排序。姓名相同,按照年龄降序
SELECT * from student ORDER BY name, age DESC;
13.分页
MySQL中使用limit关键字实现分页。格式为LIMIT [位置偏移量,] 行数
,不指定位置偏移量,会从表中的第一条记录开始,第一条记录的位置偏移量是0。
# 前2条记录
SELECT * from student LIMIT 0,2;
5.查看字符集和排序相关
查看字符集:show variables like 'character_%';
查看排序:show variables like 'collation_%';