学习MySQL---ing

Mac MySQL使用教程

本文记录在我的GitHub
记录使用Homebrew安装Mysql全过程 (亲测有效)
mac安装mysql的两种方法(含配置)

homebrew 安装完初始化

    mysql_secure_installation

找mysql的配置文件方法

输入 mysqld --verbose --help | more


Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf 

//其实上面这个.cnf顺序是MySQL数据库读取配置文件的顺序
我用homebrew安装的在/usr/local/etc/my.cnf目录下

修改密码

    修改密码:
    1、
    终端命令:mysqladmin -uroot -p password
    然后会弹出下面提示
    Enter password:   //这里输入上面的旧密码
    New password:    //重新输入新密码
    Confirm new password: //重新输入新密码

    2、
    mysqladmin -u root -p password 123456

    123456是我这里设置的密码,换成你自己的,运行后要输入一个密码,这个密码就是前面记录的root用户的初始密码,输入回车就更改密码成功了

进入mysql数据库

修改完就可以用mysql -u root -p命令登录了。
也可以用mysql -h 主机名 -u 用户名 -p命令登录,但一般我们只有在远程登录的时候才会用到-h参数(远程主机的主机名或者IP地址),如果本地登录也想用主机名填写localhost就可以了。

查看已有的数据库

登录mysql后,输入show databases;
注意后面的databases这个单词后面是有个s的,然后最后面是有个分”;”的。

    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+

查看端口号

登录mysql后,输入show global variables like 'port';

    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | port          | 3306  |
    +---------------+-------+

创建数据库

create database study_mysql;

    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | study_mysql        |
    | sys                |
    +--------------------+

对你需要操作的数据库进行操作

use study_mysql;

    Database changed

在对应的数据库中创建表

CREATE TABLE 数据库表名;

CREATE TABLE study001
    -> (
    -> id char(10) not null primary key,
    -> name char(16) not null,
    -> sex char(6) not null,
    -> age int not null,
    -> address char(36) not null                                                    -> );                                                                       Query OK, 0 rows affected (0.02 sec)

查看该数据库下的所有表

show tables;

    +-----------------------+
    | Tables_in_study_mysql |
    +-----------------------+
    | study001              |
    +-----------------------+
    1 row in set (0.00 sec)

查看刚创建的数据库表字段是否正确

DESCRIBE 数据库表名;

    mysql> DESCRIBE study001;
    +---------+----------+------+-----+---------+-------+
    | Field   | Type     | Null | Key | Default | Extra |
    +---------+----------+------+-----+---------+-------+
    | id      | char(10) | NO   | PRI | NULL    |       |
    | name    | char(16) | NO   |     | NULL    |       |
    | sex     | char(6)  | NO   |     | NULL    |       |
    | age     | int(11)  | NO   |     | NULL    |       |
    | address | char(36) | NO   |     | NULL    |       |
    +---------+----------+------+-----+---------+-------+
    5 rows in set (0.00 sec)

向数据库表中添加数据

insert into 数据库表名 values(value值1,value值2,.......);
这种必须创建了几个列就需要传几个值,少一个就会报错(Column count doesn’t match value count at row 1)。
insert into 数据库表名 (列名1,列名2,...) values(value值1,value值2,...);
这种可以少传参数,只会赋值那些设置值的字段(前提设置了默认值或者没有加not null,如果没有设置也会报错ERROR 1364 (HY000): Field ‘address’ doesn’t have a default value)

INSERT INTO study001 VALUES(6, '哈哈1', 'nv1', 10, '哈哈1');
Query OK, 1 row affected (0.01 sec)

INSERT INTO study001 (name, sex, age, address) VALUES ('天天1', '男1', 111, '天国1');

查询表中数据

select 列名称 from 数据库表名 [查询条件];

常用操作符

操作符描述
=等于
<> 或!=不等于
>大于
<小于
>=大于等于
<=小于等于
BETWEEN在某个范围内(“11”(包括)和 “3”(不包括)之间的数据)
LIKE搜索某种模式

如果使用LIKE,需要使用到下面的通配符:

通配符描述
%替代一个或多个字符
_仅替代一个字符
[charlist]字符列中的任何单一字符
[!charlist]或[\^charlist]不在字符列中的任何单一字符

查询所有数据

select * from 表名;

    mysql> select * from study001;
    +----+------------+------+---------+
    | id | name       | sex  | address |
    +----+------------+------+---------+
    | 1  | 吴冬冬     | 男   | 吴国    |
    | 11 | 小哈       | 11   | 哈哈    |
    | 2  | 吴冬冬2    | 男2  | 吴国2   |
    | 3  | 吴冬冬2    | 男2  | 吴国2   |
    | 4  | 小火       | 男2  | 吴国2   |
    | 5  | 小男       | 男2  | 吴国1   |
    +----+------------+------+---------+

查询指定column数据

select id,name from study001;

    mysql> select id,name from study001;
    +----+------------+
    | id | name       |
    +----+------------+
    | 1  | 吴冬冬     |
    | 11 | 小哈       |
    | 2  | 吴冬冬2    |
    | 3  | 吴冬冬2    |
    | 4  | 小火       |
    | 5  | 小男       |
    +----+------------+

查询特定条件的表中数据

select 列名称 from 数据库表名 where 查询条件;

查询一个固定条件

select 列名称 from 数据库表名 where 某个column=某个值;

    mysql> select * from study001 where name='吴冬冬2';
    +----+------------+------+---------+
    | id | name       | sex  | address |
    +----+------------+------+---------+
    | 2  | 吴冬冬2    | 男2  | 吴国2   |
    | 3  | 吴冬冬2    | 男2  | 吴国2   |
    +----+------------+------+---------+

查询多个固定条件

  • and 提取所有都成立的数据
  • or 提取成立一条的数据
    mysql> select * from study001 where sex='男2' and address='吴国1';
    +----+--------+------+---------+
    | id | name   | sex  | address |
    +----+--------+------+---------+
    | 5  | 小男   | 男2  | 吴国1   |
    +----+--------+------+---------+
    1 row in set (0.00 sec)

查询范围条件

需要用到常用的操作符

    mysql> select * from study001 where id between '11' and '3';
    +----+------------+------+---------+
    | id | name       | sex  | address |
    +----+------------+------+---------+
    | 11 | 小哈       | 11   | 哈哈    |
    | 2  | 吴冬冬2    | 男2  | 吴国2   |
    | 3  | 吴冬冬2    | 男2  | 吴国2   |
    +----+------------+------+---------+

通配符使用

    mysql> select * from study001 where name like '小%';
    +----+--------+------+---------+
    | id | name   | sex  | address |
    +----+--------+------+---------+
    | 11 | 小哈   | 11   | 哈哈    |
    | 4  | 小火   | 男2  | 吴国2   |
    | 5  | 小男   | 男2  | 吴国1   |
    +----+--------+------+---------+

修改数据表中数据

update 表名称 set 列名称 = 新值 where 列名称 = 某值
如果要更新多个列值update 表名称 set 列名称1 = 新值, 列名称2 = 新值 where 列名称 = 某值

    mysql> update study001 set address='吴国吴国' where address='吴国2';
    Query OK, 3 rows affected (0.01 sec)
    Rows matched: 3  Changed: 3  Warnings: 0

    mysql> select * from study001;
    +----+------------+------+--------------+
    | id | name       | sex  | address      |
    +----+------------+------+--------------+
    | 1  | 吴冬冬     | 男   | 吴国         |
    | 11 | 小哈       | 11   | 哈哈         |
    | 2  | 吴冬冬2    | 男2  | 吴国吴国     |
    | 3  | 吴冬冬2    | 男2  | 吴国吴国     |
    | 4  | 小火       | 男2  | 吴国吴国     |
    | 5  | 小男       | 男2  | 吴国1        |
    +----+------------+------+--------------+
    mysql> update study001 set address='吴国2',sex='男3'  where name='吴冬冬2';
    Query OK, 2 rows affected (0.01 sec)
    Rows matched: 2  Changed: 2  Warnings: 0

    mysql> select * from study001;
    +----+------------+------+--------------+
    | id | name       | sex  | address      |
    +----+------------+------+--------------+
    | 1  | 吴冬冬     | 男   | 吴国         |
    | 11 | 小哈       | 11   | 哈哈         |
    | 2  | 吴冬冬2    | 男3  | 吴国2        |
    | 3  | 吴冬冬2    | 男3  | 吴国2        |
    | 4  | 小火       | 男2  | 吴国吴国     |
    | 5  | 小男       | 男2  | 吴国1        |
    +----+------------+------+--------------+

删除表中数据

delete from 数据库表名 where 删除条件;

mysql> delete from study001 where name='吴冬冬2';
Query OK, 2 rows affected (0.00 sec)

mysql> select * from study001;
+----+-----------+------+--------------+
| id | name      | sex  | address      |
+----+-----------+------+--------------+
| 1  | 吴冬冬    | 男   | 吴国         |
| 11 | 小哈      | 11   | 哈哈         |
| 4  | 小火      | 男2  | 吴国吴国     |
| 5  | 小男      | 男2  | 吴国1        |
+----+-----------+------+--------------+

如果想直接删除表内所有数据直接输入 delete from 表名; 等同于 delete * from 表名; 就可以删除表内所有数据

修改表中column

修改表中字段名称

alter table 数据库表名 change 列名称 新列名称(如果想改名称就命名不一样的) 新数据类型 [其它];

新数据类型时必须的,不了会报错

mysql> alter table study001 change address addr;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
    mysql> alter table study001 change address addr char(40) not null;
    Query OK, 4 rows affected (0.02 sec)
    Records: 4  Duplicates: 0  Warnings: 0

    mysql> describe study001;
    +-------+----------+------+-----+---------+-------+
    | Field | Type     | Null | Key | Default | Extra |
    +-------+----------+------+-----+---------+-------+
    | id    | char(10) | NO   | PRI | NULL    |       |
    | name  | char(16) | NO   |     | NULL    |       |
    | sex   | char(6)  | NO   |     | NULL    |       |
    | addr  | char(40) | NO   |     | NULL    |       |
    +-------+----------+------+-----+---------+-------+

如果只想改变数据类型而不变更名称,也可以调用alter table 数据库表名 modify 列名称 新数据类型;

添加字段

alter table 表名 add 列名称 数据类型;

    mysql> alter table study001 add column_name char(20);
    Query OK, 0 rows affected (0.04 sec)
    Records: 0  Duplicates: 0  Warnings: 0

    mysql> alter table study001 add column_name222 int;
    Query OK, 0 rows affected (0.04 sec)
    Records: 0  Duplicates: 0  Warnings: 0

    mysql> describe study001;
    +----------------+----------+------+-----+---------+-------+
    | Field          | Type     | Null | Key | Default | Extra |
    +----------------+----------+------+-----+---------+-------+
    | id             | char(10) | NO   | PRI | NULL    |       |
    | name           | char(20) | YES  |     | NULL    |       |
    | sex            | char(6)  | NO   |     | NULL    |       |
    | addr           | char(40) | NO   |     | NULL    |       |
    | column_name    | char(20) | YES  |     | NULL    |       |
    | column_name222 | int(11)  | YES  |     | NULL    |       |
    +----------------+----------+------+-----+---------+-------+

删除字段

alter table 表名 drop column 列名称;

    mysql> alter table study001 drop column column_name222;
    mysql> alter table study001 drop column column_name;
    Query OK, 0 rows affected (0.05 sec)
    Records: 0  Duplicates: 0  Warnings: 0

    mysql> describe study001;
    +-------+----------+------+-----+---------+-------+
    | Field | Type     | Null | Key | Default | Extra |
    +-------+----------+------+-----+---------+-------+
    | id    | char(10) | NO   | PRI | NULL    |       |
    | name  | char(20) | YES  |     | NULL    |       |
    | sex   | char(6)  | NO   |     | NULL    |       |
    | addr  | char(40) | NO   |     | NULL    |       |
    +-------+----------+------+-----+---------+-------+

重命名数据库表名

alter table 表名 rename 新表名;

    mysql> alter table study001 rename study;

    mysql> show tables;
    +-----------------------+
    | Tables_in_study_mysql |
    +-----------------------+
    | study                 |
    +-----------------------+

删除表/数据库

drop table 表名;
drop database 数据库名;

删除表前我先创建了一个study11的表。

    mysql> show tables;
    +-----------------------+
    | Tables_in_study_mysql |
    +-----------------------+
    | study                 |
    | study11               |
    +-----------------------+
    mysql> drop table study11;
    Query OK, 0 rows affected (0.01 sec)

    mysql> show tables;
    +-----------------------+
    | Tables_in_study_mysql |
    +-----------------------+
    | study                 |
    +-----------------------+

参考文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值