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 ...
随机推荐
- Redis的安装和部署
基本知识 1.Redis的数据类型: 字符串.列表(lists).集合(sets).有序集合(sorts sets).哈希表(hashs) 2.Redis和memcache相比的独特之处: (1)re ...
- html-简单的简历表制作
代码如下: <!DOCTYOE html> <html> <head> <meta charset='UTF-8'/> <title>课后作 ...
- Spring Boot with Spring-Data-JPA学习案例
0x01 什么是Spring Boot? Spring Boot是用来简化Spring应用初始搭建以及开发过程的全新框架,被认为是Spring MVC的"接班人",和微服务紧密联系 ...
- 使用SQLiteOpenHelper类对数据库简单操作
实现数据库基本操作 数据库创建的问题解决了,接下来就该使用数据库实现应用程序功能的时候了.基本的操作包括创建.读取.更新.删除,即我们通常说的CRUD(Create, Read, Upda ...
- [日常] NOIWC 2018爆零记
开个坑慢慢更(逃 (然而没准会坑掉?) day 0 大概 $8:30$ 就滚去雅礼了qwq 过去的时候发现并没有人...进报到处楼门的时候还被强行拍照围观了一波OwO 然后就领了HZ所有人的提包和狗牌 ...
- java之静态属性和静态方法
前言 静态属性和方法必须用static修饰符 静态属性和非静态属性的区别: 1.在内存中存放位置不同 所有带static修饰符的属性或者方法都存放在内存中的方法区 而非静态属性存放在内存中的堆区 ...
- C语言助教批改
作业批改 每次作业批改后写一篇作业点评,助教轮流写作业总结.(总结分工老师安排). 每个助教点评自己负责的同学博客,点评要详细,不能只有一句话. 有比较优秀博客请或典型问题推荐到qq群,并发给写总结助 ...
- 1013团队Beta冲刺day6
项目进展 李明皇 今天解决的进度 进行前后端联动调试 明天安排 完善程序运行逻辑 林翔 今天解决的进度 服务器端发布消息,删除消息,检索消息,个人发布的action 明天安排 图片功能遇到问题,微信小 ...
- fread函数详解
函数原型: size_t fread( void *buffer, size_t size, size_t count, FILE *stream ) b ...
- raid5两块硬盘离线怎么办? 强制上线失败如何恢复数据
服务器故障描述: 客户使用Dell 2850服务器组建了raid5磁盘阵列,阵列中包含有6块硬盘(SCSI硬盘,单盘容量300G),服务器操作系统为linux Redhat4:文件系统为ext3文件系 ...