什么是数据库?

数据库(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. java 定义泛型方法

    1 class Demo{ 2 public <T> T fun(T t){ 3 return t; 4 } 5 } 6 public class GenericsDemo { 7 pub ...

  2. 多线程&定时器Timer&同步&线程通信&ThreadLocal

    1.多线程 线程状态分为:新建状态.就绪状态.运行状态.阻塞状态.死亡状态 对象等待池的阻塞状态:运行状态执行了wait方法 对向锁池的阻塞状态:试图获得某个同步锁,已经被其他线程占用,就会放到对象的 ...

  3. python读取txt、csv、xml

    读取txt,无需引入任何包: user_file = open('user_info.txt','r') lines = user_file.readlines() user_file.close() ...

  4. 关于Netty的入门使用

    Netty介绍: Netty是一个提供异步事件驱动的网络应用框架,用以快速开发高性能.高可靠性的网络服务器和客户端程序. 换句话说,Netty是一个NIO框架,使用它可以简单快速地开发网络应用程序,比 ...

  5. Ubuntu16.04安装postgresql9.4及pgadmin3图形管理界面

    参考原文链接:http://www.cnblogs.com/sparkdev/p/5678874.html 安装前的检查 首先查看是否已经安装了旧版本: dpkg -l |grep postgresq ...

  6. python 操作PostgreSQL

    pip install psycopg Python psycopg2 模块APIs 以下是psycopg2的重要的的模块例程可以满足Python程序与PostgreSQL数据库的工作. S.N. A ...

  7. bzoj千题计划217:bzoj2333: [SCOI2011]棘手的操作

    http://www.lydsy.com/JudgeOnline/problem.php?id=2333 读入所有数据,先模拟一遍所有的合并操作 我们不关心联通块长什么样,只关心联通块内有谁 所以可以 ...

  8. NFC驱动调试

    1.NFC基本概念: NFC 又称为近场通信,是一种新兴技术,可以在彼此靠近的情况下进行数据交换,是由非接触式射频识别(RFID) 及互连互通技术整合演变而来,通过单一芯片集成感应式读卡器: NFC有 ...

  9. vue中一个dom元素可以绑定多个事件?

    其实这个问题有多个解决方法的  这里提出两点 第一种 第二种 现在dom上绑定一个 然后在你的methods中直接调用 如果要传参数  这时候千万别忘记 原创 如需转载注明出处 谢谢

  10. Nginx配置小结

    前两天区听了一堂Nginx的课,然后翻了一下自己之前的Nginx的笔记,做了一个简单的小结. 全局变量 $args : 这个变量等于请求行中的参数,同$query_string $content_le ...