前言

学习一下MySQL,之前一直没有系统的学习一下。最近有空,看了《MySQL基础教程-西泽梦路》,简单的做一下笔记。

记录于此,方便自己回忆。

正文

我这以Window版的phpstudy软件验证。

需要进入这个目录,才可以使用mysql命令

D:\phpstudy_pro\Extensions\MySQL5.7.26\bin

修改字符串编码

这里是win7上的cmd测试

chcp 65001

设置为UTF-8

登入

不带密码登入
mysql -u 用户

例子

mysql -u root

然后提示输入密码

带密码登入
mysql -u 用户 -p密码

例子

mysql -u root -prootroot

-u和用户之间的空格可以不需要,但-p和密码之间不能有空格。

如果登入成功会有如下界面

>mysql -uroot -prootroot
//略
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

退出

exit

quit

查看mysql字符串编码

这个是要在上面登入后查阅,输入status

mysql> status
--------------
mysql  Ver 14.14 Distrib 5.7.26, for Win64 (x86_64)
//略
//服务端和客户端的字符编码
Server characterset:    utf8 
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
TCP port:               3306
Uptime:                 22 min 15 sec
//略
--------------

创建新用户

创建新用户
create user 新用户名 identified by '密码';

例子

create user test@localhost identified by '123123';
设置用户权限
grant 权限 on 数据库名.表名 to 用户;

例子

grant all on mysql.* to test@localhost;

退出后,就可以用test+123123进行登入

mysql -u test -p123123

创建数据库

create database 数据库名;

例子

create database db1;

显示数据库

show databases;
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db1                |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

指定数据库

use 数据库名
mysql> use mysql
Database changed

成功创建数据库后,我们试着在数据库中创建表。在My SQL中,并不是启动后就能立即使用数据库,还需要显式地声明使用什么数据库。不过,即使不指定使用的数据库,也可以启动My SQL监视器。一些RDBMS要求在启动My SQL监视器的同时指定数据库,但My SQL并没有对此提出要求。

也可以用\u替代use

mysql> \u mysql
Database changed

显示当前使用的数据库

select database();
mysql> select database();
+------------+
| database() |
+------------+
| mysql      |
+------------+
1 row in set (0.00 sec)

书上,等如mysql时就可以指定选择数据

mysql 数据库名 -u 用户 -p密码
#例子
mysql mysql -u root -prootroot

列和字段

在创建表时,需要事先指定输入数据的类型是什么、列名是什么等。数据库中也有分开使用术语的情况,比如构成表的项目称为字段(field),构成记录的各项目的数据称为列。

数据类型

列中保存的数据的种类称为数据类型。

这部分暂时缺失,后面补上。

INT

整数数据

VARCHAR

存储字符数据

创建表

create table 表名(列名1 数据类型1 , 列名2 数据类型2 ....);

例子

create table tb1 (empid varchar(10) , name varchar(10) , age int );

可以指定编码

create table tb1 (empid varchar(10) , name varchar(10) , age int ) charset=utf-8;

显示表

show tables;
mysql> show tables;
+---------------+
| Tables_in_db1 |
+---------------+
| tb1           |
+---------------+
1 row in set (0.00 sec)

显示表结构

用于显示表的列结构的命令是DESC或者DESCRIBE

desc 表名;
mysql> desc tb1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| empid | varchar(10) | YES  |     | NULL    |       |
| name  | varchar(10) | YES  |     | NULL    |       |
| age   | int(11)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

插入数据

方式一
insert into 表名 values(数据1,数据2...);

以上面tb1表为例,也就是插入empid,name,age对应的值。

insert into tb1 values(empid,name,age);

例子

insert into tb1 values("A101","zuoteng", 40);

可以通过下面命令查询插入的数据情况。

// select 查询条件 from 表;
// * 表示查询所有
select * from tb1;
方式二

上面是按照表中列顺序进行插入,只不过是省略了写出列而已,是下面的缩写

insert into 表名 (列名1,列名2,列名3...) values(数据1,数据2,数据3...);

但你不想这么做时,那就可以指定顺序,也就是

insert into 表名 (列名3,列名2,列名1...) values(数据3,数据2,数据1...);
insert into tb1 (age, name, empid) values(22,"dubian", "A104");
方式三
insert into 表名 (列名1,列名2,列名3...) values(数据11,数据12,数据13...),(数据21,数据22,数据23...);

上面只展示插入2条,后面接着逗号,可以继续插入多条。

例子

insert into tb1 (empid,name,age) values("A102","gaoqiao", 28), ("A103","zhongchuan", 20);

参考文章

  1. 《MySQL基础教程-西泽梦路》

相关文章

暂无评论

none
暂无评论...