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 |
+--------------+
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)的更多相关文章
- Python进阶:函数式编程实例(附代码)
Python进阶:函数式编程实例(附代码) 上篇文章"几个小例子告诉你, 一行Python代码能干哪些事 -- 知乎专栏"中用到了一些列表解析.生成器.map.filter.lam ...
- Python进阶 - 对象,名字以及绑定
Python进阶 - 对象,名字以及绑定 1.一切皆对象 Python哲学: Python中一切皆对象 1.1 数据模型-对象,值以及类型 对象是Python对数据的抽象.Python程序中所有的数据 ...
- Python进阶-继承中的MRO与super
Python进阶-继承中的MRO与super 写在前面 如非特别说明,下文均基于Python3 摘要 本文讲述Python继承关系中如何通过super()调用"父类"方法,supe ...
- Python进阶 - 命名空间与作用域
Python进阶 - 命名空间与作用域 写在前面 如非特别说明,下文均基于Python3 命名空间与作用于跟名字的绑定相关性很大,可以结合另一篇介绍Python名字.对象及其绑定的文章. 1. 命名空 ...
- python进阶学习笔记(一)
python进阶部分要学习的内容: 学习目标: 1.函数式编程 1.1,什么是函数式编程 函数式编程是一种抽象计算的编程模式 不同语言的抽象层次不同: 函数式编程的特点: python支持的函数式编程 ...
- 【python进阶】详解元类及其应用2
前言 在上一篇文章[python进阶]详解元类及其应用1中,我们提到了关于元类的一些前置知识,介绍了类对象,动态创建类,使用type创建类,这一节我们将继续接着上文来讲~~~ 5.使⽤type创建带有 ...
- 【python进阶】Garbage collection垃圾回收2
前言 在上一篇文章[python进阶]Garbage collection垃圾回收1,我们讲述了Garbage collection(GC垃圾回收),画说Ruby与Python垃圾回收,Python中 ...
- Python进阶 函数式编程和面向对象编程等
函数式编程 函数:function 函数式:functional,一种编程范式.函数式编程是一种抽象计算机的编程模式. 函数!= 函数式(如计算!=计算机) 如下是不同语言的抽象 层次不同 高阶函数: ...
- 【python进阶】深入理解系统进程2
前言 在上一篇[python进阶]深入理解系统进程1中,我们讲述了多任务的一些概念,多进程的创建,fork等一些问题,这一节我们继续接着讲述系统进程的一些方法及注意点 multiprocessing ...
随机推荐
- java 定义泛型方法
1 class Demo{ 2 public <T> T fun(T t){ 3 return t; 4 } 5 } 6 public class GenericsDemo { 7 pub ...
- 多线程&定时器Timer&同步&线程通信&ThreadLocal
1.多线程 线程状态分为:新建状态.就绪状态.运行状态.阻塞状态.死亡状态 对象等待池的阻塞状态:运行状态执行了wait方法 对向锁池的阻塞状态:试图获得某个同步锁,已经被其他线程占用,就会放到对象的 ...
- python读取txt、csv、xml
读取txt,无需引入任何包: user_file = open('user_info.txt','r') lines = user_file.readlines() user_file.close() ...
- 关于Netty的入门使用
Netty介绍: Netty是一个提供异步事件驱动的网络应用框架,用以快速开发高性能.高可靠性的网络服务器和客户端程序. 换句话说,Netty是一个NIO框架,使用它可以简单快速地开发网络应用程序,比 ...
- Ubuntu16.04安装postgresql9.4及pgadmin3图形管理界面
参考原文链接:http://www.cnblogs.com/sparkdev/p/5678874.html 安装前的检查 首先查看是否已经安装了旧版本: dpkg -l |grep postgresq ...
- python 操作PostgreSQL
pip install psycopg Python psycopg2 模块APIs 以下是psycopg2的重要的的模块例程可以满足Python程序与PostgreSQL数据库的工作. S.N. A ...
- bzoj千题计划217:bzoj2333: [SCOI2011]棘手的操作
http://www.lydsy.com/JudgeOnline/problem.php?id=2333 读入所有数据,先模拟一遍所有的合并操作 我们不关心联通块长什么样,只关心联通块内有谁 所以可以 ...
- NFC驱动调试
1.NFC基本概念: NFC 又称为近场通信,是一种新兴技术,可以在彼此靠近的情况下进行数据交换,是由非接触式射频识别(RFID) 及互连互通技术整合演变而来,通过单一芯片集成感应式读卡器: NFC有 ...
- vue中一个dom元素可以绑定多个事件?
其实这个问题有多个解决方法的 这里提出两点 第一种 第二种 现在dom上绑定一个 然后在你的methods中直接调用 如果要传参数 这时候千万别忘记 原创 如需转载注明出处 谢谢
- Nginx配置小结
前两天区听了一堂Nginx的课,然后翻了一下自己之前的Nginx的笔记,做了一个简单的小结. 全局变量 $args : 这个变量等于请求行中的参数,同$query_string $content_le ...