Python进阶_mysql(1)

什么是数据库?

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。

进入mysql (linux 操作数据库) 

本地连接:
mysql -u用户名 -p
输入密码 qwe123

mysql -uroot -pqwe123

创建用户

 创建用户即创建一个数据库

#创建用户
mysql> CREATE USER 'jianeng'@'%' IDENTIFIED \q\BY 'qwe123';
#给用户赋予权限
mysql> GRANT ALL  ON *.* TO 'jianeng'@'%';
#使更改立即生效
mysql> FLUSH PRIVILEGES;
#退出
mysql> \q

查看在哪个数据库里:SELECT DATABASE(); 大厅 null

查看当前用户:SELECT USER();

查看有哪些数据库:SHOW DATABASES; # mysql 有哪些数据库

 

我们通过一张图来开始数据库的相关操作

 

首先我们需要创建一个history_book的数据库

create database [if not exists]`db_name`;
mysql>create database [if not exists]`history_book`;
Query OK, 1 row affected (0.00 sec)
mysql>create database [if not exists]`history_book`;
ERROR 1007 (HY000): Can't create database 'mydb'; database exists

这时候,我们完成了创建一个history_book的一个图书馆。如果存在相=相同名字的数据库的话会报错

我们会查看数据库里面的内容: show databases;

mysql> SHOW DATABASES;
+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | history_book | +--------------------+

这时会发现创建的数据库已经存在了

对于不需要的数据库我们需要删除数据库

drop database [if exists] `db_name`;

注意:SQL语句必须以分号结尾    mysql不区分大小写

 

现在我们可以进入我们创建的数据库了:

use db_name;

我们可以查看数据库里面的信息:

select database();

后会发现当前并没有进入到某个数据库中,需要使用use来进入某个数据库中。

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

 我们只是创建了一个数据库,但里面什么也没有。相当于我们创建了一个空的图书馆。

我们需要做的就是想空的图书馆里面放书架(即 为history_book 创建表)

创建数据表

create table [if not exists] table(id int , name  varchai(20));

mysql> create table tang_book(
    -> id int,
    -> name varchar(20));
Query OK, 0 rows affected (0.03 sec)

mysql> create table song_book( id int, name varchar(20));
Query OK, 0 rows affected (0.06 sec)

mysql> create table qing_book( id int, name varchar(20));
Query OK, 0 rows affected (0.04 sec)

我们为history_book 创建了书架。

查看history_book的书架。

查看数据库中的表

数据表(或称表)是数据库最重要的组成部分之一,是其他对象的基础

查看数据表列表SHOW TABLES [FROM db_name]

SHOW TABLES查看当前数据库中的数据表。

SHOW TABLES FROM 'mysql'查看mysql这个数据库中的数据表。

mysql> show tables from history_book;
+------------------------+
| Tables_in_history_book |
+------------------------+
| qing_book              |
| song_book              |
| tang_book              |
+------------------------+
3 rows in set (0.00 sec)

数据类型:INT 整数类型    VARCHAR 变长字符串

 

查看书架(表)的结构

查看创建的表:

SHOW CREATE TABLE tb_name;(\G) 表的创建详情

mysql> mysql> show create table tang_book;
+-----------+-----------------------------------------------
| Table     | Create Table                                  
+-----------+-----------------------------------------------
| tang_book | CREATE TABLE `tang_book` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-----------+-----------------------------------------------
1 row in set (0.00 sec)

 

查看表的结构:

desc tb_name;

mysql> desc tang_book;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

删除表:

drop table tablename;

到目前为止,我们发现我们只是搭建了一个历史图书馆和几个书架,没有一本书。即我们没有存入一个数据。接下来,我们就要为我们的图书馆存入书籍。

单表中数据的增、删、查、改

INSERT 插入数据

方法一:

INSERT [INTO] table_name [(column_name,...)] 
{VALUES|VALUE} ({expr|DEFAULT},...),(...),...;

方法二:

INSERT [INTO] tbl_name SET col_name={expr|DEFAULT},...in

SELECT 查询数据

 SELECT * FROM tab_name [WHERE];

mysql> insert into tang_book(id,name) values(1,'book_1'),
    -> (2,'book'),
    -> (3,'book_3'),
    -> (4,'book_4');
Query OK, 4 rows affected (0.07 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> select * from tang_book;
+------+--------+
| id   | name   |
+------+--------+
|    1 | book_1 |
|    2 | book   |
|    3 | book_3 |
|    4 | book_4 |
+------+--------+
4 rows in set (0.01 sec)

当发现表中数据有问题的时候我们可以更新表中的数据

UPDATE 更新数据

UPDATE tb_name
SET col_name1={expr1|DEFAULT}[,col_name2

={expr2|DEFAULT}]...
[WHERE where_condition];

mysql> update tang_book set name='book_2' where id=2;
Query OK, 1 row affected (0.02 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from tang_book;
+------+--------+
| id   | name   |
+------+--------+
|    1 | book_1 |
|    2 | book_2 |
|    3 | book_3 |
|    4 | book_4 |
+------+--------+
4 rows in set (0.01 sec)

DELETE 删除数据

DELETE FROM tbl_name [WHERE where_conditon]; 

一定要注意:不添加WHERE则会删除全部记录, 很危险

 

下面介绍一下mysql中的数据类型

# mysql 数据类型
整型   浮点型   日期类型   字符型

mysql> create table tb2(
    -> id INT,
    -> name VARCHAR(20),     #指定长度,最多65535个字符。   ***变长
      -> sex CHAR(4),         #指定长度,最多255个字符。     ***定长
    -> price DOUBLE(4,2),    #双精度浮点型,m总个数,d小数位
      -> detail text,            #可变长度,最多65535个字符
    -> dates DATETIME,        #日期时间类型 YYYY-MM-DD HH:MM:SS
    -> ping  ENUM('好评','差评')  #枚举, 在给出的value中选择
    -> );

 

 

 

 

 

 

 

 

 

 

posted on 2018-04-16 22:42  方方31140519  阅读(185)  评论(0编辑  收藏  举报

导航