请选择 进入手机版 | 继续访问电脑版

牛大大的个人博客

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1487|回复: 4

MYSQL 数据库连接,建立,查询,插入。

[复制链接]

149

主题

201

帖子

643

积分

版主

Rank: 7Rank: 7Rank: 7

积分
643
发表于 2020-5-8 22:05:01 | 显示全部楼层 |阅读模式
本帖最后由 牛大舅 于 2020-5-8 23:18 编辑

一、连接远程数据库:
1、显示密码
MySQL 连接本地数据库,用户名为“root”,密码“123”(注意:“-p”和“123” 之间不能有空格)
如:MySQL 连接远程数据库(192.168.5.116),端口“3306”,用户名为“root”,密码“123456”
C:\>mysql -h localhost -u root -p123
c:\>mysql -h 192.168.5.116 -P 3306 -u root -p123456
mysql> exit

2、隐藏密码
如:MySQL 连接本地数据库,用户名为“root”,
C:/>mysql -h localhost -u root -p Enter password:
c:/>mysql -u root -p1234
mysql> exit



3、显示数据库
SHOW DATABASES [LIKE '数据库名'];

语法说明如下:
LIKE 从句是可选项,用于匹配指定的数据库名称。LIKE 从句可以部分匹配,也可以完全匹配。
数据库名由单引号' '包围。
mysql> SHOW DATABASES;
mysql> SHOW DATABASES LIKE 'test_db';
mysql> SHOW DATABASES LIKE '%test%';
mysql> SHOW DATABASES LIKE '%db';

4、MySQL创建数据库(CREATE DATABASE语句)
CREATE DATABASE [IF NOT EXISTS] <数据库名> [[DEFAULT] CHARACTER SET <字符集名>]  [[DEFAULT] COLLATE <校对规则名>];

[ ]中的内容是可选的。语法说明如下:
<数据库名>:创建数据库的名称。MySQL 的数据存储区将以目录方式表示 MySQL 数据库,因此数据库名称必须符合操作系统的文件夹命名规则不能以数字开头,尽量要有实际意义。注意在 MySQL 中不区分大小写
IF NOT EXISTS:在创建数据库之前进行判断,只有该数据库目前尚不存在时才能执行操作。此选项可以用来避免数据库已经存在而重复创建的错误。
[DEFAULT] CHARACTER SET:指定数据库的字符集。指定字符集的目的是为了避免在数据库中存储的数据出现乱码的情况。如果在创建数据库时不指定字符集,那么就使用系统的默认字符集
[DEFAULT] COLLATE:指定字符集的默认校对规则。



实例1:最简单的创建 MySQL 数据库的语句
mysql> CREATE DATABASE test_db;
Query OK, 1 row affected (0.12 sec);
提示中,“Query OK”表示上面的命令执行成功,“1 row affected”表示操作只影响了数据库中一行的记录,“0.12 sec”则记录了操作执行的时间。
若再次输入CREATE DATABASE test_db;语句,则系统会给出错误提示信息,如下所示:
mysql> CREATE DATABASE test_db;
ERROR 1007 (HY000): Can't create database 'test_db'; database exists

mysql> CREATE DATABASE IF NOT EXISTS test_db;
Query OK, 1 row affected (0.12 sec)



实例2:创建 MySQL 数据库时指定字符集和校对规则

使用 MySQL 命令行工具创建一个测试数据库,命名为 test_db_char,指定其默认字符集为 utf8,默认校对规则为 utf8_chinese_ci(简体中文,不区分大小写),输入的 SQL 语句与执行结果如下所示:

  1. mysql> CREATE DATABASE IF NOT EXISTS test_db_char
  2.     -> DEFAULT CHARACTER SET utf8
  3.     -> DEFAULT COLLATE utf8_chinese_ci;
  4. Query OK, 1 row affected (0.03 sec)
复制代码

这时,可以使用SHOW CREATE DATABASE查看 test_db_char 数据库的定义声明,发现该数据库的指定字符集为 utf8,运行结果如下所示:
  1. mysql> show create database myhome01;
  2. +----------+-------------------------------------------------------------------------------------------+
  3. | Database | Create Database                                                                           |
  4. +----------+-------------------------------------------------------------------------------------------+
  5. | myhome01 | CREATE DATABASE `myhome01` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */ |
  6. +----------+-------------------------------------------------------------------------------------------+
  7. 1 row in set (0.00 sec)
复制代码
系统默认:  DEFAULT CHARACTER SET  utf8  
                  DEFAULT COLLATE utf8_unicode_ci

  1. <b>mysql> create database if not exists  my_home_02 default character set utf8 default collate utf8_unicode_ci;</b>
  2. Query OK, 1 row affected (0.00 sec)
复制代码
  1. mysql> show create database my_home_02 ;
  2. +------------+---------------------------------------------------------------------------------------------+
  3. | Database   | Create Database                                                                             |
  4. +------------+---------------------------------------------------------------------------------------------+
  5. | my_home_02 | CREATE DATABASE `my_home_02` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */ |
  6. +------------+---------------------------------------------------------------------------------------------+
  7. 1 row in set (0.00 sec)
复制代码
mysql> create database myhome04 character set utf8 collate  utf8_unicode_ci;
Query OK, 1 row affected (0.00 sec)
mysql> create database my_home_03 character set utf8;
Query OK, 1 row affected (0.00 sec)





--使用数据库 use library;

--查看有哪些表

show tables;

--新建表:CREATE TABLE xxxx();
--书:书名和作者
CREATE TABLE book(name char(20),author char(20));
--读者:人名、借书日期以及性别
CREATE TABLE reader(name char(20),date int(10),sex char(5));

--再次查看一下表

--查看表的内容:SELECT * FROM xxx;
SELECT * FROM book;
SELECT * FROM reader;


--插入内容到表:INSERT INTO xxx VALUES();
INSERT INTO book VALUES('c language','niuren')
INSERT INTO book VALUES('java','lihairen')
INSERT INTO book VALUES('python','yjj')


INSERT INTO reader VALUES('kumata'.20180530,'man');
INSERT INTO reader(name,sex) VALUES('kusada','man');
INSERT INTO reader(name,date) VALUES('wuyifan',20187475);


--删除数据表:DROP TABLE xxx(table_name)







回复

使用道具 举报

149

主题

201

帖子

643

积分

版主

Rank: 7Rank: 7Rank: 7

积分
643
 楼主| 发表于 2020-5-8 23:25:26 | 显示全部楼层
数据类型
大致分为 6 类:

  • 整数: bit / bool / tinyint / smallint / mediumint / int / bitint
  • 浮点数: float / double / decimal
  • 字符串: char / varchar / tinytext / text / mediumtext / longtext
  • BLOB(Binary Large Object): tinyblob / blob / mediumblob / longblob
  • 日期: date(2018-9-6) / time (03:33:49) / datetime(2018-9-6 03:34:08) / timestamp
  • 其他: binary / varbinary / enum / set / geometry / point / LineString …


回复

使用道具 举报

149

主题

201

帖子

643

积分

版主

Rank: 7Rank: 7Rank: 7

积分
643
 楼主| 发表于 2020-5-8 23:27:51 | 显示全部楼层
本帖最后由 牛大舅 于 2020-5-8 23:29 编辑

第一种方式:

-- 查看用户
select current_user(), user();
select * from mysql.user;

-- 创建与授权
create user 'xxx'@'host' identified by '密码';
grant all on ttt.* to 'user'@'host' with grant options;

-- 查看授权情况
show grants for 'user'@'host';

-- 用户的管理,删除密码等
set password for 'user'@'host' = password('新密码');
drop user vip;

-- 授权的相对完整语法为:
grant all/alter/create/drop/select/update/delete
      on *.* -- db.*/db.table
      to 'user'@'host'
      identified by '密码'
      with max_user_connections 2
      max_connections_pser_hour 5;

第二种方式:

-- 增加用户
insert into mysql.user(host, user, password) values (xx, yy, zz);

-- 修改密码
update mysql.user set password=password('新密码') where user='vip' and host='%';

-- 修改权限
update mysql.user set event_priv='Y' where user='vip' and host='%';

-- 注意,使用 sql 语句修改用户跟权限之后,需要手动刷新权限表
flush privileges;
4 常用命令
基本命令:

-- 查询当前日期
select now(), current_date, current_time;

-- 查询当前用户
select user(), current_user();

-- 数据库
show databases;
use test;

更多命令:

show engines; -- 所有引擎
show plugins; -- 所有插件
show variables; -- 所有系统变量
show variables like '%char%'; -- 可以使用 like 进行过滤, 注意 % _ 的使用
set names utf8; -- 一个快捷方式,用来快速批量设置字符集

show full processlist;
kill 109;


回复

使用道具 举报

149

主题

201

帖子

643

积分

版主

Rank: 7Rank: 7Rank: 7

积分
643
 楼主| 发表于 2020-5-8 23:34:15 | 显示全部楼层
MySQL修改数据库:ALTER DATABASE用法简介
在 MySQL 中,可以使用 ALTER DATABASE 来修改已经被创建或者存在的数据库的相关参数。修改数据库的语法格式为:
ALTER DATABASE [数据库名] {
[ DEFAULT ] CHARACTER SET <字符集名> |
[ DEFAULT ] COLLATE <校对规则名>}

语法说明如下:
ALTER DATABASE 用于更改数据库的全局特性。
使用 ALTER DATABASE 需要获得数据库 ALTER 权限。
数据库名称可以忽略,此时语句对应于默认数据库。
CHARACTER SET 子句用于更改默认的数据库字符集。
例 1
查看 test_db 数据库的定义声明的执行结果如下所示:
  1. mysql> SHOW CREATE DATABASE test_db;
  2. +----------+--------------------------------------------------------+
  3. | Database | Create Database                                        |
  4. +----------+--------------------------------------------------------+
  5. | test_db  | CREATE DATABASE `test_db` /*!40100 DEFAULT CHARACTER SET utf8 */|
  6. +----------+--------------------------------------------------------+
  7. 1 row in set (0.05 sec)
复制代码

使用命令行工具将数据库 test_db 的指定字符集修改为 gb2312,默认校对规则修改为 utf8_unicode_ci,输入 SQL 语句与执行结果如下所示:
  1. mysql> CREATE DATABASE test_db
  2.     -> DEFAULT CHARACTER SET gb2312
  3.     -> DEFAULT COLLATE gb2312_chinese_ci;
  4. mysql> SHOW CREATE DATABASE test_db;
  5. +----------+--------------------------------------------------------+
  6. | Database | Create Database                                        |
  7. +----------+--------------------------------------------------------+
  8. | test_db  | CREATE DATABASE `test_db` /*!40100 DEFAULT CHARACTER SET gb2312 */|
  9. +----------+--------------------------------------------------------+
  10. 1 row in set (0.00 sec)
复制代码


回复

使用道具 举报

149

主题

201

帖子

643

积分

版主

Rank: 7Rank: 7Rank: 7

积分
643
 楼主| 发表于 2020-5-8 23:37:07 | 显示全部楼层
MySQL删除数据库(DROP DATABASE语句)
当数据库不再使用时应该将其删除,以确保数据库存储空间中存放的是有效数据。删除数据库是将已经存在的数据库从磁盘空间上清除,清除之后,数据库中的所有数据也将一同被删除。

在 MySQL 中,当需要删除已创建的数据库时,可以使用 DROP DATABASE 语句。其语法格式为:
DROP DATABASE [ IF EXISTS ] <数据库名>

语法说明如下:
<数据库名>:指定要删除的数据库名。
IF EXISTS:用于防止当数据库不存在时发生错误。
DROP DATABASE:删除数据库中的所有表格并同时删除数据库。使用此语句时要非常小心,以免错误删除。如果要使用 DROP DATABASE,需要获得数据库 DROP 权限。

注意:MySQL 安装后,系统会自动创建名为 information_schema 和 mysql 的两个系统数据库,系统数据库存放一些和数据库相关的信息,如果删除了这两个数据库,MySQL 将不能正常工作。

例 1
下面在 MySQL 中创建一个测试数据库 test_db_del。
  1. mysql> CREATE DATABASE test_db_del;
  2. Query OK, 1 row affected (0.08 sec)
  3. mysql> SHOW DATABASES;
  4. +--------------------+
  5. | Database           |
  6. +--------------------+
  7. | information_schema |
  8. | mysql              |
  9. | performance_schema |
  10. | sakila             |
  11. | sys                |
  12. | test_db            |
  13. | test_db_char       |
  14. | test_db_del        |
  15. | world              |
  16. +--------------------+
  17. 9 rows in set (0.00 sec)
复制代码

使用命令行工具将数据库 test_db_del 从数据库列表中删除,输入的 SQL 语句与执行结果如下所示:
  1. mysql> DROP DATABASE test_db_del;
  2. Query OK, 0 rows affected (0.57 sec)
  3. mysql> SHOW DATABASES;
  4. +--------------------+
  5. | Database           |
  6. +--------------------+
  7. | information_schema |
  8. | mysql              |
  9. | performance_schema |
  10. | sakila             |
  11. | sys                |
  12. | test_db            |
  13. | test_db_char       |
  14. | world              |
  15. +--------------------+
  16. 8 rows in set (0.00 sec)
复制代码

此时数据库 test_db_del 不存在。再次执行相同的命令,直接使用 DROP DATABASE test_db_del,系统会报错,如下所示:
  1. mysql> DROP DATABASE test_db_del;
  2. ERROR 1008 (HY000): Can't drop database 'test_db_del'; database doesn't exist
复制代码

如果使用IF EXISTS从句,可以防止系统报此类错误,如下所示:
  1. mysql> DROP DATABASE IF EXISTS test_db_del;
  2. Query OK, 0 rows affected, 1 warning (0.00 sec)
复制代码

使用 DROP DATABASE 命令时要非常谨慎,在执行该命令后,MySQL 不会给出任何提示确认信息。DROP DATABASE 删除数据库后,数据库中存储的所有数据表和数据也将一同被删除,而且不能恢复。因此最好在删除数据库之前先将数据库进行备份。备份数据库的方法会在教程后面进行讲解

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|牛大大的个人博客 ( 苏ICP备17043571号-2 )

GMT+8, 2021-6-15 10:56 , Processed in 0.176226 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表