什么是数据库?

数据库(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 |
+--------------+
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());
Query OK, rows affected (0.03 sec) mysql> create table song_book( id int, name varchar());
Query OK, rows affected (0.06 sec) mysql> create table qing_book( id int, name varchar());
Query OK, 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 |
+------------------------+
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() DEFAULT NULL,
`name` varchar() DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-----------+-----------------------------------------------
row in set (0.00 sec)

查看表的结构:

desc tb_name;

mysql> desc tang_book;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int() | YES | | NULL | |
| name | varchar() | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
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(,'book_1'),
-> (,'book'),
-> (,'book_3'),
-> (,'book_4');
Query OK, rows affected (0.07 sec)
Records: Duplicates: Warnings: mysql> select * from tang_book;
+------+--------+
| id | name |
+------+--------+
| | book_1 |
| | book |
| | book_3 |
| | book_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=;
Query OK, row affected (0.02 sec)
Rows matched: Changed: Warnings: mysql> select * from tang_book;
+------+--------+
| id | name |
+------+--------+
| | book_1 |
| | book_2 |
| | book_3 |
| | book_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(), #指定长度,最多65535个字符。 ***变长
-> sex CHAR(), #指定长度,最多255个字符。 ***定长
-> price DOUBLE(,), #双精度浮点型,m总个数,d小数位
-> detail text, #可变长度,最多65535个字符
-> dates DATETIME, #日期时间类型 YYYY-MM-DD HH:MM:SS
-> ping ENUM('好评','差评') #枚举, 在给出的value中选择
-> );
 
												

Python进阶_mysql(1)的更多相关文章

  1. Python进阶:函数式编程实例(附代码)

    Python进阶:函数式编程实例(附代码) 上篇文章"几个小例子告诉你, 一行Python代码能干哪些事 -- 知乎专栏"中用到了一些列表解析.生成器.map.filter.lam ...

  2. Python进阶 - 对象,名字以及绑定

    Python进阶 - 对象,名字以及绑定 1.一切皆对象 Python哲学: Python中一切皆对象 1.1 数据模型-对象,值以及类型 对象是Python对数据的抽象.Python程序中所有的数据 ...

  3. Python进阶-继承中的MRO与super

    Python进阶-继承中的MRO与super 写在前面 如非特别说明,下文均基于Python3 摘要 本文讲述Python继承关系中如何通过super()调用"父类"方法,supe ...

  4. Python进阶 - 命名空间与作用域

    Python进阶 - 命名空间与作用域 写在前面 如非特别说明,下文均基于Python3 命名空间与作用于跟名字的绑定相关性很大,可以结合另一篇介绍Python名字.对象及其绑定的文章. 1. 命名空 ...

  5. python进阶学习笔记(一)

    python进阶部分要学习的内容: 学习目标: 1.函数式编程 1.1,什么是函数式编程 函数式编程是一种抽象计算的编程模式 不同语言的抽象层次不同: 函数式编程的特点: python支持的函数式编程 ...

  6. 【python进阶】详解元类及其应用2

    前言 在上一篇文章[python进阶]详解元类及其应用1中,我们提到了关于元类的一些前置知识,介绍了类对象,动态创建类,使用type创建类,这一节我们将继续接着上文来讲~~~ 5.使⽤type创建带有 ...

  7. 【python进阶】Garbage collection垃圾回收2

    前言 在上一篇文章[python进阶]Garbage collection垃圾回收1,我们讲述了Garbage collection(GC垃圾回收),画说Ruby与Python垃圾回收,Python中 ...

  8. Python进阶 函数式编程和面向对象编程等

    函数式编程 函数:function 函数式:functional,一种编程范式.函数式编程是一种抽象计算机的编程模式. 函数!= 函数式(如计算!=计算机) 如下是不同语言的抽象 层次不同 高阶函数: ...

  9. 【python进阶】深入理解系统进程2

    前言 在上一篇[python进阶]深入理解系统进程1中,我们讲述了多任务的一些概念,多进程的创建,fork等一些问题,这一节我们继续接着讲述系统进程的一些方法及注意点 multiprocessing ...

随机推荐

  1. Android_scaleType属性

    这里我们重点理解ImageView的属性android:scaleType,即ImageView.setScaleType(ImageView.ScaleType).android:scaleType ...

  2. [SDOI2011]染色

    [SDOI2011]染色 题目描述 输入输出格式 输出格式: 对于每个询问操作,输出一行答案. 解法 ps:这题本来是树剖的,但我用lct写的,以下是lct的写法,树剖会有所不同 我们考虑把不同色点的 ...

  3. Matlab绘图基础——用print函数保存图片(Print figure or save to file)

    print(figure_handle,'formats','-rnumber','filename')  %将图形保存为png格式,分辨率为number的(默认为72),最好指定的分辨率大一点,否则 ...

  4. MySQL的学习记录(3.31更新)

    MySQL的学习记录(3.31更新) 0x00 安装及配置 Windows 1.首先官网下载(https://dev.mysql.com/downloads/mysql/) ps:不想官网下载的可以到 ...

  5. java之静态属性和静态方法

    前言 静态属性和方法必须用static修饰符 静态属性和非静态属性的区别: 1.在内存中存放位置不同   所有带static修饰符的属性或者方法都存放在内存中的方法区  而非静态属性存放在内存中的堆区 ...

  6. VS2017调试器无法附加到IIS进程(w3wp.exe)

    问题描述: 当使用VS2017-> 调试->附加到进程来调试IIS进程(w3wp.exe)时,报错"无法附加到进程,已附加了一个调试器" 为了解决这个问题花了不少时间, ...

  7. Leetcode 15——3Sum

    Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all un ...

  8. JAVA入门——Generic/泛型

    在台科大的第二次JAVA作业,老师课上讲的内容是泛型. 泛型(generic),泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数.这种参数类型可以 ...

  9. X-pack安装

    1. Install X-Pack into Elasticsearch   docker exec -it anyrobot-store /bin/bash   bin/elasticsearch- ...

  10. Alpha冲刺No.10

    一.站立式会议 我们的阿尔法冲刺也基本宣告血崩,虽然很多功能已经实现,但是并没有串联在一起,好在这周不需要上课,我们也能好好睡一觉 实现手机的定位系统 细化界面设计 解决数据库和软件交互的一些问题 二 ...