Python进阶_mysql(1)
时间:2022-03-15 07:36
什么是数据库?
数据库(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 | +--------------+ 1 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(20)); Query OK, 0 rows affected (0.03 sec) mysql> create table song_book( id int, name varchar(20)); Query OK, 0 rows affected (0.06 sec) mysql> create table qing_book( id int, name varchar(20)); Query OK, 0 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 | +------------------------+ 3 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(11) DEFAULT NULL, `name` varchar(20) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 | +-----------+----------------------------------------------- 1 row in set (0.00 sec)
查看表的结构:
desc tb_name;
mysql> desc tang_book; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | | name | varchar(20) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 2 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(1,‘book_1‘), -> (2,‘book‘), -> (3,‘book_3‘), -> (4,‘book_4‘); Query OK, 4 rows affected (0.07 sec) Records: 4 Duplicates: 0 Warnings: 0 mysql> select * from tang_book; +------+--------+ | id | name | +------+--------+ | 1 | book_1 | | 2 | book | | 3 | book_3 | | 4 | book_4 | +------+--------+ 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=2; Query OK, 1 row affected (0.02 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> select * from tang_book; +------+--------+ | id | name | +------+--------+ | 1 | book_1 | | 2 | book_2 | | 3 | book_3 | | 4 | book_4 | +------+--------+ 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(20), #指定长度,最多65535个字符。 ***变长 -> sex CHAR(4), #指定长度,最多255个字符。 ***定长 -> price DOUBLE(4,2), #双精度浮点型,m总个数,d小数位 -> detail text, #可变长度,最多65535个字符 -> dates DATETIME, #日期时间类型 YYYY-MM-DD HH:MM:SS -> ping ENUM(‘好评‘,‘差评‘) #枚举, 在给出的value中选择 -> );