什么是数据库?

数据库(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. Nginx+Tomcat 配置负载均衡集群

    一.Hello world 1.前期环境准备 准备两个解压版tomcat,如何同时启动两个tomcat,请看我的另一篇文章<一台机器同时启动多个tomcat>. nginx官网下载解压版n ...

  2. 分析 webpack 打包后的代码

    写在前面的:使用的 webpack 版本 3.0.0 一.开始 1. 准备 当前只创建一个文件 index.js,该文件作为入口文件,代码如下. console.log('hello, world') ...

  3. 配置Hibernate的二级缓存

    1.在applicationContex.xml文件里面添加二级缓存配置: <!-- 配置hibernate的sessionFactory --> <bean id="se ...

  4. Java 小记 — RabbitMQ 的实践与思考

    前言 本篇随笔将汇总一些我对消息队列 RabbitMQ 的认识,顺便谈谈其在高并发和秒杀系统中的具体应用. 1. 预备示例 想了下,还是先抛出一个简单示例,随后再根据其具体应用场景进行扩展,我觉得这样 ...

  5. ASP.NET没有魔法——ASP.NET MVC Razor与View渲染

    对于Web应用来说,它的界面是由浏览器根据HTML代码及其引用的相关资源进行渲染后展示给用户的结果,换句话说Web应用的界面呈现工作是由浏览器完成的,Web应用的原理是通过Http协议从服务器上获取到 ...

  6. R语言-逻辑回归建模

    案例1:使用逻辑回归模型,预测客户的信用评级 数据集中采用defect为因变量,其余变量为自变量 1.加载包和数据集 library(pROC) library(DMwR)model.df <- ...

  7. HDFS之HA机制

  8. 解决python中flask_sqlalchemy包安装失败的问题

    在进行flask_sqlalchemy包的下载安装时出现以下问题: 由图片可看出是编码转换出了问题,找到pip\compat_init_.py文件,打开它并查看第73行,将代码做如下更改并保存: 问题 ...

  9. Java 后端微信小程序支付demo (网上说的坑里面基本上都有)

    Java 后端微信小程序支付 一.遇到的问题 1. 商户号该产品权限未开通,请前往商户平台>产品中心检查后重试 2.签名错误 3.已经调起微信统一下单接口,可以拿到预支付ID,但是前端支付的时候 ...

  10. 根据HTML5的新方法 drag & drop 方法实现表格拖拽实例

    上一次学习了html5的drag和drop方法,传送门  就自己写了个例子加深自己对drag和drop的理解.不过一开始不是很简单,遇到了不少问题.还好网络万能的,什么都能查到,总算完成了. 说明和详 ...